[운영체제] 프로세스 스케줄링 - (1)

Yeongsan Son·2021년 6월 24일
0

프로세스와 스케줄링에 대해 알아보자.

운영체제에서의 프로세스는 응용프로그램이라고 가볍게 생각하자.

스케줄링은 배치 처리 시스템, 시분할 시스템, 멀티 태스킹과 같은 방식으로 응용프로그램을 시간 순서에 따라서 CPU에 배치하는 방법을 말한다.

배치 처리 시스템

배치 처리 시스템의 구조는 자료구조의 큐와 유사하다.

큐는 FIFO(First In First Out) 로직으로 동작하는데 먼저 들어온 데이터 먼저 나가는 데이터 처리 방법이다.

마찬가지로, 배치 처리 시스템에서도 프로그램1과 프로그램2를 등록했다면,

프로그램1이 실행이 종료된 후에 프로그램2가 실행되는 FIFO(선입선출) 로직으로 동작한다.

  • 배치 처리 시스템의 한계
    • 여러 프로그램을 순차적으로 실행 시킬 수 있도록 하고싶다는 Needs 발생
      • 어떤 프로그램의 실행 시간이 오래 걸려서, 다른 프로그램이 실행되는데 시간이 오래 걸린다는 단점
      • 하지만 각 응용 프로그램의 실행 시간을 정확하게 예측해 순서를 조합하기 어렵다는 한계
      • 음악을 들으면서 문서 작업(멀티 프로그램)
      • 여러 사용자가 하나의 컴퓨터 사용(다중 사용자)

시분할 시스템

  • 다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화하는 시스템
    • 배치 시스템을 시간 단위로 쪼개서 응용 프로그램을 실행

멀티태스킹

  • 단일 CPU에서 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템
    • 음악을 들으며 문서 작성
    • 음악 실행 시간 범위를 생성하고 문서 작성의 작업을 반복
  • 아주 짧은 시간 동안 프로그램 실행이 반복
    • 시간이 매우 짧기 때문에 사람이 느끼기에 어렵다
    • 그래서 프로그램이 동시에 실행되는 것처럼 느껴짐

멀티 프로세싱

  • 멀티 태스킹 : 단일 CPU
  • 멀티 프로세싱: 하나의 응용 프로그램이 여러 CPU를 사용하면서 실행 속도를 극대화 시키는 시스템(병렬처리)

이미지출처

profile
매몰되지 않는 개발자가 되자

0개의 댓글