이전 글 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를 실행함과 동시에 새로 끼어들어온 이벤트도 동시에 실행할 수 있도록 하는 개념이다.
이걸 제대로 이해하려면 앞으로 스케쥴링에 대한 공부가 좀더 필요할 듯 하니, 오늘 분량은 여기까지!
'study > 운영체제' 카테고리의 다른 글
운영체제 3 - 스케쥴링 방식: FIFO / SJT / RoundRobin (0) | 2021.12.05 |
---|---|
운영체제 - 시스템콜, 사용자모드와 커널모드 (0) | 2021.11.21 |
인강으로 운영체제를 배워보기로 했다 (4) | 2021.11.13 |
댓글