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..
Chapter 4. Process Management 💡 프로세스 생성 (Process Creation) 부모 프로세스(Parent Process)가 자식 프로세스(Children Process)를 생성한다. (프로세스가 또 다른 프로세스를 만드는 구조. 복제 생성) 프로세스의 트리(계층 구조)가 형성된다. 프로세스는 자원을 필요로 한다. 이 때, 자원은 운영체제(OS)로부터 받거나 부모와 공유한다. 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 (모든 자원을 공유하는 것보다 더 효율적임) ex) Linux 전혀 공유하지 않는 모델 수행 (Execution) 부모와 자식은 공존하며 수행되는 모델 자식이 종료(terminate)될 때까지 부모가 기다리는(wait = blocke..
Chapter 3. Process(2), (3) 💡 동기식 입출력과 비동기식 입출력 부연설명 입출력을 요청한 프로세스가 입출력이 끝날 때까지 대기상태일 경우 동기식 입출력. 입출력을 요청한 프로세스가 종료시까지 대기하지 않고 CPU가 새로운 instruction를 실행할 경우 비동기식 입출력. 💡 Thread A thread is a basic unit of CPU utilization lightweight process라고도 부름 CPU를 수행하는 단위라고 할 수 있음. data, code 부분은 thread들이 공유를 하고 각각 stack부분만 thread가 고유 공간을 가지고 있음. PCB에서도 Thread 각각이 독립적으로 구성하고 있는 것은 PC(Program counter), Register이..