728x90
728x90
Multi-Programming 의 목적은 프로세스의 CPU 이용을 최대화하여
사용되지 않는 CPU를 최소화하는 것이다.
이 때 프로세스를 적절하게 배치하는 것을 스케줄링이라고 한다.
Scheduling Queue(스케줄링 큐)
프로세스를 스케줄링 하기 위해 3가지 큐(Queue)를 사용한다.
- Job Queue : 시스템 내에 있는 모든 프로세스의 집합
- Ready Queue : 메인 메모리 내에 있으면서 Ready 상태에서 CPU의 할당을 기다리는 프로세스의 집합
- Device Queue : Devie I/O 작업을 대기하고 있는 프로세스의 집합
⇒ 프로세스는 스케줄러에 의해 적절한 큐로 배치된다.
장기 스케줄러(Long-term Scheduler)
작업 스케줄러(Job Scheculer)라고도 불린다.
어떤 프로세스를 Ready Queue로 보낼 지를 결정하는 스케줄러이다.
💡 메모리는 한정되어 있기 때문에, 실행할 수 있는 프로세스보다 많은 프로세스가 메모리에 올라오면 대용량 메모리(일반적으로 하드디스크)에 임시로 저장된다. 장기 스케줄러는 하드디스크의 프로세스 중 하나를 선택하여 메모리를 할당하고 Ready Queue로 보내는 역할을 한다.
- 메모리와 디스크 사이의 스케줄링을 담당한다.
- 프로세스에 Memory를 할당한다.
- Degree of Multiprogramming 을 제어한다.
- Degree of Multiprogramming : 현재 메인 메모리에 존재하는 활성화된 일(active job)의 개수
프로세스의 상태 : New → Ready / Running → Terminate- 프로세스가 끝날 때 실행되므로, 실행 주기가 매우 길다.
단기 스케줄러(Short-term Scheduler)
CPU Scheduler라고도 불린다.
어떤 프로세스에 CPU를 할당할 지를 결정하는 스케줄러이다.
💡 CPU는 하나의 작업만을 처리한다. 따라서, Ready Queue에서 CPU를 할당할 하나의 프로세스를 선택해야 한다.
- Ready 상태에 있는 작업 중에서 프로세스를 선택하여 CPU를 할당한다.
- CPU와 메모리 사이의 스케줄링을 담당한다.
- 일반적인 Scheduler는 단기 Scheduler를 의미한다.
프로세스의 상태 : Ready → Running → Waiting → Ready- CPU를 낭비하지 않기 위해 프로세스를 기다리는 동안 다른 프로세스를 바로 실행해야 한다.
따라서, 단기 스케줄러는 짧은 주기로 수행된다.
중기 스케줄러(Medium-term Scheduler)
Swapper라고도 불린다.
메모리에 적재된 프로세스 수를 관리하는 스케줄러다.
💡 스와핑(Swapping) : 일부 프로세스를 메모리에서 디스크로 보내고(swap-out), 시간이 흘러 메모리에 여유가 생기면 다시 적재(swap-in)한다
- 우선순위가 가장 낮은 프로세스나 일정 시간 동안 활성화되지 않았던 프로세스들을 디스크로 내린다.
- Degree of Multiprogramming 을 제어한다.
프로세스의 상태 : Ready → Suspended(Stopped)
질문
Q. 현대 OS에는 단기, 중기, 장기 스케쥴러를 모두 사용하고 있나요?
더보기
- 장기 스케줄러 : 사용하지 않는다.
- 장기 스케줄러는 일괄처리 시스템에서 사용한다. (자원 독점)
- 현대 운영체제에서는 대부분 시분할 방식인 Round Robin을 사용한다. (자원 독점X)
- 시분할 방식에서 프로세스는 시작과 동시에 메모리를 할당해 Ready Queue 에 넣는다.
- 가상 메모리의 사용으로 잘 사용하지 않는다.
- 중기 스케줄러 : 잘 사용하지 않는다
- 가상메모리를 사용하면 프로세스의 전체가 아닌 일부만 실제 메모리에 올라와도 된다.
- 따라서 실제 메모리 용량보다 큰 프로그램을 실행 시킬 수 있고 메모리의 크기에 제약이 없어졌다.
- 단기 스케줄러 : 여전히 사용한다.
Q. Memory가 부족할 경우, Process는 어떠한 상태로 변화할까요?
더보기
- 대기중인 프로세스가 할당된 메모리를 반납하고 하드 디스크로 swap-out 된다.(suspend 상태)
- 이후 Memory에 여유가 생기면 다시 메모리로 swap-in 된다.
참고하면 좋을 내용
04.2 CPU 스케줄링 큐와 스케줄러
728x90
728x90
'Computer Science > Operating System' 카테고리의 다른 글
Process Scheduling Algorithm(프로세스 스케줄링 알고리즘) (0) | 2023.03.07 |
---|---|
Context Switching(컨텍스트 스위칭) (0) | 2023.03.07 |
Process Address Space(프로세스 주소 공간) (0) | 2023.03.07 |
Process(프로세스) (0) | 2023.03.07 |
인터럽트(Interrupt) - 내용 수정 필요 (0) | 2023.03.04 |