Back to the Basics

[Computer Science][제로베이스 ]-운영체제 - 프로세스 스케줄링 - 배치 처리 시스템,시분할 시스템, 멀티 태스킹 , 멀티 프로그래밍 본문

Computer Science

[Computer Science][제로베이스 ]-운영체제 - 프로세스 스케줄링 - 배치 처리 시스템,시분할 시스템, 멀티 태스킹 , 멀티 프로그래밍

9Jaeng 2021. 10. 27. 23:28
728x90

제로베이스 컴퓨터 공학자 따라잡기 온라인 완주반 강의를 듣고 정리한 포스팅입니다.

<강의 요약 배치 처리 시스템 , 시분할 시스템, 멀티 태스킹>

  • 배치 처리 시스템 (일괄 처리 , Batch Processing)
    • Queue 자료구조와 비슷한 FIFO방식으로 프로그램을 실행하는 방식. 실행 요청 순서에 따라 순차적으로 프로그램을 실행한다.
    • 단점
      • 동시에 여러 프로그램을 실행하지 못한다
      • 다중 사용자 지원이 불가능하다.
      • 응답시간이 높아진다.

이를 보완하기 위해 멀티 시분할 시스템과 멀티프로그래밍이 등장했다.

  • 시분할 시스템 : **다중 사용자 지원, 응답시간 최소화
  • time slice

출처

위의 사진과 같이 여러 프로그램이컴퓨터 자원을 짧은 시간 단위로 사용하는 것을 말한다.

  • 멀티 태스킹 (Multi Tasking) : 동시에 실행하는 것처럼 보이도록 함

multi tasking

출처

단일 CPU에서, 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템을 말한다.

CPU가 빠르게 프로그램을 바꿔가면 실행하기 때문에 User가 보기에 마치 동시에 실행되는 것처럼 보인다.

멀티 Tacking과 같이 나오는 용어로 멀치 프로세싱이 있다.

  • 멀티 프로세싱(Mult Processing) : 여러 CPU에서 하나의 프로그램 병렬 실행

multi processing vs multi tasking

출처

멀티 프로세싱은 여러 CPU에서 하나의 프로그램을 병렬로 실행해서 실행 속도를 극대화 하는 시스템을 말한다.

단일 CPU에서 여러 시스템을 빠르게 바꿔가며 실행하는 멀티 태스킹과는 다르다.

<강의 요약 멀티 프로그래밍>

  • 멀티프로그래밍 : CPU를 일정 시간당 최대한 많이 사용하는 시스템

멀티프로그래밍의 목적은 CPU의 활용도를 높여서 짧은 시간 안에 프로그램의 실행을 완료시킬 수 있게 하는 것이다.

응용프로그램은 CPU를 온전히 다 쓰지 않고, 중간에 다른 작업을 하는 경우가 있다. (예를 들면 중간에 파일을 불러와야 해서 저장매체에 접근을 한다던가 하는 등의 작업) 이런 경우 파일을 읽어 들이기까지 CPU는 실행을 하고 있지 않으므로, 이 시간 동안 다른 프로그램을 실행시키는 방식이다.

(강의에서 제공한 코드)

#include <unistd.h>
#include <systypes.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
    int fd;     // 여기까지 CPU가 실행
    fd=open('data.txt'.O_RDOMLY); // 저장매체에서 받아와야함
    if(fd==-1)  // fd가 결과값을 받기 전까지 시간이 남기 때문에 다른 응요 프로그램으로 바꾼다.
    {

        printf("Error : can not open file\n")
        /* 파일을 열지 목했으므로 그냥 종료한다*/
    }
    else
    {
        printf("File opened and now close_\n");
        close(fd);
        return();
    }
}

위의 응용 P의 코드에서 fd=open('data.txt'. O_RDOMLY); 를 만나면 이 응용 P는 fd에 결과가 올 때까지 queue와 같은 곳에 저장을 해놓고 blocking 상태가 된다. 그동안 다른 응용 P가 실행이 된다. 파일을 다 읽고 fd로 결과를 받으면 다시 바꿔 실행한다.

정리

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

이 세 가지 시스템의 핵심은 다음과 같다.

  • 여러 응용 프로그램 실행을 가능하게 한다
  • 응용 프로그램이 동시에 실행되는 것처럼 보인다.
  • CPU의 활용도를 높여서 짧은 시간 안에 응용프로그램이 실행을 완료할 수 있다.
  • 응답 시간을 줄이고 다중 사용자도 지원한다.
728x90
Comments