진짜 개발자
본문 바로가기

CS(Computer Science)/운영체제

멀티프로그래밍 , 멀티프로세싱

728x90

멀티 프로그래밍 

- 멀티프로그래밍이란 과거 비싼 자원인 컴퓨터 CPU의 Idle time(입출력을 기다리는 시간)등을 줄이기 위해 등장하였다

  동시에 여러 프로그램을 실행시킨다는 의미이지만 실제로 프로세서는 한순간에 하나의 처리만을 할 수 있으므로

  동시에 여러 프로그램을 실행시키지는 않고 매우 짧은 시간(사용자가 느끼지 못할 만큼)동안 여러 프로그램을 돌아가며 수행한다

  따라서 사용자는 자신만이 그 컴퓨터를 사용하고 있다고 느낀다.

 컴퓨터에서 입출력 시간은 전자적 작업에 비해 매우 시간이 오래걸리는 작업이다 

 물리적 장치가 직접 움직이는 시간이 고려되기 때문이다 비다중 프로그래밍에서는 사용자의 입력이 필요하거나 출력이 필요한 경우

 이러한 긴시간동안 CPU가 유휴상태로 되지만 다중프로그래밍 환경에서는 입출력이 필요한 경우 운영체제가 다른 프로세스를 실행하게되고 이러한 작업이 반복되다가 입출력을 요청한 프로세스의 작업이 끝나게되어 인터럽트를 걸게되면 다시 그 프로세스가 수행이 되고 결국 CPU유휴시간이 사라지게 된다.


CPU 스케줄링 

     - 운영체제가 멀티프로그래밍을 지원하기 위한 핵심 기술로 메인 메모리에 적재 되어 있는 프로세스들중 어떤 프로세스를

먼저 수행할지 결정하는 작업이다.

- 어떤 프로세스에 CPU를 할당할지 결정하는 작업


프로세스 스케줄링 

- 메인메모리에 상주될 프로세스를 결정하는 작업을 말한다.


멀티프로세싱

- 여러개의 프로세서가 작업을 병렬 처리하는 것 

  하나의 프로세서로 처리하는것 보다 당연 빠르다.

  또한 프로세서들은 주변장치들 저장장치, 전원장치를 공유하기 떄문에 경제적이다.



'CS(Computer Science) > 운영체제' 카테고리의 다른 글

스레드 개요  (0) 2018.10.06
프로세스 스케줄링  (0) 2018.09.24
프로세스 개요  (0) 2018.09.11
메모리관리(메모리 낭비 방지)  (0) 2018.09.06
메모리 관리(개요)  (0) 2018.09.06