스케줄링 (배치 처리, 시분할 시스템, 멀티 태스킹, 멀티 프로그래밍)

jaemin·2021년 5월 7일
1

운영체제

목록 보기
3/3
post-thumbnail

스케줄링

배치 처리 시스템 (batch processing)

배치 처리 시스템은 여러 프로그램을 순차적으로 실행합니다. 그러다 보니, 어떤 프로그램은 실행 시간이 많이 걸려서 다른 프로그램을 실행하는데 많은 시간을 기다려야 합니다.

만약, 음악을 들으면서 문서 작성을 하고 싶다면 어떻게 할까?
또, 여러 사용자가 동시에 하나의 컴퓨터를 쓰려면 어떻게 해야 할까?

이를 위해 멀티 프로그래밍, 시분할 시스템이 나왔습니다.

배치 처리 시스템이란?

  • 일괄 처리, 배치 처리라고 부름
  • 컴퓨터 프로그램 실행 요청 순서에 따라 순차적으로 프로그램을 실행하는 방식
  • 한 번에 등록된 여러 프로그램을 순차적으로 실행 가능

시분할 시스템

시분할 시스템은 다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화하는 시스템입니다. 시분할 시스템을 사용하면 여러 사용자가 하나의 컴퓨터를 사용하는 것이 가능해집니다.

멀티 태스킹

멀티 태스킹은 단일 CPU에서, 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템입니다.
앞서 말한 배치 처리 시스템이 할 수 없었던 음악을 들으면서 문서를 작업할 수 있습니다.

멀티 태스킹을 들어봤다면, 멀티 프로세싱도 들어봤을 겁니다.
그렇다면, 이 둘의 차이점은 뭘까요?

멀티 태스킹을 단일 CPU를 사용하고, 멀티 프로세싱은 여러 CPU에 하나의 프로그램을 병렬로 실행해서 실행속도를 극대화시키는 시스템입니다.

멀티 프로그래밍

멀티 프로그래밍이란, 최대한 CPU를 많이 활용하도록 하는 시스템입니다. 이게 무슨 말인지 예를 들어 설명해보겠습니다.

위의 코드를 보면, 라이브러리를 가져오는 코드와 변수 선언 부분까지는 CPU를 사용하고 있습니다. 그런데, open() 함수를 만나면서 시스템 콜을 호출하게 되고, 파일 열기를 실행합니다. 이때는 저장 매체에 접근하기 때문에 CPU를 사용하지 않고 있습니다.

멀티 프로그래밍은 이 때 다른 응용 프로그램을 실행해서 CPU 활용도를 높여줍니다.

📋정리

실제로는 시분할 시스템, 멀티 프로그래밍, 멀티 태스킹이 유사한 의미로 통용됩니다.

⭐️핵심⭐️

  • 여러 응용 프로그램의 실행을 가능하게 함
  • 응용 프로그램이 동시에 실행되는 것처럼 보이도록 함
  • CPU를 쉬지 않고 응용 프로그램을 실행하게 해서, 짧은 시간 안에 응용 프로그램이 완료할 수 있도록 함
  • 컴퓨터 응답 시간도 짧게 해서 다중 사용자도 지원
  • 시분할 시스템 : 다중 사용자 지원, 컴퓨터 응답 시간을 최소화하는 시스템
  • 멀티 태스킹 : 단일 CPU에서 여러 응용 프로그램을 동시에 실행하는 것처럼 보이게 하는 시스템
  • 멀티 프로세싱 : 여러 CPU에서 하나의 응용 프로그램을 병렬로 실행하게 해서 실행 속도를 높이는 기법
  • 멀티 프로그래밍 : 최대한 CPU를 일정 시간당 많이 활용하는 시스템

Reference

이 글은 패스트 캠퍼스 컴퓨터 공학 전공자 따라잡기 수업을 듣고 정리했습니다.

profile
프론트엔드 개발자가 되기 위해 공부 중입니다.

0개의 댓글