프로세스 스케줄링

패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다.


프로세스 = 응용 프로그램

스케줄링 = 시간 순서에 따라 CPU에 배치하는 방법


배치 처리 시스템

  • 일괄 처리, 배치 처리, batch processing이라고 부른다
  • 컴퓨터 프로그램 실행 요청 순서에 따라 순차적으로 프로그램을 실행하는 방식
  • 한번에 등록된 여러 프로그램을 순차적으로 실행 가능
  • 자료구조의 queue와 비슷
    • FIFO : First In First Out(먼저 들어온 데이터가 먼저 나간다)

문제점

  • 동시성의 문제
    • 두 개 이상의 프로그램을 동시에 실행할수가 없다
      • 첫번째 애플리케이션의 동작시간이 오래걸리면 두번째 애플리케이션은 실행시간의 길이와 상관없이 무조건 기다려야 한다

이러한 문제들로 인해 멀티 프로그래밍 / 시분할 시스템 이 등장


시분할 시스템

  • 다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화하는 시스템
  • 동일한 시간축으로 봤을때 여러 애플리케이션을 돌아가면서 실행

멀티 태스킹

  • 단일 CPU에서 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템
    • 음악 들으면서 문서 작성하기 등등
    • 애플리케이션 간 전환할때 걸리는 시간이 인간이 인지할수 없는 수준의 빠르기이기 때문에 동시에 실행되는 것 처럼 느낀다

멀티 태스킹과 멀티 프로세싱

실질적으로는 많이 혼용해서 사용하기 때문에

시분할과 멀티 태스킹 정도만 알아두면 되지만 처음이기 때문에

개념 차이 정도는 알아두는것이 좋다.

결론적으로 CPU 갯수 차이 라고 보면 된다.

  • 멀티 태스킹은 단일 CPU
  • 멀티 프로세싱은 여러 CPU
    • 하나의 프로그램을 병렬로 실행해서 실행속도를 극대화시키는 시스템

정리

  • 시분할 시스템 : 다중 사용자 지원, 응답시간 최소화 시스템
  • 멀티 태스킹 : 동시 실행하는 것 처럼 보이도록 하는 시스템
  • 멀티 프로세싱 : 여러 CPU에 하나의 프로그램을 병렬로 실행시키는 시스템

Reference

패스트캠퍼스 - 올인원 패키지: 컴퓨터 공학 13강

Comments