목록전체 글 (79)
나만의 공부 노트

하나의 프로세스는 여러 개의 실행 흐름(Thread)을 가질 수 있다. Thread는 개별 stack, PC, registers를 담는 TCB를 가지고 있다. Race Condition -> execution이 atomic하지 않으면 발생 -> critical section(mutual exclusion/상호 배제)으로 보호가 필요 Lock -> spinning or sleep을 이용해 lock 구현 Conditioin Variables -> 초창기에는 spinning으로 lock을 구현(cpu 소모적) -> wait을 통해 sleep pool로 이동시켜서 cpu를 할당받지 않도록 함(그러나 wait를 거는 와중에 unlock이 되버리면 문제 발생) Lock의 구현 -> OS와 HW로 구현 -> 싱클 코..

Memory Virtualization 1. process의 주소 공간을 연속적으로 할당할 때 - base, bound register가 필요 - context switch시, base, bound register도 추가로 바꾸어주어야 함 단점) 2. Segmentation - code segment, data segment, heap segment, stack segment 등 각각의 영역에 base와 bound가 존재 - 주의) virtual address의 offset을 계산 시, 각 영역의 base address를 빼야함 - 가상 주소의 상위 2비트를 segment를 구분하는데 사용 - 나머지 주소를 offset으로 사용 3. Paging - 프로그램을 segment로 쪼개어 메모리에 올리는 것이..

ISAM(Indexed Sequential Access Method) - 정적 인덱스 - 데이터 삽입이 빈번할 경우, 오버플로우 페이지를 sequential하게 연결하기 때문에 logN의 시간복잡도가 무의미해진다. 동적 인덱스 - 가장 처음 고안된 알고리즘 : AVL tree(height의 차이를 최소화) - AVL tree를 사용하지 않는 이유 : 수많은 rotation으로 인해, i/o가 많아짐 - RB tree vs B+ tree - RB tree : 밸런싱을 위한 rotation 작업을 모아서 한 번에 처리하는 알고리즘 - B+ tree : 탐색할 수 있는 자식 노드를 2개 이상으로 늘리는 알고리즘 B+ tree - ISAM과 비슷한 구조 - interior node = / leaf node = ..

1. User Program에서 system call(=write) 호출 2. user.h의 system call 선언과 usys.S의 system call 정의를 linking eax 레지스터에 시스템 콜 number를 기록(시스템 콜 trap인 경우) int n 수행 * Interrupt Descriptor 부팅 시, IDTR 레지스터에 base address 셋팅 int n 명령어의 n(=IDT Offset)과 조합하여 해당 idt를 가르키는 주소값 생성 idt는 trap.c의 tvinit을 통해 descriptor의 값들이 셋팅된다. 3. int n instruction int n 수행 시, 해당하는 idt의 n번째 descriptor의 값들을 가져온다. descriptor의 값들을 이용하여 해당..

파일 안의 page를 어떻게 구성할 것인지에 관해서 * Heap Files에서는 API : recordID(pageID, slotID)를 통해 레코드 아이디를 가져온다. 즉, 쿼리 단계에서 record를 가져오려면 page와 slot이 필요하다. -> 그러나 key를 이용해서 record를 찾는다면, page와 slot이 꼭 필요하지 않을 수 있지 않을까? = index * Cost Model B : data blocks R : records per block D : delay time Tree Indexes - page Id, slot으로 record id를 찾는 것이 아닌, key 값을 통해 record Id를 찾는 방법 - Data Entries에 key와 recordID를 pair로 저장하므로써,..
0.00

Architecture of a DBMS SQL을 처리하기 위한 DBMS의 구조 = 계층화(Layer)를 통해 구현(유지보수 용이) -> 데이터베이스 전문가들은 이러한 os, system을 이용하지 않고, 물리 장치의 구조를 파악한 뒤 직접 기록한다고 함(시스템을 이용하면 오버헤드가 발생하기 때문) 1. Query Parsing & Optimization 엄밀히 따지면 컴파일은 아니나, human friendly하게 쓰인 sql을 기계어로 번역하는 과정 parsing -> syntax check -> Relational Operator & Optimization(여러 query plan 중 가장 짧게 걸릴 것 같은 query plan을 추측하여 선택) 2. Relational Operators Optim..

3D Touch 지원하는 기기에 한해서, 누르는 압력을 다르게 함에 따라 다양한 기능을 수행하도록 할 수 있습니다.(= 3D Touch) 앱은 이에 대한 반응으로 context menu를 보여줄 수도 있습니다. iOS 13 이후로는 기기에 상관없이 context menu를 보여줄 수 있지만, 3D Touch를 지원하는 기기인 경우, 더욱 빨리 대응할 수도 있습니다. Home Screen Interaction iOS 13 이후로 앱을 길게 누르면, context menu를 보여줄 수 있습니다. context menu를 통해 특정 일을 빠르게 수행할 수 있는 기회를 제공합니다. Live Photos Live Photos를 이용하면 움직임과 사운드를 추가할 수 있습니다. Apple Pencil and Scri..