03. 기술면접 - 운영체제 - 스케줄러 (Schedula)
공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다

스케줄러
- 스케줄링(Scheduling) 이란?
- 시스템이 실행하고자 할 때 프로세서(CPU) 를 프로그램들에게 할당하는 과정
프로세스(Process)는 자신의 임무를 모두 수행하고 사라질 때 까지 많은 큐를 돌아다닌다
이 때 프로그램들은 제한된 프로세서(CPU)를 서로 사용하려고 한다
OS 는 이러한 프로세스(Process) 중 하나를 택하는 데, 바로 스케줄러(Schedula)가 이러한 역할을 담당한다
가장 자주 사용되는 스케줄러는 장기 스케줄러와 단기 스케줄러이다 (주로 일괄처리 시스템에 사용)
실행 준비가 완료된 프로세스(Process) 들은 준비큐(Ready Queue)에 놓인다
프로세스는 프로세서를 할당 받을 때 까지 준비 큐에서 대기한다
장기 스케줄러 (Long Term Scheduler)
- 작업 스케줄러, 승인 스케줄러 라고도 한다
- 디스크 내의 작업을 어떤 순서로 메모리에 가져올지 결정하는 프로그램
- 디스크와 같은 저장장치에 작업들을 저장해놓고, 필요할 때 실행할 작업을 작업 큐에서 꺼내 준비 큐를 통해서 메인메모리에 적재
- 장기 스케줄러에 의해서 new -> ready 상태로 전이를 승인하게 됨
단기 스케줄러 (Short Term Scheduler)
- 프로세스 스케줄러, CPU 스케줄러 라고도 함
- 우선, CPU 에게 필요한 데이터를 확보해주고, 메모리에 있는 프로세스 중 하나를 선택해서 프로세서(CPU)에게 할당함
- 준비큐에 있는 프로그램 중 먼저 도착한 프로세스에게 CPU 할당 (= dispatch)
- 단기 스케줄러에 의해서 ready -> running 상태로 전이
요약
장기 스케줄러 | 단기 스케줄러 | |||
new | → | ready | → | running |

'∞. 기술 면접 > 3. 운영체제' 카테고리의 다른 글
06. 기술면접 - 운영체제 - 메모리 관리 전략 (0) | 2021.10.06 |
---|---|
05. 기술면접 - 운영체제 - 프로세스 동기화 (0) | 2021.10.06 |
04. 기술면접 - 운영체제 - 동기와 비동기 (0) | 2021.10.06 |
02. 운영체제 - 멀티 프로세스와 멀티 쓰레드 (0) | 2021.10.05 |
01. 운영체제 - 프로세스와 스레드의 차이 (Process vs Thread) (0) | 2021.10.05 |
댓글
이 글 공유하기
다른 글
-
05. 기술면접 - 운영체제 - 프로세스 동기화
05. 기술면접 - 운영체제 - 프로세스 동기화
2021.10.06이 글은 보호되어 있습니다. -
04. 기술면접 - 운영체제 - 동기와 비동기
04. 기술면접 - 운영체제 - 동기와 비동기
2021.10.06공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 읽기 전 이 개념은 OS 에서 뿐만 아니라 여러가지 분야에서도 많이 쓰인다 동기(Synchronous) 란 - '동기' 라고하면 다수의 개체들이 동일(일정)한 무언가를 가지는 것, 또는 무언가가 동일(일정)하게 되는 것 - 그 무언가는 상태가 될 수 있고 행위가 될 수 있고, 시간, 속도, 주기, 출현 등이 될 수 있다 - 여기서 말하는 '동기'는 두 개의 프로세스가 데이터를 주고 받을 때, 주고 받는 순서 (또는 시간) 가 일정하다는 것을 뜻한다 - 어떤 작업을 요청했을 때 그 작업이 종료될 때 까지 기다린 후 다음 작업을 수행한다 - 데이터를 주고 받는 '순서'가 중요할 때 사용된다 - 요청한 작… -
02. 운영체제 - 멀티 프로세스와 멀티 쓰레드
02. 운영체제 - 멀티 프로세스와 멀티 쓰레드
2021.10.05공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 멀티 프로세스 대신 멀티 스레드를 사용하는 이유 프로그램을 여러 개 키는 것(멀티 프로세스) 보다 하나의 프로그램 안에서 여러 작업(멀티 스레드)을 해결하는 것이다 1. 자원의 효율성 증대 - 멀티 프로세스로 실행되는 작업을 멀티 스레드로 실행할 경우, 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자원을 효율적으로 관리 할 수 있다 시스템 콜 운영체제에서 프로그램이 구동되는데 있어 파일을 읽어 오거나, 파일을 쓰거나, 혹은 화면에 메시지를 출력하는 등 (Data, Stack, Heap 등 포함) 많으 부분이 커널 모드를 사용한다. 시스템 콜은 이러한 커널 영역의 기능을 사용자 모드가 사용… -
01. 운영체제 - 프로세스와 스레드의 차이 (Process vs Thread)
01. 운영체제 - 프로세스와 스레드의 차이 (Process vs Thread)
2021.10.05공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 프로그램 (Program) - 프로그램(Program) 이란 - 사전적 의미 : 어떤 작업을 위해 실행할 수 있는 파일 - 프로세스(Process) 란 - 사전적 의미: 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 - 메모리에 올라와 실행되고 있는 프로그램의 인스턴스 (독립적인 개체) - 운영체제로부터 시스템 자원을 할당받는 작업의 단위 - 즉, 동적이 개념으로는 실행된 프로그램을 의미한다 - 특징 - 프로세스는 각각 독립된 영역(Code, Data, Stack, Heap 의 구조)를 할당받는다 - 기본적으로 프로세스 당 최소 1개의 스레드(메인 스레드)를 가지고 있다 - 각 프로세스는 별도의…
댓글을 사용할 수 없습니다.