Computer Science/Operating system

    Chapter 6. Process Synchronization

    # Background - Process Synchronization이란? : 여러 개의 프로세스가 shared resource를 동기화하지 않고 접근했을 때 발생할 수 있는 문제이다. => 쉬운 예로, too much milk problem을 들 수 있는데, 한 사람이 집에 우유가 없는 것을 발견하고, 이미 사러 갔는데, 다른 사람이 알지 못하고 또 다른 우유를 사와서 우유가 필요없이 너무 많이 생기는 문제가 발생한다. : 이는, 두개 이상 프로세스를 sync하지 않고 접근해서 발생할 수 있는 문제와 비슷하다. => 이를 해결하기 위해, 실제 프로그램 상에서는 locking mechanism을 사용한다. : too much milk problem에서는 이를 냉장고를 잠가버려서 두번째 사람이 확인을 못하..

    Ch 5-3) Process scheduling

    #Operating Systems Examples : 실제의 OS에 앞에서 학습한 내용을 적용해 보도록 하자. - 기본적으로, Linux Scheduling은 Scheduling class에 의존하여 작용한다. => Scheduling class의 숫자에 따라서 우선순위가 적용된다. 1) 0- 99 까지의 우선순위 : Real-time class (우선순위가 높다) 2) 100-139 : conventional class (우선순위 낮음) : 각 task를 클래스로 분류하고, 서로 다른 priority를 부여한다. ( 큐와 비슷하다) : Multi-Level Queue와 유사한 방식으로 개발되고, 여러개의 큐로 나누어져 큐 안과 큐 간 스케줄링이 각각 존재한다. - 각 프로세스들은 세가지 클래스로 분류된..

    Ch 5-(1),(2) Process Scheduling

    #CPU Scheduling => 여러명의 사람이 하나의 TV를 언제 볼 지 나누는 것처럼, CPU를 각각의 프로세스가 언제 차지할지를 할당하는 것을 CPU Scheduling이라고 한다. : CPU를 스케줄링 할때도 목적이라는 것이 존재한다. scheduling algorithm을 통해서 얻는 결과 또는 목적이라는 게 존재하는데, 이를 scheduling criteria라고 한다. #preemptive scheduling : 기존 프로세스가 안끝났어도 우선순위 높은 task가 도착하면 그 우선순위 높은 task가 먼저 실행된다. ex) 아들이 tv를 보고 있는데, 아버지가 집에 도착하면 아들을 방으로 들여보내고 본인이 tv를 본다. #non-preemptive scheduling : 우선순위 높아도 기..