본문 바로가기
운영체제/프로세스

프로세스 스케줄링과 문맥 교환(Process Scheduling and Context Switch)

by Dev.Andy 2023. 4. 19.

수정일 - 2023-12-27

목차

    머리말

    들어가기 전에

    이전에 배운 내용

    이전 포스팅에서는 프로세스에 대한 전체적인 내용(메모리 구조와 상태, 정의, PCB, 스레드)에 대해 알아 보았다.

    이번에 배울 내용

    이번에는 프로세스의 스케줄링과 문맥 교환에 대해 자세히 알아 보자.

    I. 프로세스 스케줄링(Process Scheduling)

    정의

    어떠한 프로세스를 CPU에 할당한 것인지 결정하는 과정

    멀티 프로그래밍과 시간 공유

    • 멀티 프로그래밍(multi-programming)의 목적은 CPU의 사용(utilization)을 최대화 하기 위해, 프로세스를 항상 실행시키는 것이다.
    • 시간 공유(time sharing)의 목적은 CPU 코어를 프로세스 사이에 전환을 자주하여, 사용자가 실행 중인 각 프로그램과의 상호 작용을 원활히 하는 것이다.

    프로세스 스케줄러(Process Scheduler)

    • 위의 두 목적을 달성하기 위해 프로세스 스케줄러는, CPU 코어에서 프로그램 실행을 위하여 이용 가능한 프로세스를 고른다.

    I/O-bound process or CPU-bound process

    • I/O-bound process는 계산보다 입출력에 더 많은 시간을 소요하는 프로세스를 가리킨다.
    • CPU-bound process는 입출력보다 계산에 더 많은 시간을 소요하는 프로세스를 가리킨다.

    스케줄링 큐(Scheduling Queues)

    자료구조 큐(Queue)를 이용하여 프로세스를 스케줄링을 진행하는데 아래와 같이 여러 종류의 큐가 있다.

    프로세스 스케줄링에 대한 이미지
    프로세스 스케줄링에 대한 이미지

    Silbershatz, Abraham, Peter B. Galvin, and Greg Gagne. Operating System Concepts. 10th ed., (New Jersery: John Wiley & Sons, 2018), 113.

    CPU 스케줄링(CPU Scheduling)과 스와핑(swapping)

    • 시스템에 에러가 발생하거나, 프로세스가 지나치게 적재되어 오버헤드가 너무 많이 발생하면 스와핑(swapping)이라는 과정을 통해 일부 프로세스를 메모리에서 디스크(외부 기억 장치)로 쫓아내 여유 공간을 만들어낸다. 이를 통해 멀티 프로그래밍의 정도(degree)를 줄일 수 있다.

    스와핑(swapping)에 의해 중단된 준비(suspended ready)와 중단된 대기(suspended waiting)이 추가된 프로세스의 상태 이미지
    스와핑에 의해 중단된(suspended) 두 상태(준비와 대기)가 추가된 이미지

    구현회, 『운영체제 개정 3판』 (서울: 한빛아카데미, 2016), 39.

     

    II. 문맥 교환(Context Switch)

    정의

    인터럽트나 시스템 호출 등에 의해 문맥 교환이 일어나면, 기존에 실행 중인 프로세스의 정보는 PCB에 저장 해두고 CPU의 제어권을 다른 프로세스에 넘겨 그 프로세스가 실행시키는 과정

    하나의 프로세스에서 다른 프로세스로 문맥 교환이 일어나는 과정
    하나의 프로세스에서 다른 프로세스로 문맥 교환이 일어나는 과정

    Silbershatz, Galvin, and Gagne. Operating System Concepts. 10th ed., 114.

    원인

    a. 인터럽트(Interrupt)

     

    b. 시스템 호출(System Call)

    문제점

    오버헤드 발생

    • 문맥 교환을 하는 과정에서는 시스템이 다른 작업을 수행할 수 없기에 오버헤드(overhead)라는 시간 비용이 발생한다.
    • 오버헤드는 메모리 속도나 레지스터 개수, 특수 명령어의 유무 등에 따라 컴퓨터 시스템마다 다르다.

    '운영체제 > 프로세스' 카테고리의 다른 글

    운영체제) 프로세스(Process)  (0) 2023.04.09

    댓글