지금 까지 low-level 의 mechanism 인 switch 를 알아보았다.
이는 하드웨어에서 일어나는 일인데, 이제 소프트웨어 에서 일어나는, policy를 알아보자 policy 는 switch 를 할때 무엇을 switch 할지를 정해 주는 방법이라고 할 수 있다.
이 policy에는 scheduling 이 있는데, 이 스케줄링은 보통 두가지로 평가를 한다.
1. performance
2. fair
이 두가지에서 우리는 성능 (performance)에 대해서 알아보자.
성능의 지표로는 turnaround time이 있다.
turnaround time 은 끝난 시간에서 프로세스가 도착한 시간을 빼면 된다.
맨 처음의 스케줄링은 fifo 이다. 이는 선입선출로 먼저 도착한 프로세스를 먼저 처리하는 방식이다.
이때에 동시에 도착한다면 무작위로 처리하는데, 이때에 무작위로 긴 프로세스를 먼저 처리하게 되면 평균시간이 늘어난다.
그래서 sjF 로 짧은 걸 먼저 시작하도록 한다.
하지만 이때의 단점은 긴 시간이 걸리는 프로세스가 먼저 도착했을 때에 평균 turn around 시간이 늘어난 다는 것이다.
그래서 이를 해결 하기 위해서 stcf, 남은 시간이 짧은 프로세스를 실행하도록 한다.
따라서 아래 그림과 같이 실행하게 된다.
성능의 다른 지표로는 reponse time 이 있다. 이는 반응 시간으로 시작 시간에서 도착 시간을 뺀 값이다.
따라서 위의 경우에는 a 의 반응시간은 0, b 는 5, c 는 10 이다.
그래서 round robin을 활용해서 반응시간을 줄인다.
이 경우에는 공정하다는 이점 또한 있다. 하지만, turn around time 이 커진다는 단점이 있다.
위는 overlap 하는 경우이다. 이는 I/O 처리가 수행 될때 이가 disk에서 실행될때 남는 cpu 자원으로 다른 프로세스를 실행한다.
I/O 처리의 경우는 I/O processor 에서 시행하기에 cpu 자원이 남게 된다.
그리고 disk 처리가 끝날때에 interrupt 를 발생시켜서 알리고 프로세스를 바꾼다. 이때의 scheduling 방식은 stcf, 남는 시간이 가장 짧은 걸 먼저 하는 방식으로 한다.
'운영체제' 카테고리의 다른 글
운영체제 scheduling proportional share (0) | 2023.03.12 |
---|---|
운영체제 MLFQ (0) | 2023.03.11 |
운영체제 LDE (0) | 2023.03.11 |
운영체제 process api (0) | 2023.03.11 |
운영체제 process (0) | 2023.03.11 |