[11. 응용 SW 기초 기술 활용] 프로세스, 스케줄링

soojung·2023년 9월 30일
0

정보처리기사 실기

목록 보기
6/14
post-thumbnail

💡 프로세스 개요

프로세스 (Process) = 실행중인 프로그램

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

운영체제가 프로세스에 대한 중요 정보를 저장해 놓는 곳

  • 각 프로세스 생성 => 고유 PCB 생성 / 프로세스 완료 => PCB 제거됨
  • 저장되는 정보
    • 프로세스 현재 상태 / 포인터 / 프로세스 고유 식별자 / CPU 레지스터 정보 /
      주기억장치 정보 / I/O 장치 정보 / 계정 정보

프로세스 상태 전이

프로세스가 시스템 내 존재하는 동안 프로세스의 상태가 변하는 것

  • 제출 : 작업 처리 위해 사용자가 작업을 시스템에 제출
  • 접수 : 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장
  • ⭐ 준비 : 프로세스가 프로세서를 할당받기 위해 기다림
  • ⭐ 실행 : 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행됨
  • ⭐ 대기 : 프로세스에 입출력 처리가 필요하면 현재 실행중인 프로세스가 중단되고, 처리 완료될 때까지 대기
  • 종료 : 프로세스 실행 끝나고 프로세스 할당이 해제

Dispatch (준비->실행) / Wake up (대기 -> 준비) / Spooling (접수 <-> 디스크)
교통량 제어기 : 프로세스 상태에 대한 조사 및 통보 담당

스레드 (Thread)

시스템의 여러 자원을 할당받아 실행하는 프로그램 단위 또는 프로세스 내 작업 단위
하나의 프로세스에 존재하는 스레드 수에 따라 => 단일 스레드 or 다중 스레드
프로세스의 일부 특성을 가지므로, "경량 프로세스"라 불림
스레드 기반 시스템에서 스레드는, 독립적인 스케줄링의 최소 단위로서 프로세스 역할 담당함

💡 스케줄링

프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업

  • 종류
    • 장기 스케줄링 - 어떤 프로세스가 시스템 자원을 차지하도록 할 것인가
    • 중기 스케줄링 - 어떤 프로세스들이 CPU를 할당받을 것인가
    • 단기 스케줄링 - 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스 지정
  • 목적
    • 공정성 / 처리율 ↑ / CPU 이용률 ↑ / 우선순위 제도 / 무한 연기 회피 /
      오버헤드 ↓ / 응답시간 ↓ / 반환시간 ↓ / 대기시간 ↓ / 균형 있는 자원 사용

비선점 (Non-Preemptive) 스케줄링

이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
ex) FCFS, SFJ, 우선순위, HRN, 기한부 등

  • 프로세스가 CPU 할당받으면, 해당 프로세스가 완료될 때까지 CPU 사용
  • 프로세스 응답 시간 예측 용이
  • 일괄 처리 방식에 적합

선점 (Preemptive) 스케줄링

하나의 프로세스가 CPU를 할당받아 실행하고 있을 때,
우선 순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
ex) RR, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등

  • 우선순위 높은 프로세스를 빠르게 처리 가능
  • 빠른 응답 시간 요구하는 대화식 시분할 시스템에 사용
  • 많은 오버헤드 초래

💡 스케줄링 알고리즘

1) FCFS (First Come First Service, 선입선출) = FIFO

준비상태 큐에 도착한 순서에 따라 차례대로 CPU 할당

2) SJF (Shortest Job First, 단기 작업 우선)

준비상태 큐에서 기다리고 있는 프로세스 중 실행 시간이 가장 짧은 것을 먼저 CPU 할당

3) HRN (Highest Response-ratio Next)

대기 시간과 실행 시간 이용하여 우선순위 계산 / SJF 기법 보완
우선순위 = (대기시간 + 실행시간) / 실행시간

4) RR (Round Robin)

각 프로세스를 시간 할당량 동안만 실행 후, 덜 실행했으면 다음 프로세스에게 CPU 넘김

  • 시분할 시스템 위해 고안된 방식
  • 할당된 시간 작을 수록, 작은 프로세스에게 유리
  • 할당된 시간 클 경우 FCFS, 작을 경우 문맥 교환 및 오버헤드 자주 발생되어 신속 처리 X

5) SRT (Shortest Remaining Time)

현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간 비교하여
가장 짧은 실행 시간을 요구하는 프로세스에게 CPU 할당

  • 시분할 시스템에 유용
  • 준비상태 큐의 프로세스 실행 시간을 추적 및 보유해야하므로 오버헤드 증가
profile
( 발을 힘차게 뻗으며 😎 )

0개의 댓글