본문 바로가기

STUDY

데이터베이스 용어 정리 관계 데이터 모델의 개념 relation : 2차원의 테이블 (스프레드 시트와 유사) record : relation의 각 행 tuple : record를 좀 더 공식적으로 부르는 용어 attribute : relation에서 이름을 가진 하나의 열 domain : 한 attribute에 나타날 수 있는 값들의 집합. 프로그래밍언어에서 데이터 타입과 유사. 동일한 도메인이 여러 attribute에 사용될 수 있음. 도메인 정의 ex) CREATE DOMAIN EMPNAME CHAR(10); CREATE DOMAIN EMPNO INTEGER degree : 한 relation에 들어있는 attribute들의 수. 유요햔 relation의 최소 degree는 1. cardinality : relation의 .. 더보기
[2019.07.04] Uniprocessor Scheduling Types of Scheduling - Long-term scheduling : New 상태에 있는 프로그램들 중에 누굴 memory에 올릴지 결정 - Medium-term scheduling : suuspended 상태에 있는 프로그램들 중에 누굴 올릴지 결정 - Short-term scheduling : ready 상태에 있는 프로그램들 중에 누굴 올릴지 결정 Scheduler가 발생할 때 1. 누가 와서 내 프로세스를 뺏어갈 때 (preemptive), ready상태로 감. 2. 내가 자발적으로 프로세스 놓음 (nonpreemptive), blocked 상태로 감. Scheduling 기준 - CPU utilization : CPU가 얼마나 바쁘게 일하는지 - Turnaround time : 프로그.. 더보기
[2019.07.03] Page Replacement Replacement Policy : 어떤 page가 대체 (swap) 될 것인가? 대체되는 Page는 나중에 가장 참조될 가능성이 적은 애이다. Basic Replacement Algorithms - FIFO : memory에 가장 오래 있던게 대체된다. - Optimal Policy : 제일 긴 시간 후에 사용될 page를 대체한다. 하지만 예측할 수 없으므로 사용 못한다. - Least Recently Used : 가장 오래전에 사용된 page를 대체한다. 근데 시간을 저장하므로 시간, 비용이 많이 든다. - Clock Policy : LRU와 비슷하지만 근사한시킨 알고리즘을 사용한다. use bit을 설정하여 0인 page를 대체한다. 성능은 OPT > LRU > CLOCK > FIFO 순이다. .. 더보기
[2019.07.02] Virtual Memory 프로세스는 조각되어 들어가기 때문에 main memory에 연속적으로 들어갈 필요가 없다. - Virtual memory의 이점 main memory 크기와 상관없이 더 큰 process도 실행할 수 있다. 더 많은 process 들이 main memory에 올라온다. -> CPU가 노는 시간이 줄어든다. 현재 실행 중인 process들이 다 I/O가 되어 blocked 상태이면 CPU가 논다. -> swapping이 제안되었지만 suspended로 보내는 것도 process를 디스크에 올리는 데 오래 걸림 -> VM이 제안됨. 조금씩만 memory에 올림. - Program 실행 1. OS가 program의 조각 조금을 main memory에 가져온다. 2. main memory에 없는 주소가 요구되면.. 더보기
[2019.07.01] Memory Management memory 할당 및 할당 후 보호 요구사항 - Relocation : 프로세스는 실행하는 동안 다른 메모리 위치를 점령한다. 프로그램이 실행되는 동안 디스크로 swap 되고 다른 위치의 main memory로 반환된다. - Sharing : 몇몇 process들이 memory의 같은 부분에 접근하는 걸 허용 Memory Partitioning - Equal-size Paritioning : 모든 process의 memory를 똑같이 할당한다. 하지만 이러면 안쓰게 되는 부분(internal fragmentation)있다. 메모리 낭비. - Unequal-size Partitioning : memory 공간을 효율적으로 할당할 수 있지만 시간, OS가 낭비 된다. - Dynamic Partitioning.. 더보기
[2019.06.28] Concurrency : Deadlock and Starvation Deadlock : 두개 이상의 process가 자원을 기다리는 데 일어나는 충돌. 각자 자원을 가지고 있는 상태에서 다른 거 요청할 때 일어난다. - Reusable Resources : 한번에 하나의 프로세스에만 사용되며 그 사용으로 고갈되지 않는다. ex. Processor, I/O channels, main memory, semaphore ... 예제. memory 공간에 200KB의 가용 공간이 있다. P1에는 80KB 다음 60KB를 요구하는 statement가 있다. P1에서 80KB를 요구하는 statement를 실행하고 (남은 메모리 120) context switch 일어나서 P2를 실행한다. P2에는 70KB 다음 80KB를 요구하는 statement가 있다. 70KB를 할당해주고 (.. 더보기
[2019.06.27] Concurrency : Mutual Exclusion and Synchronization CPU 하나가 여러개의 프로그램을 동시다발적으로 진행. 하나의 processor (CPU) 에 producer processes와 consumer process가 가동된다. Producer/Consumer Problem 하나 이상의 Producer가 data 만들고 buffer에 저장함. 하나의 consumer는 buuffer에서 하나씩 가져옴. 한번에 오직 하나의 consumer or producer 만이 buffer에 접근할 수 있다. Producer/Consumer : Finite Buffer main memory에 shared memory 공간을 할당해 변수들을 저장한다. (shared data) -> 동시에 producers, consumer가 접근할 수 있다. - Producer Process.. 더보기
[2019.06.26] File Management File Systems : 파일을 관리하는 시스템. 물리적인 디스크에 논리적으로 끊어서 공간을 할당. File System에는 FCB (File Control Block)이 있다. device file의 FCB는 device type 필드와 device number 필드가 있다. major number는 장치의 타입 (ex. terminal, disk), minor number는 장치의 단위들을 나타낸다. - File Directory : 파일에 대한 정보를 담고 있다. basic information, address information (파일이 저장된 디스크 내의 위치값), access control information. 얘네는 PCB 에도 저장된다. 그러면 같은 정보를 두 군데에 저장하므로 문제가.. 더보기
[2019.06.25] IO Interrupt, Disk I/O Devices = Controller (명령어 전달) IO Systems은 IO Management (kernel의 I/O subsystem), Device-driver interface (driver에 읽고 쓰기를 하면서 파일 시스템의 함수를 호출하여 파일 시스템에 근접한 interface), Drivers for specific HW devices로 구성되어 있다. I/O Function - Polling 모드 체인지만 한다. User program이 계속 실행되고 있어 context switch를 하지 않는다. pollstatus는 다했냐고 주기적으로 계속 다했다는 status가 올 때까지 물어본다. 하지만 이것도 결국 Device Drvier의 함수를 실행하는 것이므르 시간이 지연된다. 이.. 더보기
[2019.06.24] Thread 커널에 프로세스 생성을 요구할 때 일어나는 일 1. 새 process의 PCB data structure 생성 2. child process에게 PID 부여 3. PCB의 value 설정 4. linkages 설정 (가족들끼리 연결) 5. 다른 data structure 생성 또는 확장 6. user context 생성 (부모 PCB로 복사한 data, stack은 child용 공간을 만들어 사용한다.) 7. child process를 Ready 상태로 설정하고 Ready Queue에 삽입 8. parent process에게 child의 PID 반환하고 child에게 0줌. Context switch (Process Switch)를 할 때, 1. 프로세스 종료 2. time slice 종료 3. Bloc.. 더보기