본문 바로가기

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

[운영체제]CPU burst VS I/O burst

운영체제 목차


CPU burst VS I/O burst




프로세스는 CPU burst와 I/O burst가 왔다 갔다 왔다 갔다 서로 바뀌면서 프로그램을 실행합니다.


CPU burst는 말 그대로 CPU 명령을 실행하는 것을 말하고

I/O burst는 I/O를 요청한 다음 기다리는 시간을 말해요!


프로세스는, 명령어를 수행하다가 I/O를 기다렸다가, 해결이 되면 다시 CPU에서 남은 명령어를 돌렸다가.. 이를 반복합니다.


만약 어떤 프로세스의 CPU burst time이 10초라고 하면, 이 프로세스의 어떤 특정 작업이 완료되기 위해서는 CPU가 10초동안 이 프로세스를 작업해줘야 한다는 거예요. 


그 다음 I/O burst가 왔다는 것은 10초 동안 이 작업을 한 후에, 키보드로부터 입력을 받는 작업이 뒤따라온다던가, 어떤 I/O 작업이 수행되어야 다음 CPU가 작업할 수 있다는 걸 뜻해요


프로세스는 CPU bound process 와 I/O bound Process로 크게 두 종류로 나눠볼 수 있어요.





CPU burst가 큰 프로세스가 CPU bound process,

I/O burst가 큰 프로세스를 I/O bound process라고 합니다.

즉, I/O로부터 처리해야할 필요가 별로 없고 CPU가 거의 모든 작업을 처리해줘야 하면 그건 CPU bound process겠죠? 예를 들면 기상청에서 날씨를 예측하는 일은 CPU에서 엄청난 수학 계산이 필요로 할테니까, CPU bound process라 할 수 있는거예요.

사실 사용자와 대화형으로 동작하는 프로세스는 다 I/O bound process입니다.


<CPU bound process>

사용자가 수행되는 것을 관여하지 않는 것!

CPU bound process 예시를 들자면... 여태까지 우리가 사용해본 프로그램에서는 예시를 들 것이 그렇게 많지 않은데(보통 슈퍼컴퓨터가 엄청난 수학 처리 작업을 한다거나..이럴때가 많기에!), 일상 생활에서는 압축하고 압축을 푸는 프로그램이 그나마 CPU bound에 가깝습니다. 사실 그것도 결국은 압축을 한 다음에 디스크에다가 쓰고 그 다음에 디스크에서 데이터를 읽고 그런 I/O작업들이 많아요

정말 진짜 CPU bound process는 앞에서 말했던 기상청과 같이 과학 계산용 프로그램을 예로 들 수 있겠네요

시뮬레이션 프로그램 같은, 일기예보 하는 경우, 몇 시간 동안 계속 계산을 하면서 향후의 미래를 예측하는 것!



우리가 사용하는 많은 프로그램들의 CPU burst 시간을 재봤더니 대부분 이렇게 되더라~ 하는 그래프입니다.

즉 대부분이 짧아요, 이는 많은 프로세스의 대부분이 I/O bound process라는 의미도 되는 것~!