운영체제
-
[OS] Synchronization과 Critical-Section ProblemCS/Operating System 2021. 12. 1. 18:50
🔍 Background process synchronization이 필요한 이유! ❗️ 다수의 프로세스/스레드가 공유 데이터에 동시(concurency -> single core), 병렬(parallel -> multicore) 접근으로 인한 데이터 불일치(inconsistency)가 발생할 수 있다. Example - Producer-Consumer problem Producer: 데이터 생성 스레드 Consumer: 데이터 소비 스레드 👉 이 두 스레드는 같은 데이터를 생산하고 소비하는 스레드이기 때문에 반드시 동기화되어야 한다!!! 두 thread가 각각 이러한 코드를 가지고 있다고 생각해보자. global variable로 선언되어 있는 counter 변수는 두 thread가 공유하는 변수이다. ..
-
[OS] SchedulerCS/Operating System 2021. 9. 20. 19:17
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS를 참고하여 작성하였습니다. 스케줄러 (Scheduler) 프로세스를 스케줄링하기 위한 Queue 에는 세 가지 종류가 존재한다. Job Queue: 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue: 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합 Device Queue: Device I/O 작업을 대기하고 있는 프로세스의 집합 각각의 Queue에 프로세스들을 넣고 빼주는 스케줄러에도 크게 세 가지 종류가 존재한다. 장기 스케줄러(Long-term scheduler or job scheduler)..