Operating System (운영체제의 핵심 기능)
문맥 교환 (Context Switching) : 프로세스를 바꿔주는 일을 하는 놈이 스케줄러이고, 스케줄러가 프로세스를 바꿔주는 것을 문맥 교환 (Context Switching)이라고 한다.
컴퓨터는 사람과는 다르게 multitasking을 할 때에 동시에 여러가지 일을 하나의 메모리에서 처리할 수 없기 때문에, 마치 동시에 어려가지 일을 할 수 있는 것 처럼 하기 위해서 Time Sharing을 사용한다.
문맥이 바뀌는 부분을 말 그대로 문맥 교환 즉, Context Switching이라고 한다.
프로세스 스케줄링: CPU 자원을 효과적이고 생산성 있게 사용하기 위하여 하는 작업.
위 그림에 프로세스 스케줄링 성능 평가 기준이 도표로 명시되어 있다.
PCB: 멀티 프로세싱을 원활하게 처리하기 위해 프로세스의 정보를 표현해둔 곳이 바로 PCB이다.
위의 그림은 프로세스 상태 전이를 표현한 것으로, 통째로 머릿속에 넣어두면 좋다.
선점형에서는 라운드 로빈과 SRT 정도가 나올 가능성 있다.
SJF에서는 무조건적으로 짧은 것들부터 먼저 실행시키다 보니까, 예시에서 프로세스 C와 같이 실행시간이 혼자 압도적으로 많은 경우에는 계속해서 실행이 되지 못 하고 뒤로 계속해서 밀리는 경우가 발생한다. 이런 비정상적인 현상을 보고 기아 현상이라고 하고, 이런 부분을 해결하기 위해 등장한 것 이 바로 HRN이다.
HRN은 우선 순위 기준에 대기시간을 넣어서, 대기 한 시간을 고려 대상에 넣기 때문에 저런 기아현상이 발생하지 않도록 방지할 수 있다.
HRN의 계산 공식인
요 부분만 확실하게 외워두자. 여기서 남아있는 수들중에 응답비율이 수치가 가장 높은 수가 다음 차례에 오게 되는 것 이다.