본문 바로가기
study/운영체제

운영체제 2 - 배치처리, 시분할시스템, 멀티태스킹, 멀티프로그래밍

by 고기만두(개발자) 2021. 11. 27. 15:38
728x90
반응형

운영체제2

이전 글 https://career-gogimandu.tistory.com/58 에서는 사용자 모드, 커널모드, 시스템 콜에 대해 공부하였다.

 

오늘 이해해야 하는 개념 3가지

1. 배치처리

2. 시분할시스템

3. 멀티태스킹과 멀티프로그래밍


1. 배치처리 aka 일괄처리

배치처리일괄 처리라고도 부른다.

 

Application 1 Application 2

옛날옛날의 컴퓨터는.. 한 번에 한 가지 일밖에 할 수 없었다고 한다.

컴퓨터 프로그램 실행요청이 들어오면 순차적으로 하나씩 하나씩 프로그램을 돌려주는데..

어, 이거 그거잖아.

자료구조에서 들어본 Queue. First in first out.

https://career-gogimandu.tistory.com/16 에서 Queue에 대해 잘 설명해 놓았다.

혹시 모르는 사람이 있다면 한번 클릭^^

 

그런데 막 몇 시간씩 며칠씩 돌아가는 프로그램 다음에 1~2초짜리 짧은걸 수행하려면,

이거 너무 상상만해도 비효율적이다.

그리고 나는 음악을 들으면서 문서 작성을 동시에 하고 싶다면 어떻게 하지?

아니면 한 대의 컴퓨터를 여러 사람이 동시에 써야하는 상황이 생긴다면?

 

2. 시분할 시스템

그래서 나온게 시분할 시스템

다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화하는 시스템이라고 이해하면 될 듯 하다.

A B C A B C A B C

이런 식으로 말이다.

CPU를 점유하는 시간을 쪼개서 번갈아 사용하도록 하는 거다.

 

어우, 근데 저렇게 하려면 약간 생각만해도 정신이 없겠는걸?

 

여기서 한 발 더 나아가면

3. 멀티 태스킹

하나의 CPU에서 여러 응용프로그램이 동시에 실행되는 '것처럼 보이게' 하는 시스템을 말한다.

A   A   A  
  B   B   B

A에게 일정 CPU를 할당해주고

-> A가 알아서 돌아가는 동안 B에게 CPU를 할당해주고

-> B가 돌아가는 동안 다시 A에게 CPU를 할당해주고 -> ,,,,

이런식으로 번갈아가면서 CPU를 할당해 주는데, 그 시간간격을 엄청 짧게 가져가준다.

10~20ms(1초 = 1000ms) 단위로 이걸 바꿔가며 실행하면.. 사람 눈에는 동시에 하는거나 마찬가지로 보이겠지

 

cf ) 멀티 프로세싱 : 여러 CPU에서 하나의 작업을 병렬 실행하면 실행속도가 극대화된다.

CPU N개가 작업 하나를 N빵하고, 그런 N빵된 작업이 여러 개 있는 경우를 생각하면 된다.

멀티프로세싱 : 출처 - 패스트캠퍼스 컴퓨터공학올인원 _ 운영체제

4. 멀티 프로그래밍

비싼 돈 주고 컴퓨터를 샀는데, CPU가 노는 꼴을 볼 수 없다. 너무 아까워.

한 번에 여러 개의 프로그램을 동시에 돌려서 최대한 CPU를 많이 활용하도록 하는 시스템이다.

시간 대비 CPU활용도를 높이고, 응용 프로그램을 짧은 시간 안에 실행완료시킬 수 있다.

예를 들자면,, A프로그램을 쭉 실행하다 갑자기 파일 입출력 같은 다른 이벤트가 발생했을 때.

파일 입출력을 위해 A가 끝날 때까지 무한정 대기하라 할 순 없잖아.

그래서 A를 실행함과 동시에 새로 끼어들어온 이벤트도 동시에 실행할 수 있도록 하는 개념이다.

 

이걸 제대로 이해하려면 앞으로 스케쥴링에 대한 공부가 좀더 필요할 듯 하니, 오늘 분량은 여기까지!

728x90
반응형

댓글