Message Passing
- 공유되는 메모리 영역 없이 프로세스 사이에 데이터를 송수신 하거나 동기화 작업 가능
- 분산 시스템 환경에서 주로 사용하는 메커니즘
Interprocess communication
- 통칭 IPC
- 여러 프로세스간의 데이터를 주고 받을 수 있도록 하는 메카니즘
- 공유메모리 : 다수의 프로세스에 의해서 공유되는 메모리 영역
- 메시지 시스템 : 공유되는 변수 하나 없이 데이터를 구조 받을 수 있는 프로세스 통신
CPU Scheduler & Dispatcher
스케줄러의 종류
- 작업 스케줄러 : 장기 스케줄러
- CPU 위주의 연산과 I/O 위주의 연산을 적절히 혼용하여 스케줄링
- 프로세스 스케줄러 : 단기 스케줄러
- 실행 준비가 되어 있는 프로세스 중 하나를 선택하여 CPU 할당
- 선점 스케줄링 : 할당 자원에 대해 우선순위 항상 비교 (RR, SRT, MLQ, MFQ) 중간에 현재 프로세스를 빼았을 수 있다 높은 우선순위를 가진 프로세스들이 빠른 처리를 요구하는 대화형에서 유리 인터럽트와 문맥교환에 따른 오버헤드가 발생
- 비선점 스케줄링 : 할당 자원에 대해 우선순위 비교 X(FCFS, SJF, HRN) 중간에 현재 프로세스를 빼았을 수 없다. 우선순위 존재X, 공정하게 처리 응답시간 예측 짧은 작업이 긴 작업을 기다리는 경우가 발생
- 스케줄링 고려 사항
- 이용율 극대화
- 처리량 : 단위 시간당 얼마나 많은 프로세스가 실행
- 총 처리 시간 : task의 처음부터 끝까지를 의미
- Waiting time : 프로세스가 ready queue 에 있는 시간
- Response time : 어떤 프로세스가 실행이 될때 첫 응답이 오는데 걸리는 시간
- FCFS(First com First Service) - 비선점
- 먼저온게 먼저 실행된다
- 선입선출
- SJF(Shortest Job First) - 비선점
- 기다리고 있는 작업 중, 수행시간이 가장 짧다고 생각하는 것
- SRT(Shortest Remaining time First) - 선점
- 남아있는 잔여시간이 가장 적은 프로세스를 고르는 알고리즘
- 도착시간, 실행시간 고려하여 짧게 남은 프로세스를 실행
- RR(Round Robin) - 선점
- Time Slice 할당
- 시분할 시스템을 위한 설계
- switching이 많이 일어나기 떄문에 오버헤드가 많이 발생
- 처음 실행된거는 대기큐로 들어가 기다리고 있음
- MLQ(Multilevel Queue) - 선점
- 특성에 따라 다른 프로세스들이 할당(메모리크기, 프로세스 우선순위 등)
- 각 작업 서로 다른 묶음으로 분류
- 최고 우선순위 시스템 프로세스 대화형 프로세스 대화형 편집 프로세스 일괄 프로세스 학생 프로세스
- 최저 우선순위
- MFQ(Multilevel Feedback Queue)
- 프로세스가 다양한 큐를 이동할 수 있다. starvation 문제를 aging으로 해결
- cpu 사용시간에 따라 time-slice 부여
- HRN(Highest Response ratio Next)
- 각 작업의 우선순위로 서비스 해주는 스케줄링
- aging : 오랫동안 대기하는 프로세스의 우선순위를 증가시키는 방법
- starvation를 해결 가능
- 우선순위 결정식 ( 대기시간 + 서비스 시간 / 서비스 시간) -> 계산결과에 따라 높은것을 우선순위 둠
Dispatcher : short term scheduler가 선택한 프로세스에 cpu권한을 준다
'정리노트 > 필요한것' 카테고리의 다른 글
[운영체제] 7장 교착상태 (0) | 2021.07.25 |
---|---|
[운영체제] 6장 프로세스 동기화 (0) | 2021.07.25 |
[운영체제 CS] 3장 프로세스 (0) | 2021.07.22 |
[운영체제 CS]1장~2장. 운영체제의 개요 (0) | 2021.07.22 |
GIT BRANCH 전략 (0) | 2021.07.22 |