프로세스 :
장기 스케줄링
중기 스케줄링
단기 스케줄링
생성 : - 사용자에 의해 프로세스가 생성된 상태 |
준비 : - CPU를 할당받을 수 있는 상태. - 가장 높은 우선순위를 갖는 프로세스가 다음 순서에 CPU를 할당 받음. |
실행 : - CPU를 할당받아 동작(점유)중인 상태 |
대기 : - 프로세스 실행 중 입출력(I/O)처리 등으로 CPU를 양도하고 처리 완료까지 기다리는 상태 - 대기 리스트는 우선순위가 존재하지 않음. |
종료 : 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행 종료한 상태 |
디스패치(Dispatch) - 준비 상태 > 실행 상태 - 준비 리스트에 있는 여러 프로세스 중 실행될 프로세스를 선정하여 CPU를 할당 |
타이머 런 아웃(Timer Run Out) - 실행 상태 > 준비 상태 - 지정된 시간이 초과되면 CPU 반납 후 다시 준비 상태로 전이 |
블록(Block) - 실행 상태 > 대기 상태 - 지정된 할당 시간을 초과하기 전 입출력 또는 기타 사건이 발생하면 입출력이 완료될 때까지 대기 상태로 전이 |
웨이크 업(Wake-up) - 대기 상태 > 준비 상태 - 어느 순간 입출력이 종료되면 대기 상태의 프로세스에게 입출력 종료 사실을 알려주고 준비 상태로 전이 |
인터럽트용 타이머 클록 :
하나의 시스템 내에서 동작하는 장치들을 감시하기 위해 주기적인 신호를 발생하는 것으로, 하나의 프로세스가 자원을 독점하지 못하도록 방지하기 위해 사용된다.
프로세스가 도착한 순서대로 프로세스를 디스패치하지만 정해진 시간 할당량(또는 시간 간격)에 의해 실행을 제한한다. 즉, 시간 할당량을 매 프로세스에 주고 할당된 시간 안에 완료되지 못한 프로세스는 준비 큐의 맨 뒤에 배치되도록 하여 CPU를 독점하지 않고 공평하게 이용될 수 있게 한다.
장점
단점
Round Robin + SJF 를 합한 개념
즉 Round Robin 방식으로 일정한 타임 슬라이스 만큼 CPU를 할당해서 작업을 한 후, 작업이 완료되지 않은 상태에서 시간이 완료되면 준비 큐에 넣어놓고 다음 프로세스를 준비 큐에서 가져올 때 기준을 SJF 개념으로 작업시간이 가장 짧은 프로세스를 선택해서 일정한 타임 슬라이스 만큼 CPU를 할당한다는 개념
장점
단점
* 아사 현상 : 우선권이 낮은 프로세스는 영원히 실행되지 못함. 불공평. *기아현상
시작 시점에는 프로세스 p1뿐이므로 p1은 대기하지 않고 바로 실행된다. p1이 작업을 마치면 p2와 p3이 기다리고, 두 프로세스 중 p3의 우선순위가 p2보다 높기 때문에 p3이 먼저 실행되고, p3이 작업을 마치면 이어서 p2가 실행된다. 이 경우 총 대기 시간과 평균 대기 시간은 SJF 스케줄링과 같다.
우선순위 결정
내부적 우선순위 결정
외부적 우선순위 결정
장점
단점
* 무한봉쇄(indefinite blocking) : 실행 준비는 되어 있으나 CPU를 사용하지 못하는 프로세스는 CPU를 기다리면서 봉쇄된 것으로 간주할 수 있다.(Blocking)
*기아 상태(Starvation) : 부하가 과중한 컴퓨터 시스템에서는 높은 우선순위의 프로세스들이 꾸준히 들어와서 낮은 우선순위의 프로세스들이 CPU를 얻지 못하게 될 수도 있다.
* 낮은 우선순위의 프로세스들이 무한히 봉쇄뇌는 현상에 대한 해결방안은 Aging 기법이다.
* Aging : 오랫동안 시스템에서 대기하는 프로세스들의 우선순위를 점진적으로 증가시킨다.
준비 큐에 도착한 순서대로 CPU를 할당하는 방식이다. 선입선출로 이루어진다.
장점
단점
장점
* 콘 보이 효과 : CPU 사용시간이 긴 프로세스에 의해 사용시간이 짧은 프로세스들이 오래 기다리는 현상. 이로 인해 평균 대기시간이 길어지게 된다. * 호위효과
단점
* 짧은 프로세스가 중간중간 치고 들어오기 때문에, 작업시간이 긴 프로세스는 계속 우선순위가 뒤로 ㅁ리릴 가능성이 있음*기아현상
* 기아 현상을 Aging 기법으로 해결
> Aging 기법 : 자원이 할당되기를 기다린 시간에 비례하여, 높은 우선순위를 부여하는 기법
>우선순위가 뒤로 밀릴 때마다 카운팅하여 일정 카운팅이 초과하면 더이상 뒤로 밀리지 않게 하는 Aging 기법으로 해결
참고 :
[CS📖] 프로세스 스케줄링(선점, 비선점)
📌 프로세스 스케줄링이란 무엇일까? > 우리의 뇌는 동시에 두 가지 생각을 못한다 CPU 역시 동시에 프로세스를 관리하지 못한다 
1. 프로세스(process)란?프로세스(process)란 실행중에 있는 프로그램(Program)을 의미한다. 스케줄링의 대상이 되는 작업(task)과 같은 의미로 쓰인다. 프로세스 내부에는 최소 하나의 스레드(thread)를 가
blockdmask.tistory.com
https://coding-factory.tistory.com/309
[OS] 운영체제 스케줄링이란 무엇인가?
스케줄링이란? 1. 스케줄링은 프로세스가 생성되어 실행될때 필요한 시스템의 여러자원을 해당 프로세스에게 할당하는 작업을 의미합니다. 2. 프로세스가 생성되어 완료될때까지 프로세스는 여
coding-factory.tistory.com
[운영체제] 뮤텍스(Mutex), 세마포어(Semaphore), 모니터(Monitor) (0) | 2023.04.20 |
---|---|
[운영체제] 교착상태 (0) | 2023.04.17 |
[git] intellij 프로젝트 git 올리기 (0) | 2023.02.06 |
[MySQL] 외부 접속 체크 사항 (0) | 2022.12.26 |
[ubuntu] 원격 ssh 접속시 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (0) | 2022.12.26 |