ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 정보처리기사[실기 핵심 정리] - 프로세스
    용어 정리 2024. 4. 22. 18:37

    프로세스

    1) 프로세스의 개념

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

     

    2) 스레드(Thread)

    • 스레드의 개념
      • 프로세스 내에서 실행되는 흐름의 단위
      • 하나의 프로세스는 최소 하나 이상의 스레드를 가지며, 스레드는 "경량 프로세스"라고도 분린다.
      • 각 스레드는 독립된 스택영역윽 가지지만, 부모프로세스의 코드, 데이터, 힙 영역은 공유한다.
    • 스레드의 분류
      • 사용자 수준의 스레드
        • 사용자 정의 라이브러리를 사용하여 스레드를 관리
        • 구현 속도는 빠르지만, 구현자체가 어렵다
      • 커널 수준의 스레드
        • 운영체제 커널이 스레드를 관리
        • 구현이 상대적으로 쉽지만, 속도가 사용자 수준 스레드에 비해 느리다.

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

    프로세스 영역 설명
    코드 영역 ● 실행할 프로그램의 코드가 저장되는 영역

    함수, 제어문, 상수 등이 지정
    데이터 영역   전역 변수와 정적 변수(Static)가 할당되는 부분

    프로그램 종료시 메모리에서 소멸
    스택 영역 프로그램이 자동으로 사용하는 임시 메모리 영역

    지역 변수와 함수의 매개 변수가 저장

    함수 호출이 완료되면 해당 정보는 사라진다.

    힙 영역 프로그래머가 할당하고 해제하는 메모리 공간

    동적 할당

     

    4) 프로세스 상태 전이

    • 프로세스 상태 전이 절차
    절차 설명
    제출
    (Submit)
    사용자가 작업을 시스템에 제출한 상태
    접수
    (Hold)
    제출된 작업이 디스크 Spool 공간에 저장된 상태
    준비
    (Ready)
    프로세스가 프로세서 할당을 기다리는 상태
    실행
    (Running)
    프로세스가 프로세서를 할당받아 실행되는 상태
    대기
    (Wait)
    I/O 처리가 필요하여 실행을 중단하고 대기중인 상태
    종료
    (Exit)
    프로세스 실행이 끝나고 할당이 헤제된 상태
    • 프로세스 상태 전이 용이
    용어 설명
    Dispatch 준비 상태에서 실행 상태로 전이되는 과정
    Wake Up 대기 상태에서 준비 상태로 전이되는 과정
    Spooling 입/출력 데이터를 모아뒀다가 한번에 입/ 출력하기 위해 디스크에 저장하는 과정

     

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

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

     

    6) 문맥 교환(Context Switching)

    • 하나의 프로세스가 CPU 사용을 마치고 다른 프로세스가 CPU를 사용하도록 전환하는 과정
    • 이과정에서 현재 실행 중인 프로세스의 상태(문맥)는 프로세스 제어블록(PCB)에 저장되고, 새로운 프로세스의 상태는 PCB에서 읽어 CPU 레지스터에 적재된다.
    • 문맥교환은 멀티태스킹(멀티 프로세싱)을 가능하게 하며, 여러 프로세스가 동시에 실행되는 것처럼 보이게 한다.
    • 문맥 교환이 일어나는 시점
      • 멀티태스킹
      • 인터럽트 처리
      • 사용자 및 커널 모드 전환

    프로세스 스케줄링

    1) 스키줄링(Scheduling)의 개념

    • 메모리에 올라온 프로세스 중 어느 프로세스를 먼저 처리할지 순서를 정하는 것이다.
    • Ready Queue에 있는 프로세스를 CPU를 할당받을 프로세스를 결정하는 과정이다.

     

    2) 스케줄링의 목적

    목적 설명
    공평성 모든 프로세스가 자원을 공평하게 배정받아야 한다.
    효율성 시스템 자원을 최대한 활용하여 스케줄링을 진행해야 한다.
    안정성 중요한 프로세스가 우선적으로 처리되어야 한다.
    반응 시간 보장 프로세스의 요구에 적절한 시간안에 반응해야 한다.
    무한 연기 방지 특정 프로세스가 무한히 연기되지 않도록 해야 한다.

     

    3) 스케줄링 성능 척도

    • 프로세서 차원
      • CPU 처리량
      • 처리량
    • 프로세스 차원
      • 응답시간
      • 대기시간
      • 반환시간

     

    4) 스케줄링 기법

    • 선점형 스케줄링(Preemptive)
      • 운영체제가 실행 중인 프로세스로부터 CPU를 강제로 빼앗을 수 있는 방식
      • 오버헤드가 많이 발생할 수 있다.
      • 종류 : Round Robin, SRT, 다단계 큐(MLQ, Multi-level Queue), 다단계 피드백 큐(MFQ, Multi-level Feedback Queue)
    • 비선점형 스케줄링(Non-Preemptive)
      • 프로세스가 CPU를 점유하고 있다면 이를 빼앗을 수 없는 방식
      • 오버헤드가 적지만, 처리율이 떨어짐
      • 다음에 처리해야 할 프로세스와 관계없이 응답시간 예상 가능
      • 종류: FCFS,SJF,HRN,우선순위, 기한부 등
    • 기아현상과 에이징 기법
    종류 설명
    기아현상
    (Starvation)
    ● 시스템에 부하가 많아서 우선순위가 낮은 프로세스가 무한정 기다리는 현상

    ● SJF,우선순위,SRT,MLQ
    에이징 기법
    (Aging)
    ● 기아현상을 해결하기 위한 기법

    ●  오랫동안 기다린 프로세스에게 우선순위를 높여주는 기법

    ●  HRN,MLFQ  

    스케줄링 알고리즘

    1) 선점형 기법

    • Round Robin
      • 시간 단위를 정하여 프로세스에 순서대로 CPU를 할당하는 방식
    • SRT(Shortest Remaining Time)
      • 비선점형 스케줄링인 Shortest Job First(SJF)기법을 선점 형태로 변형한 기법
      • 남아 있는 실행 시간이 가장 짧은 프로세스에 CPU를 먼저 할당
    • 다단계 큐(MLQ, Multi-level Queue)
      • 프로세스를 특정 그룹으로 분류하고 각 그룹에 따라 다른 준비 상태 큐를 사용하는 기법
      • 특정 그룹의 준비 상태 큐에 들어간 프로세스는 다른 상태 큐로 이동할 수 없다.
      • 하위 준비 상태 큐의 프로세스가 실행 중일때 상위 준비 상태 큐에 프로세스가 들어오면
      • 상위 프로세스에게 CPU를 우선 할당한다.
      •  
    • 다단계 피드백 큐(MFQ, Multi-level Feedback Queue)
      • 프로세스가 생성되면 가장 높은 우선순위의 준비 큐에 등록되며, FCFS 순서로 CPU를 할당받아 실행된다.
      • 할당된 시간이 끝나면 다음 단계의 준비 큐로 이동한다.
      • 단계가 내려갈수록 시간 할당량이 증가하며 가장 하위 큐는 RoundRobin 방식으로 운영된다.
      • 적응기법을 적용하여, 프로세스의 동작에 따라 그 위치를 조정한다.

     

    2) 비 선점형 기법

    • FCFS(First Come First Serve)
      • 먼저 도착한 프로세스를 먼저 처리하는 스케줄링 기법
      • 공평성이 유지되지만, 실행시간이 긴 프로세스가 먼저 도착할 경우 효율성이 떨어질수 있다.
      • 최대 평균 시간
        • 작업이 오래 걸리는 작업을 우선으로 처리하여 반환시간을 계산
      • 최소 평균 시간
        • 작업이 빨리 끝나는 작업을 우선으로 처리하여 반환시간을 계산
    • SJF(Shortest Job First)
      • 실행 시간이 가장 짧은 프로세스에 CPU 할당
      • 평균 대기시간을 최소화하는 최적을 스케줄리 방법이지만, 기아현상 발생
    • HRN(Highest Response ratio Next)
      • SJF에서의 불리함을 보완한 스케줄링 방식
      • 우선순위를 계산하여 프로세스에 순서를 부여하는 기법
      • 우선순위 = (대기시간 + 실행시간)/ 실행시간
      • 실행시간이 긴 프로세스는 대기시간이 길어질수록 우선순위가 높아진다.
    • 우선순위(Priority)
      • 각 프로세스에 우선순위를 부여하고, 높은 우선순위를 가진 프로세스에게 먼저 자원을 할당하는 기법
      • 우선순위가 낮은 프로세스는 기아 상태에 빠질 위험이 있다.
    • 기한부(Deadline)
      • 프로세스에 일정한 시간을 주어 그 시간안에 작업을 완료하도록 하는 기법
      • 시간내에 작업을 완료하지 못하면 프로세스는 제거되거나 처음부터 다시 실행되어야 한다.
Designed by Tistory.