Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 호스팅
- 프록시서버
- 세마포어란?
- 싸피
- Proxy Server
- 웹 호스팅
- SSAFY
- 동기화
- 삼성 청년 SW 아카데미
- 플로이드 워셜
- 세마포어와 뮤텍스의 차이
- 플로이드 와샬
- 세마포어
- 세마포어와 뮤텍스
- Dijkstra Algorithm
- floyd-warshall
- 프록시
- 클라우드 서버
- 뮤텍스란?
- 서버 호스팅
- 최단 경로
- 싸피 면접 후기
- 싸피 합격
- 뮤텍스
- Synchronization
- 다익스트라 알고리즘
- 다익스트라
- Proxy
- 호스팅이란?
Archives
- Today
- Total
어제의 나보다 성장한 오늘의 나
스케줄러의 종류(장기스케줄러, 중기스케줄러, 단기스케줄러) 본문
스케줄러(Scheduler)란?
- 한정적인 메모리를 여러 프로세스가 효율적으로 사용할 수 있도록 다음 실행 시간에 실행할 수 있는 프로세스 중에 하나를 선택하는 역할
스케줄러 종류
1. 장기 스케줄러(Long-term scheduler) / 잡 스케줄러(Job scheduler)
- 내가 지금 수행해야 할 job이 10개라고 해보자, 그런데 메모리에는 6개밖에 올릴 수 없는 상황이다.
- 그렇다면 10개 중에 6개를 골라서 올려놔야 하는데, 어떤 것을 메모리에 올릴지 결정하는 게 장기 스케줄러이다.
- job을 고르는거라고 해서 Job scheduler라고도 불린다.
조금 더 정확하게 정리하면 메모리는 한정되어 있는데 많은 프로세스들이 한꺼번에 메모리에 올라올 경우, 대용량 메모리(일반적으로 디스크)에 임시로 저장한다. 장기 스케줄러는 풀로부터 프로세스들을 선별하고 실행을 위해 메모리에 적재한다.
- 메모리와 디스크 사이의 스케줄링을 담당
- 프로세스의 상태 new -> ready(in memory)
2. 단기 스케줄러(Short-term scheduler) / CPU 스케줄러(CPU scheduler)
- 장기 스케줄러에 의해 6개의 작업이 메모리에 있다고 치자 그런데 실제 CPU가 수행하는 건 하나다.
- 그럼 6대중에 결국 또 하나를 골라야 하고 이 역할을 담당하는 게 단기 스케줄러이다.
- 결국 CPU를 차지할 녀석을 스케줄링해주는 것이기에 다른 말로 CPU scheduler라고도 한다.
- CPU와 메모리 사이의 스케줄링을 담당
- 프로세스의 상태 ready -> running -> wating -> ready
→ 장기 스케줄러는 요즘에 없다?
요즘은 10개가 실행 준비가 되면 메모리로 10개가 다 올라간다. 그 이유는 이전에는 없었던 virtual memory management가 발달되었기 때문이다. 즉! 오늘날에는 long term scheduling은 의미가 없다. long thrm이 있어야 short term이 있는 건데, long term이 없으니깐 오늘날엔 그냥 CPU scheduling이라고 한다.
3. 중기 스케줄러(Mid-term scheduler) / 스와퍼(Swapper)
- 장기, 단기 이후에 생긴 것이나 이것도 요즘 운영체제에는 없다.
- 그래도 간단한 개념 정도는 집고 넘어가겠다.
- 장기에서 선택된 6개를 수행하고 있다고 가정하자, CPU에서는 6개를 수행하려고 했지만 너무 많아서 감당하기가 든 경우가 생겨 몇 개를 내보려고 할 것이고 6개 중에 뭘 골라야 하는지 결정하는 게 중기 스케줄러이다.
- 중기 스케줄러는 프로세스를 내릴 때 우선순위가 가장 낮은 프로세스나 일정 시간 동안 활성되지 않았던 프로세스를 내린다.
- 프로세스를 내리고(swapping out) 올리고(swapping in) 하는 걸 swapping이라고 하고 이런 걸 담당하기에 Swapper라고도 불린다.
- 현 시스템에서 메모리에 너무 많은 프로그램이 동시에 올라가는 것을 조절을 담당
- 프로세스 상태 ready -> suspended
출처
'CS > 운영체제' 카테고리의 다른 글
임계영역(critical section) (0) | 2021.04.25 |
---|---|
[운영체제] 동기화 Synchronization , Race condition (0) | 2021.04.24 |
교착상태(DeadLock)가 무엇인가? (0) | 2021.04.23 |
운영체제의 CPU 스케줄링 (0) | 2021.04.22 |
프로세스와 스레드의 차이 (0) | 2021.04.21 |
Comments