본문 바로가기

별걸다하는 IT/운영체제 OS

[운영체제]시스템에 따른 스케줄링의 목표 (Scheduling goals)

반응형

[운영체제(OS) 목차 &책 추천]


저번시간에 스케줄링이 무엇인지! 좋은 스케줄링 알고리즘에 대해 알아봤어요

이번에는 스케줄링의 목표 다음시간에는 non-goals (하지 말아야 할 것 - 대표적: starvation)에 대해서 알아볼게요


스케줄링의 목표 Scheduling Goals


일단 보편적으로 스케줄링에는 목표가 있습니다.

공평해야 해요!! 컴퓨터 시스템에서는 가장 중요한 원칙이 fairness입니다.


어느 하나 놀고 어느 하나는 바쁘게 일하고

이렇게 스케줄링 하지 않는 것이 목적입니다.





그래도 특정 컴퓨터 시스템마다 추구하는 것이 조금씩 다를 수 있다.

사실 이번 내용은 앞의 포스트에서 이루어졌던 scheduling criteria를 확실하게 이해하고 계시면 다 유추 가능한 내용들입니다.

Scheduling Criteria (스케줄링이란?) 게시글 읽고 오기


- Batch

Batch system이라는 것은 한 번에 하나의 프로그램만 수행하는 것을 말하잖아요

이거는 한 번에 하나의 프로그램을 수행하는 것이니까 사용자의 응답시간이나 turnaround time이런 것은 중요하지 않죠

컴퓨터가 가능하면 많은 일을 수행하도록 스케줄링을 해야 합니다. 그래서 이 시스템의 경우 time에 관한 것보다는 throughout하고 CPU utilization이런 측면을 최대화 하는 것이 배치 시스템에는 더 좋다!!



-Interactive Systems

반면 interactive system의 경우, 사용자가 컴퓨터 앞에서 대화형으로 동작하기 때문에 가장 중요한 것이 response time이죠

그 다음이 waiting time. 너무 많이 기다리면 안되겠죠. 어떤 하나의 작업이 오랫동안 끝날 때까지 기다리면 안돼요. 그래서 우리가 time sharing 방법을 생각해내서 이 waiting time을 줄인 것


-Real time Systems 실시간 시스템

real time system의 경우에는 완전히 다릅니다. 이 real time system은 시간이라고 하는 제약 조건이 추가된 그런 컴퓨터 시스템이기 때문이죠. 주어진 인풋에 아웃풋만 계산한다고 끝이 아니라 시간 제약 조건이라고 하는 것이 있고 그 시간 제약 조건을 만족하지 못하면 큰 문제가 발생하는 것이 hard real time systems, 지금까지 수행한 것이 아무 의미가 없어져버리는 것이 soft real time systems라고 합니다.

그러면 이런 경우에는 스케줄링을 어떻게 해야할까요? 시간 제약조건을 만족하지 못하면 큰 문제가 발생하기 때문에 시간 제약 조건을 만족하는 것이 스케줄링의 가장 첫 번째 목표가 됩니다


즉 당연한 말이지만 정리하자면 batch에서는 시간보다는, 처리양이 중요하고

interactive 시스템에서는, 응답시간 빠를수록, 기다리는 시간이 적을수록 좋고 (우리가 사용하는 pc가 예가 되겠죠)

real time 시스템에서는 무엇보다도 deadline, 기한을 맞추는 것이 제일 중요하다입니다.


다음에는 non-goal 중에서도 엄청 중요한 starvation에 대해서 볼게요 

반응형