[정보처리기사실기] 프로세스 / 스케줄링 / 선점형 / 비 선점형

    반응형

    3과목. 운영체제

    📒 04. 프로세스


    1. 프로세스

    (1) 프로세스의 개념

    • 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
    • 실행 가능한 프로세스 제어 블록(Process Control Block, PCB)을 가진 프로그램
    • 운영체제가 관리하는 실행 단위로, 프로세서가 할당되는 실체
    • 현재 실행 중인 프로그램(활동 중인 프로시저)

    (2) 스레드의 개념

      • 프로세스 내에서 실행되는 흐름의 단위
      • 하나의 프로세스는 최소 하나 이상의 스레드를 가지며, 스레드는 '경량 프로세스'라고도 불림
      • 각 스레드는 독립된 스택 영역을 가지지만 부모 프로세스의 코드, 데이터, 힙 영역은 공유

    (3) 메모리 상의 프로세스 영역

    • a) 코드 영역
      - 실행할 프로그램의 코드가 저장되는 영역
      - 함수, 제어문, 상수 등 저장
    • b) 데이터 영역
      - 전역 변수와 정적 변수가 할당되는 부분
      - 프로그램 종료 시 메모리에서 소멸
    • c) 스택 영역
      - 프로그램이 자동으로 사용하는 임시 메모리 영역
      - 지역 변수, 함수의 매개변수 저장
      - 함수 호출이 완료되면 해당 정보는 사라짐
    • d) 힙 영역
      - 프로그래머가 할당하고 해제하는 메모리 공간
      - 동적으로 할당된 변수

    (4) 프로세스 상태 전이 ⭐

     

     준비(Ready) : 프로세스가 프로세서 할당을 기다리는 상태

     실행(Running) : 프로세스가 프로세서를 할당받아 실행되는 상태

     대기(Wait) : I/O 처리가 필요하여 실행을 중단하고 대기 중인 상태

    종료(Exit) : 프로세스 실행이 끝난 상태

    ⑴ Dispatch : 준비 상태에서 실행 상태로 전이되는 과정

    ⑵ Wake Up : 대기 상태에서 준비 상태로 전이되는 과정

    ⑶ Timer Runout : 실행 상태에서 준비 상태로 전이되는 과정

    ⑷ Spooling : 입/출력 데이터를 모아뒀다가 한꺼번에 입/출력하기 위해 디스크에 저장하는 과정

    (5) PCB(Process Control Block, 프로세스 제어 블록)

    • 운영체제가 프로세스의 정보를 관리하기 위해 저장하는 공간
    • 각 프로세스가 생성될 때마다 고유한 PCB가 생성되며, 프로세스 종료 시 해당 PCB는 제거됨

    (6) 문맥 교환(Context Switching)

    • 하나의 프로세스가 CPU 사용을 마치고 다른 프로세스가 CPU를 사용하도록 전환하는 과정
    • PCB가 있기 때문에 가능하고, PCB를 통해 문맥 교환이 이루어짐
    • 현재 실행 중인 프로세스의 상태(문맥)는 PCB에 저장되고, 새로운 프로세스의 상태는 PCB에서 읽어 CPU 레지스터에 적재됨
    • 멀티태스킹을 가능하게 하며, 여러 프로세스가 동시에 실행되는 것처럼 보이게 함

     

    2. 프로세스 스케줄링

    (1) 프로세스 스케줄링의 개념

    • 메모리에 올라온 프로세스들 중 어느 프로세스를 먼저 처리할지 순서를 정하는 것

    (2) 스케줄링의 목적

    • 공평성 : 모든 프로세스가 자원을 공평하게 배정
    • 효율성 : 자원을 최대한 활용
    • 안정성 : 중요한 프로세스가 우선적으로 처리
    • 반응 시간 보장 : 적절한 시간 안에 반응
    • 무한 연기 방지(기아 현상) : 특정 프로세스가 무한히 연기되지 않도록 해야 함

    (3) 선점형 스케줄링 ⭐

    • a) 의미
      - 운영체제가 실행 중인 프로세스로부터 CPU를 강제로 빼앗을 수 있는 방식
      - 오버헤드(일처리)가 많이 발생할 수 있음
    • b) 종류
      - Round Robin, SRT, 다단계 큐, 다단계 피드백 큐 등

    (4) 비선점형 스케줄링 ⭐

    • a) 의미
      - 프로세스가 CPU를 점유하고 있다면 이를 빼앗을 수 없는 방식
      - 오버헤드가 적지만, 처리율이 떨어질 수 있음
      - 응답시간을 예상할 수 있음
    • b) 종류
      - FCFS, SJF, HRN, 우선순위, 기한부 등

    (5) 기아 현상과 에이징 기법

    • a) 기아 현상(Starvation)
      - 시스템에 부하가 많아서 우선순위가 낮은 프로세스가 무한적 기다리는 현상
      - 프로세스가 프로세서 할당받지 못해서 무한히 기다리는 현상
      - SJF, 우선순위, SRT, MLQ
    • b) 에이징 기법(Aging)
      - 기아 현상을 해결하기 위한 기법
      - 오랫동안 기다린 프로세스에게 우선순위를 높여주는 방법
      - HRN, MLFQ

     

    3. 선점형 기법

    (1) Round Robin

    • 시간 단위(Time Quantum or Time Slice)를 정하여 프로세스에 순서대로 CPU를 할당하는 방식
    • 컴퓨터 자원을 사용할 기회를 프로세스들에게 공정하게 부여하기 위한 방법

    (2) SRT(Shortest Remaining Time)

    • a) 개념
      - 비선점형 스케줄링인 SJF 기법을 선점 형태로 변형한 기법
      - 남아있는 실행 시간이 가장 짧은 프로세스에 CPU를 먼저 할당
    • b) 프로세스 처리 예시
      P1(2s) → P2(2s) → P3(1s) → P2(2s) → P4(4s) → P1(6s)
      프로세스 도착 시간 실행 시간 반환 시간 평균 반환 시간
      P1 0 8 17 - 0 = 17 (17+5+1+5) / 4 = 7
      P2 2 4 7 - 2 = 5
      P3 4 1 5 - 4 = 1
      P4 6 4 11 - 6 = 5

    (3) 다단계 큐(MLQ, Multi-Level Queue)

    • 프로세스를 특정 그룹으로 분류하고, 각 그룹에 따라 다른 준비 상태 큐를 사용하는 기법
    • 하위 준비 상태 큐의 프로세스가 실행 중일 때, 상위 준비 상태 큐에 프로세스가 들어오면 상위 프로세스 우선 할당

    (4) 다단계 피드백 큐(MLFQ, Multi-Level Feedback Queue)

    • 가장 높은 우선순위의 준비 큐에 등록되고, FCFS 순서로 CPU를 할당받아 실행
    • 할당된 시간이 끝나면 다음 단계의 준비 큐로 이동
    • 단계가 내려갈수록 시간 할당량이 증가하고, 가장 하위 큐는 Round Robin 방식으로 운영
    • 적응 기법(Adaptive Mechanism)을 적용하여, 프로세스의 동작에 따라 그 위치를 조정

     

    4. 비 선점형 기법

    (1) FCFS(First Come First Serve)

    • a) 개념
      - 먼저 도착한 프로세스를 먼저 처리하는 스케줄링 기법
      - 실행 시간이 긴 프로세스가 먼저 도착할 경우 효율성이 떨어질 수 있음
    • b) 평균 반환시간 예시
      - 최대 평균 시간 : 작업이 오래 걸리는 작업을 우선으로 처리하여 반환 시간을 계산
      - 최소 평균 시간 : 작업이 빨리 끝나는 작업을 우선으로 처리하여 반환 시간을 계산
      프로세스 실행 시간
      P1 9
      P2 3
      P3 12
        최대 평균 시간 최소 평균 시간
      프로세스(시간) 반환 시간 프로세스(시간) 반환 시간
      1번 P3(12) 12 P2(3) 3
      2번 P1(9) 21 P1(9) 12
      3번 P2(3) 24 P3(12) 24
      평균 반환 시간 (12+21+24) / 3 = 19 (3+12+24) / 3 = 13

    (2) SJF(Shortest Job First)

    • a) 개념
      - 실행 시간이 가장 짧은 프로세스에게 CPU를 할당하는 기법
      - 평균 대기시간을 최소화하는 최적의 방법이지만, 기아 현상이 발생할 수 있음
    • b) 프로세스 처리 예시
      프로세스 실행 시간 수행 순서 대기 시간 반환 시간
      P1 6 2 3 9
      P2 3 1 0 3
      P3 8 4 16 24
      P4 7 3 9 16
      평균     (3+0+16+9) / 4 = 7 (9+3+22+16) / 4 = 13

    (3) HRN(Highest Response ratio Next)

    • SJF에서의 불리함을 보완하여 프로세스에 순서를 부여하는 스케줄링 방식
    • 우선순위를 계산하여 값이 높은 것을 먼저 처리
    • 우선순위 = (대기 시간 + 실행 시간) / 실행 시간
    • 실행 시간이 길 프로세스는 대기 시간이 길어질수록 우선순위가 높아짐

    (4) 우선순위(Priority)

    • 각 프로세스에 우선순위를 부여하고, 높은 우선순위를 가진 프로세스에게 먼저 자원을 할당하는 기법
    • 우선순위가 낮은 프로세스는 기아 상태에 빠질 위험이 있음

    (5) 기한부(Deadline)

    • 프로세스에게 일정한 시간을 주어 그 시간 안에 작업을 완료하도록 하는 기법
    • 시간 내에 작업을 완료하지 못하면 프로세스는 제거되거나 처음부터 다시 실행해야 함

     

    참고자료

    흥달쌤,  '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
     

    1억뷰 N잡

    [1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스

    www.njobler.net

    반응형

    댓글