상세 컨텐츠

본문 제목

[정보처리기사 실기 공부] 운영체제의 프로세스

정보처리기사 공부지식

by 소란한소란 2024. 7. 10. 21:00

본문

728x90

운영체제의 프로세스와 스레드 개요

운영체제(OS)는 컴퓨터 시스템의 자원을 관리하고, 소프트웨어와 하드웨어 간의 인터페이스를 제공합니다. 이 글에서는 운영체제의 중요한 개념 중 하나인 프로세스와 스레드에 대해 자세히 알아보겠습니다.


 

프로세스

 

프로세스는 컴퓨터에서 실행 중인 프로그램을 의미합니다. 이는 단순한 코드 그 이상의 개념으로, 실행에 필요한 다양한 리소스(메모리, 파일 핸들 등)를 포함합니다. 운영체제는 여러 프로세스를 동시에 관리하고 실행하는데, 이는 다중작업을 가능하게 합니다.

 

스레드(Thread)

 

스레드는 프로세스 내에서 실행되는 독립적인 흐름의 단위입니다. 하나의 프로세스는 여러 스레드를 가질 수 있으며, 이들은 프로세스의 자원을 공유합니다. 예를 들어, 웹 브라우저는 각 탭을 스레드로 관리할 수 있습니다.

스레드의 분류
  • 사용자 수준의 스레드
    • 사용자가 만든 라이브러리를 사용하여 스레드를 운용한다.
  • 커널 수준의 스레드
    • 운영체제의 커널에 의해 스레드를 운용한다.

 

 

메모리상의 프로세스 영역
프로세스 영역 설명
코드 영역 실행할 프로그램의 코드가 저장되는 영역
데이터 영역 전역변수와 정적변수가 할당되는 부분
스택 영역 지역변수와 함수의 매개변수가 저장되는 영역으로
함수 호출이 완료되면 사라짐
힙 영역 프로그래머가 할당 / 해제하는 메모리 공간

 

프로세스 상태 전이

프로세스 상태 전이도

프로세스 상태 전이 절차
  • 제출(Submit)
  • 접수(Hold)
  • 준비(Ready)
  • 실행(Running)
  • 대기(Wait)
  • 종료(Exit)

 

프로세스 상태 전이 용어
용어 설명
Dispatch 준비상태에서 실행상태로 전이되는 과정
Wake Up 대시상태에서 준비상태로 전이되는 과정
Spooling 입출력 데이터를 직접 입출력 장치에 보내지 않고,
모아뒀다가 한꺼번에 입출력하기 위해
디스크에 저장해놓는 과정

 

 

PCB (Process Control Block, 프로세스 제어 블록)
  • 개념
    • 운영체제가 프로세스에 대한 정보를 저장해 놓는 공간

 

PCB에 저장되는 정보
  • 프로세스의 현재 상태
  • 포인터(부모 프로세스, 자식 프로세스 등)
  • 프로세스 고유 식별자
  • 스케줄링,프로세스 우선순위
  • CPU 레지스터 정보
  • 주기억장치 관리 정보
  • I/O 상태정보
  • 계정정보(CPU 사용 시간, 실제 사용시간, 한정된 시간)

 

문맥 교환 (Context Switching)
  • 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해
    이전의 프로세스의 상태를 PCB에 보관하고 또 다른 프로세스의 정보를 PCB에서 읽어 레지스터에 적재하는 과정

 

프로세스 스케줄링 (Process Scheduling)
  • 개념
    • 메모리에 올라온 프로세스들 중 어떤 프로세스를 먼저 처리할지 순서를 정하는 것

 

스케줄링 성능척도
  • 프로세서 차원
    • CPU 사용률
    • Throughput (처리량)
  • 프로세스 차원
    • 응답시간(Response Time)
    • 반환시간(Turn-around Time)
    • 대기시간(Waiting Time)

 

스케줄링 기법 (★)
  • 선점형 스케줄링 (Preemptive)
    • 다른 프로세스가 실행 중이더라도 운영체제가 CPU를 강제로 뺏을 수 있는 방식 
      • 종류
        • Round Robin
        • SRT
        • 다단계 큐(MLQ, Multi-Level Queue)
        • 다단계 피드백 큐(MLFQ, Multi-Level Feedback Queue)
  •   Round Robin
    • 시간단위(Time Quantum/Sice)를 정해서 프로세스를 순서대로 CPU를 할당하는 방식
  • SRT (Shortest Remaining Time)
    • 비선점 스케줄링인 SJF 기법을 선점 형태로 변경한 기법
    • CPU 점유 시간이 가장 짧은 프로세스에 CPU를 먼저 할당하는 방식
    • SRT 스케줄링의 프로세스 처리
프로세스 도착 실행 시간 반환 시간 평균 반환 시간
P1 0 8 17 - 0 = 17 28 / 4 = 7
P2 2 4 7 - 2 = 5
P3 4 1 5 - 4 = 1
P4 6 4 11 - 6 = 5

 

  • 다단계 큐 (MLQ, Multi-Level Queue)
    • 프로세스를 특정 그룹으로 분류할 수 있을 경우 그룹에 따라 각기 다른 준비 상태 큐를 사용하는 기법

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

  • 다단계 피드백 큐(MLFQ, Multi-Level Feedback Queue)
    • 프로세스 생성 시 가장 높은 우선순위 준비 큐에 등록되며 등록된 프로세스는 FCFS 순서로 CPU를 할당받아 실행되고, 할당된 시간이 끝나면 다음 단계의 준비큐로 이동

 

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

 

  • 비선점형 스케줄링 (Non-Preemptive)
    • 프로세스가 CPU를 점유하고 있다면 이를 빼앗을 수 없는 방식
      • 종류
        • FCFS
        • SJF
        • HRN
        • 우선순위
        • 기한부
  • FCFS (First Come First Serve)
    • 먼저 도착한 프로세스를 먼저 처리하는 스케줄링 알고리즘
    • FCFS의 평균 반환 시간 예제
프로세스 실행시간
P1 9
P2 3
P3 12

 

  최대 평균 시간 (반환시간) 최소 평균 시간 (반환시간)
1번 수행 P3 (12) P2 (3)
2번 수행 P1 (21) P1 (12)
3번 수행 P2 (24) P3 (24)
평균 반환 시간 57 / 3 = 19 39 / 3 =13

 

  • FCFS의 평균 반환 시간 예제
    • 최대 평균 시간
      • 작업이 오래 걸리는 작업을 우선으로 처리하여 반환시간을 계산
    • 최소 평균 시간
      • 작업이 빨리 끝나는 작업을 우선으로 처리하여 반환시간을 계산
  • SJF (Shortest Job First)
    • 실행시간이 가장 짧은 프로세스에게 CPU를 할당하는 방식
    • SJF의 반환 시간 예제
프로세스 실행시간 수행순서  대기시간 반환시간
P1 6 2 3 9
P2 3 1 0 3
P3 8 4 16 24
P4 7 3 9 16
평균     7 13

 

  • HRN (Highest Response ratio Next)
    • SJF 기법에서 비교적 실행시간이 긴 프로세스가 가질 수 있는 불리함을 보완한 스케줄링 방식
    • 우선순위 = (대기시간 + 실행시간) / 실행시간
    • HRN 우선순위 예제
프로세스 대기시간 실행시간 우선순위
P1 5 20 4
P2 40 20 1
P3 15 45 3
P4 20 20 2

 

  • 우선순위(Priority)
    • 프로세스마다 우선순위를 부여하여 높은 우선순위를 가진 프로세스에게 먼저 자원을 할당
  • 기한부(Deadline)
    • 프로세스에게 일정한 시간을 주어 그 시간 안에 완료하도록 하는 기법
기아현상과 에이징 기법
종류 설명
기아현상 (Starvation) 시스템에 부하가 많아서 우선순위가 낮은 프로세스가
무한정 기다리는 현상
ex) SJF, 우선순위, SRT, MLQ
에이징 기법 (Aging) 오랫동안 기다린 프로세스에게 우선순위를 높여주는 기법
ex) HRN, MLFQ

 


운영체제의 프로세스와 스레드는 시스템의 효율적인 자원 관리와 다중작업을 가능하게 하는 중요한 개념입니다. 이 글을 통해 이러한 개념들을 이해하고, 실제 운영체제의 동작을 더 깊이 이해하는 데 도움이 되길 바랍니다.
2024년에 정보처리기사 따기 위해 노력하는 모두에게 행운을 빕니다!

 

 

728x90

관련글 더보기