Chapter 7. Deadlock (교착상태) 💡 The Deadlock Problem Deadlock : 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태 Example 1. 시스템에 2개의 tape drive가 있다. 프로세스 P1, P2 각각이 하나의 tape drive를 보유한 채 다른 하나를 기다리고 있다. Example 2. Binary Semaphores A and B P1 P2 P(A); P(B); P(B); P(A); Resource 하드웨어, 소프트웨어 등을 포함하는 개념 ex) I/O device, CPU cycle, Memory space, semaphore 등 프로세스가 자원을 사용하는 절차 Request --> Allocate --> Use --> Release..
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..