[운영체제]다중프로그래밍 시스템(multiprogramming System)

뚱환·2023년 4월 13일
0
post-thumbnail
post-custom-banner

다중프로그래밍 시스템(multiprogramming System) 특징 -

  • 중앙처리장치가 항상 수행되도록 하여 그 이용도를 높이기 위한 방안, 주 기억 장치 내에 여러 프로그램들이 존재하도록 함

  • 운영체제는 주기억 장치 내에 있는 작업들 중 어느 하나를 선정하여 실행하기 시작

  • 실행 중 자기 테이프나 키보드 또는 어떤 입출력장치 등의 조작이 끝나는 것과 같은 event를 기다려야할 때, 비 다중프로그램 체제하에서는 중앙처리장치가 쉬게 되지만, 다중프로그래밍 체제에서는 운영체제가 다른 작업으로 switching하여 새로운 작업을 수행

  • 해당 작업이 기다리는 상태가 되면 운영체제가 중앙처리장치를 다른 작업이나 프로그램에게 전황하여 줌으로써 중앙처리장치는 쉬는 시간이 없게 됨

  • 다중프로그래밍 시스템에서는 여러 개의 작업을 준비 상태로 두고, 준비상태에 있는 여러 작업들 중 어느 한 작업을 실행할 작업으로 선정하는 데에는 별도의 기억장치 관리 기법이나 중앙처리장치 관리 기법 등이 필요

  • 이 외에도 디바이스 스케줄링,데드락 문제, 병행제어 보호 및 보호 문제등이 고려되어야함.

다중프로그래밍 시스템 예시

A라는 프로그램 실행
메인 메모리에 A라는 프로그램이 적재되어 있어야 함.
CPU가 한 줄씩 읽어다가 실행을 하는데, 프로그램을 하나만 적재해놓고 실행하다 보니 프로그램을 실행하다가 입출력이 있을 시,
IO가 끝나기를 기다리면서 CPU가 유휴 상태가 됨
👇 다른 프로그램들도 적재하자! 👇

A가 IO를 하는 동안 B는 CPU를 사용함으로써 CPU의 유휴 상태를 최소화!

종류

고정분할 다중 프로그래밍

  • 기억장치의 영역을 고정된 크기로 분할하여 사용하는 다중 프로그래밍 방식. 초기의 시스템들이
    고정분할 다중 프로그램을 사용하였기에 단편화가 많이 발생.
  • 절대번역과 적재
    절대어셈블러와 complier에 의해 번역되며 정해진 영역 내에서만 실행된다. 파티션마다 별도의 job queuue를 이용한다.
  • 재배치기능번역과 적재
    모든 파티션들에 대하여 하나의 작업큐를 사용한다. 절대번역과 적재보다 기억장치의 관리가 효율적이지만, 번역기와 로더는 보다 복잡하다.

동적분할 다중 프로그래밍

  • 고정된 경계를 제거하고 각 작업에 필요한 양만큼 할당한다. 고정분할보다 기억장치의 낭비가 적다.
    통합과 집약이 필요하다

통합과 집약은 기억장치에서 공백의 처리에 관한 용어이다. 이 처리를 하지 않으면 단편화 현상이 나타나 기억공간을 효율적으로 쓸 수 없게 된다.

profile
https://github.com/lixxce5017/Algoritm_Weekly_Baekjoon
post-custom-banner

0개의 댓글