TIL/Computer Science

(운영체제) 멀티 프로그래밍

parksisi 2022. 6. 5. 14:21

멀티 프로그래밍

  • 목적: 최대한 CPU를 많이 활용하도록 하는 시스템
    • 시간대비 CPU 활용도를 높이자
    • 응용 프로그램을 짧은 시간안에 실행 완료 시킬수있음
  • 시간대비 CPU 활용도? 응용프로그램은 온전히 CPU를 쓰기 보다 다른 작업을 중간에 필요로 하는 경우가 많다. 이 경우 CPU를 그냥 놀리지 말고 최대한 활용하자는게 멀티 프로그래밍
    • 응용프로그램이 실행되다가 파일을 읽는다
    • 응용프로그램이 실행되다가 프린팅을 한다
APP1 APP2 APP2 APP1 APP2 APP1
  APP1 저장매체에서 파일 읽음      
  • 위와 같이 APP1이 실행되다가 file open 함수를 만나 저장매체에서 파일을 읽어오는 시간동안 CPU는 다른 프로세스를 처리하게 한다(좀 더 나가자면, APP1은 저때 blocking 상태가 된다)

용어 정리

  • 실제로는 시분할 시스템, 멀티 프로그래밍, 멀티 태스킹이 유사한 의미로 통용된다.
    • 여러 응용프로그램 실행을 가능하도록 함
    • 응용 프로그램이 동시에 실행되는 것처럼 보이도록 함
    • CPU를 쉬지 않고 실행토록해서 CPU 활용도 높임
  • 시분할 시스템 : 다중 사용자 지원, 컴퓨터 응답 시간 최소화
  • 멀티 태스킹 : 단일 CPU에서 여러 응용프로그램을 동시에 실행하는 것처럼 보이게 하는 시스템
  • 멀티 프로세싱 : 여러 CPU에서 하나의 응용 프로그램을 병렬로 실행하게 해서 실행속도를 높이는 기법
  • 멀티 프로그래밍 : 최대한 CPU를 일정 시간 당 많이 활용하는 시스템

 

패스트캠퍼스의 '컴퓨터공학 올인원 패키지' 강의를 듣고 작성한 글입니다