Chapter 6. Process Synchronization (4) 프로세스 동기화, 병행 제어 (Concurrency control) 💡 Classical Problems of Synchronization Bounded-Buffer Problem (Producer-Consumer Problem) Readers and Writers Problem Dining-Philosophers Problem 💡 Bounded-Buffer Problem (Producer-Consumer Problem) 생산자-소비자의 문제 주황색 원은 생산자가 공유 버퍼에 데이터를 넣어 놓은 상태, 흰색 원은 소비자가 버퍼에서 프로세스를 꺼내간 상태. 데이터를 넣을 때 or 꺼낼 때 lock을 걸어 공유 데이터에 다른 프로세스가 접..
Chapter 6. Process Synchronization (2), (3) 💡 Initial Attempts to solve problem 두 개의 프로세스가 있다고 가정. P0, P1 프로세스들의 일반적인 구조 do { entry section critical section exit section reminder section } while(1); 프로세스들은 수행의 동기화(Synchronize)를 위해 몇몇 변수를 공유할 수 있다. -> Synchronization variable 💡 프로그램적 해결법의 충족 조건 Mutual Exclusion (상호 배제) 프로세스 Pi가 critical section 부분을 수행 중이면 다른 모든 프로세스들은 그들의 critical section에 들어가면 안..
Chapter 6. Process Synchronization 💡 데이터의 접근 💡 Race Condition (경쟁 상태) 중복 접근이 발생하는 경우 결과 값에 문제가 발생해 원치 않은 결과를 얻게 될 수 있음. OS 에서 Race Condition이 발생하는 경우 Kernel 수행 중 인터럽트 발생 (interrupt handler vs kernel) 중요한 변수값을 kernel이 처리하는 경우 interrupt 처리를 disable 시켜서 kernel이 수행하는 프로세스가 종료된 후 interrupt를 처리하는 방식으로 문제를 주로 해결함. Process가 System Call을 발생시켜 Kernel mode로 수행 중인데 문맥교환(Context Switch)이 발생하는 경우 해결책 : 커널 모드에..
Chapter 5. CPU Scheduling (2) 💡 Scheduling Criteria - Performance Index(스케쥴링 성능 척도) CPU Utilization (이용률) Keep the CPU as busy as possible CPU가 놀지 않고 일한 시간의 비율 Throughput (처리량) # of processes that complete their execution per time unit 주어진 시간 동안 몇개의 작업을 처리했는지에 대한 비율 Turnaround Time (소요 시간, 평균 시간) amount of time to execute a particular process CPU를 쓰기 시작해서 I/O 처리를 위해 종료할 때까지 (뺏길 때까지) 걸린 시간 (CPU b..
Chapter 5. CPU Scheduling - 1 💡 CPU and I/O Bursts in Program Execution 명령어 실행 도중 I/O 작업으로 넘어가면 wait이 발생하게 됨. CPU만 연속적으로 사용하는 CPU burst 상태와 I/O만 연속되어 발생하는 I/O Burst 상태가 반복되게 됨. 주로 사람이 연결되어 있는 프로그램에서 주로 반복되는 형태가 많이 발생함 (interactive한 job) 프로그램의 종류에 따라 빈도나 유형이 각각 다름. 💡 CPU-burst time의 분포 여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케쥴링이 필요하다. 중간에 I/O가 많으면 CPU bust time이 적음. (= I/O bound job) -> 반대가 CPU bou..