본문 바로가기
개발공부 개발새발/OS

OS ) 멀티 프로그래밍과 멀티 태스킹

by 휴일이 2024. 12. 22.

멀티 프로그래밍과 멀티 태스킹

운영체제는 하나의 프로그램만 사용하면 CPU 가 남으니까 여러 프로그램을 함께 실행할 수 있음.

멀티 프로그래밍

한 번에 둘 이상의 프로그래밍

  • 멀티 프로그래밍에서 실행 중인 프로그램을 프로세스 라고 한다.
  • 멀티 프로그래밍에서는 운영체제는 단순히 다른 프로세스로 전환하여 실행 한다.
    • 해당 프로세스가 대기해야 되는 경우 CPU는 다른 프로세스로 전환한다.
    • CPU 유휴 상태를 방지 가능하다.

멀티 태스킹

다중 프로그래밍의 논리적 확장.

  • CPU 는 여러 프로세스를 전환하며 프로세스를 실행하고 전환이 자주 발생하여 사용자에게 빠른 응답 시간을 제공한다.
  • 대화식 입출력(키보드 입력을 할 때 모니터에 출력되는 것 등)을 예를 들면
    • 대화식 입력이 진행되는 동안 CPU 를 쉬게 하지 않고 다른 사용자 프로그램으로 신속하게 전환.

멀티 태스킹을 유지하려면

  1. 메모리 관리 방식이 필요 → 동시에 여러 프로세스 메모리를 유지하려면?
  2. CPU 스케쥴링 필요 → 이번 실행 다음에는 어떤 프로세스를 선택해야 하는가?
  3. 운영체제에서 서로 영향을 미치는 기능이 제한되어야 함. → 메모리 관리, 디스크 저장 장치 접근 제한 등.
  4. 가상 메모리 사용.
  5. 파일 시스템 제공.
    • 저장 장치 관리 가능해야 함.
  6. 부적절한 사용으로부터 자원을 보호해야 함.
    • 프로세스 동기화 및 통신 기법 제공
  7. 교착 상태에 빠지지 않도록 보장해야 함.

가상 메모리

멀티 태스킹에서 적절한 응답 시간을 보장하는 일반적인 방법.

  • 프로세스를 실행할 때 메모리의 일부만 적재하여 실행하는 기법.
  • 프로그램이 물리 메모리의 크기보다 더 커도 실행 가능.
  • 논리 메모리와 물리 메모리를 분리 시킴.
728x90

'개발공부 개발새발 > OS' 카테고리의 다른 글

OS ) 스레드의 컨텍스트 스위칭  (0) 2024.12.24
OS ) 이중 모드, 다중 모드, 타이머  (0) 2024.12.22
OS ) 운영체제의 작동  (0) 2024.12.19
OS ) 클러스터형 시스템  (0) 2024.12.19
OS ) 입출력 구조  (1) 2024.12.19