일단 씻고 나가자
25.02.21 본문
2025. 02. 20 목요일
- [OS] 모니터란?
: 모니터란 동시성 문제를 해결하기 위한 기법으로서,
semaphore 직접 구현의 어려움과 디버깅이 어려운 문제를 해결하고자 나온 방식.
모니터는 언어 수준에서 제공되는 동기화 기법으로, 가장 흔하게 Java의 synchronized 등의 키워드를 예로 들 수 있다. 모니터의 구조는 다음과 같다.
Mutual Exclusion Queue
// 공유 자원을 기다리는 큐
Conditional Synchronization Queue
// 공유 자원을 사용하는 프로세스가 wait() 등으로 쉬러 들어가는 큐
https://velog.io/@codemcd/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COS-11.-%EB%AA%A8%EB%8B%88%ED%84%B0
https://sjiwon-dev.tistory.com/43
- [OS] 다중 큐 스케줄링이란?
: 하나의 큐에서 프로세스가 대기하는 기존 방식과 다르게,
대기하는 큐의 개수를 늘려 효율 및 특성, 프로세스 유형, 응답 시간 등으로 분류하여 프로세스 큐를 관리하는 방법이다.
각 큐는 개별 알고리즘을 통해 CPU를 할당받을 프로세스를 결정할 수 있어 개별 우선순위 부여 가능, 프로세스 종류별 구분 가능, 성능 향상 등의 장점이 있지만,
큐별 알고리즘 설정으로 스케줄링 복잡, 우선순위 조정 어려움, 특정 프로세스의 starvation 가능성 등의 단점이 있다.
- [OS] 선점형, 비선점형 스케줄링이란?
: 공유 자원에 대해 현재 다른 프로세스가 점유한 상태일 때,
해당 프로세스를 강제로 취소할 수 있는 스케줄링이 선점형 스케줄링,
해당 프로세스의 끝까지 취소할 수 없는 스케줄링이 비선점형 스케줄링이다.
선점형(Preemptive) 스케줄링에는 Round Robin,
비선점형(Non-preemptive) 스케줄링에는 Priority, FCFS, SJF 등이 있다.
https://eun-jeong.tistory.com/17