스케쥴링 - 멀티 프로그래밍

2021. 2. 19. 21:27Computer(인강)/운영체제

728x90
반응형
이 포스팅은 fastcampus의 '컴퓨터 공학 전공자 따라잡기 온라인 완주반' 강의를 참고하여 작성하였습니다.

 

 

안녕하세요 bannavi입니다^ㅅ^

오늘은 멀티 프로그래밍을 보다 이해하기 쉽게 다양한 측면에서 깊이있는 공부를 시작해볼거에요

바로 포스팅 시작하겠습니다!!

 

그럼 지금부터 시쟈악~

 

멀티프로그래밍이란?

최대한 cpu를 많이 활용하도록 하는 시스템.

 

-> 시간대비 cpu활용도를 높이자.

 

운영프로그램 중 cpu실행이 필요한 운영프로그램을 cpu에 바꿔치기를해서

촘촘하게 cpu를 운영프로그램이 쓰도록 하는것

 

-> 운영프로그램은 최종적으로 짧은 시간안에 실행완료 시킬 수 있다.

 

응용프로그램은 온전히 cpu를 쓰기보단 다른 작업을 중간에 필요로 하는 경우가 많습니다.

예를 들어서, 응용프로그램이 실행하다가 파일을 읽는다고 해봅시다. 

그럼 이때 저장매체로 가겠죠?

저장매체는 cpu의 실행시간으로 봤을때 굉장히 느려요.

운영프로그램은 그럼 그 시간동안 아무 작업도 못하게 되고...ㅜ

 

운영프로그램이 실행되다가 프린팅을 할때. 우리가 봐도 한참 걸리는 작업이죠

프린팅이 끝날때까지 아무코드를 실행하지 못한다고 가정하면 낭비 갑이겠죠?

 

 

 

중간에 다른 작업을 끼워서 진행했더니

두번째 그림처럼 멀티프로그래밍은 활용도가 100이 되고 있네요. 개이득이죠!

cpu의 하나의 명령 실행 단위를 1cycle이라고 합니다.

저장매체로 넘어가기 시작함과 동시에 단위도 달라지는것 보이시죠?

만배 이상..!!

뭐래...머리 터지시죠?^ㅅ^

쉽게 말해볼게요

 

저장매체를 이용하면 아 느려 아악 느려느려!!!

->

DMA를 이용해서 저장매체에 있는 정보를 CPU에 올려줘!(그럼 좀더 빨라지나봄)

 

이렇게도 했다고 하네요.

 

 

정리해보겠습니다.

 

실제로는 시분할시스템, 멀티프로그래밍, 멀티태스킹이 유사한 의미로 통용됩니다.

 

핵심!

 

1. 여러 응용프로그램 실행을 가능토록 함.

2. 응용 프로그램이 동시에 실행되는 것처럼 보이도록 함.

3. CPU를 쉬지않고 응용 프로그램을 실행토록 해서, 짧은 시간 안에 응용 프로그램이 실행완료될 수 있도록 해야함.

4. 컴퓨터 응답 시간도 짧게 해서, 다중 사용자도 지원

 

정리!

 

시분할 시스템: 다중 사용자 지원, 컴퓨터 응답시간을 최소화하는 시스템

멀티태스킹: 단일 CPU에서 여러 응용 프로그램을 동시에 실행하는 것처럼 보이게 하는 시스템

멀티 프로세싱: 여러 CPU에서 하나의 응용 프로그램을 병렬로 실행하게 해서 실행속도를 높이는 기법

멀티 프로그래밍: 최대한 CPU를 일정 시간당 많이 활용하는 시스템

 

 

728x90
반응형