본문 바로가기

Study/Computer Science

[운영체제] 프로세스 스케쥴링 (Process Scheduling)

 

  • 스케쥴링 방법: 배치 처리 시스템, 시분할 시스템, 멀티 태스킹
  • 프로세스를 운영 프로그램이라 생각하고 이해하면 좋음

 

1.  배치 처리 시스템

  • 자료구조의 큐(Queue) 방식과 유사함 [ 선입선출: FIFO, First In First Out ]

2. 배치 처리 시스템과 시분할 시스템/멀티 프로그래밍

  • 왜 배치 처리 시스템이 안 쓰이고, 새로운 기술이 나왔을까?

    특정 프로그램의 실행 시간이 너무 오래 걸려, 다른 프로그램을 실행하는데 대기 시간이 길다는 단점이 있었음
    이로 '여러 프로그램을 순차적으로 실행시킬 수 있게 해주세요!' 라는 요구사항이 발생하며 새로운 기술이 등장한 것임

  • 예시를 들자면

    MP3를 들으며 문서 작성을 하고 싶어요!   -->   동시에 여러 프로그램 실행
    여러 사용자가 동시에 하나의 컴퓨터를 쓰고 싶어요!  -->  다중 사용 지원 

    이로 시분할 시스템과 멀티 프로그래밍이 등장한 것임

3. 시분할 시스템

  • 다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화하는 시스템

4. 멀티 태스킹

  • 단일 CPU에서 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템
  • 즉, task를 OS의 스케쥴링에 의해 task를 번갈아가며 수행하는 것을 의미함

 

5.  멀티 프로그래밍

  • 프로세서가 입출력 작업의 종료를 대기할 동안 하나의 프로세서에서 다른 프로그램을 수행할 수 있도록 하는 것
  • 조금 더 쉽게 이야기하자면, 시간대비 CPU 활용도를 높이는 것임

 

6. 멀티 프로세싱

  • 다수의 프로세서가 서로 협력적으로 일을 처리하는 것으로, 컴퓨터는 1대인데 프로세서는 2개 이상인 멀티 코어 시스템을 포함함
  • 좀 더 쉽게 이야기하자면, 여러 CPU에 하나의 프로그램을 병렬로 실행해 실행 속도를 극대화하는 시스템