정보처리기사

[정보처리기사 요약 11-3] FCFS부터 SRT, RR 알고리즘까지 핵심 요약

Hong's_Computer 2026. 3. 3. 14:20
반응형
본문에 오류가 있을 수 있음을 감안하고 봐주시길 바랍니다.
# 문제 풀이 중 오답노트 하면서 나온 내용을 정리한 것

 

스레드(Thread): 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위 또는 프로세스 내에서의 작업 단위로 사용한다. 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고도 한다. 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할을 담당한다.

  • 단일 스레드: 하나의 프로세스에 하나의 스레드가 존재하는 경우
  • 다중 스레드: 하나 이상의 스레드가 존재하는 경우
  • 사용자 수준 스레드: 다수의 사용자 수준 스레드가 커널 수준 스레드 한 개에 다대일(n:1)의 형태로 매핑, 독립적인 스케줄링이 가능, 오버헤드가 감소하고 라이브러리를 통해 스케줄링을 제어할 수 있어 유연한 스케줄링이 가능하다.
  • 커널 수준 스레드: 스레드들의 독립적인 스케줄링 및 병행 수행이 가능하다. 한 프로세스가 운영체제 호출시 전체 프로세스가 대기할 필요가 없으므로 시스템 성능을 높일 수 있다. 전체 프로세스와 스레드 정보를 유지하여 오버헤드가 커진다. 동시에 여러 스레드가 커널에 접근할 수 있어 시스템 호출을 동시에 사용할 수 있다.

 

프로세스(Process): PCB를 가진 프로그램, 실기억장치에 저장된 프로그램, 프로세서가 할당되는 실체로서 디스패치가 가능한 단위, 프로시저(Procedure, 특정 기능을 수행하는 일종의 트랜잭션 언어로 호출을 통해 실행되어 미리 저장해 놓은 SQL 작업을 수행한다.)가 활동 중인 것으로 비동기적 행위를 일으키는 주체, 지정된 결과를 얻기 위한 일련의 계통적 동작, 목적 또는 결과에 따라 발생되는 사건들의 과정, 운영체제가 관리하는 실행 단위, 입력된 데이터를 처리 방법과 조건에 따라 처리

  • PCB(프로세스 제어 블록): 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 곳이다. 각 프로세스가 생성될때마다 고유의 PCB가 생성되고 프로세스가 완료되면 PCB는 제거된다.(PCB에 저장되어 있는 정보: 프로세스의 현재 상태, 포인터, 프로세스 고유 식별자, 스케줄링 및 프로세스의 우선순위, CPU 레지스터 정보, 주기억장치 관련 정보, 입·출력 상태 정보, 계정 정보 등)
  • 프로세스 상태 전이: 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미한다.

상태 내용
제출(Submit) 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
접수(Hold) 제출된 작업이 스풀(Spooling) 공간의 디스크의 할당 위치에 저장된 상태
준비(Ready) 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
실행(Run) 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
대기(Wait), 블록(Block) 프로세스에 입·출력 처리가 필요하면 현재 실행 중인 프로세스가 중단되고 입·출력 처리가 완료될 때까지 대기하고 있는 상태
종료(Terminated, Exit) 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태
  • 프로세스 상태 전이 용어
용어 내용
Dispatch 준비상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정
Wake Up 입·출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정
Spooling 입·출력장치의 공유 및 상대적으로 느린 입·출력장치의 처리 속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입·출력할 데이터를 직접 입·출력장치에 보내지 않고 나중에 한꺼번에 입·출력하기 위해 디스크에 저장하는 과정
교통량 제어기(Traffic Controller) 프로세스의 상태에 대한 조사와 통보 담당

 

 

프로세서(Processor) = 요리사(사람), 명령을 처리하는 기계 (CPU)

프로세스(Process) = 요리 중인 레시피(작업), 실행 중인 프로그램 (작업)

 

 

FEP(Front-End Processor, 전처리기): 메인 프로세서의 부하를 줄이기 위해 데이터가 본 시스템에 도달하기 전 사전에 입출력 및 통신 제어 처리를 수행하는 하드웨어 또는 소프트웨어

GPL(General Public License): 자유 소프트웨어 재단(FSF)에서 제정한 오픈소스 라이선스로 소프트웨어의 자유로운 사용·수정·배포를 보장하되 파생 저작물에도 반드시 동일한 라이선스를 적용해야 하는 것이 특징

Duplexing(이중화): 시스템 장애로 인한 서비스 중단에 대비하여 동일한 기능을 수행하는 예비 시스템을 병렬로 구성해 시스템의 가용성(Availability)을 높이는 기술

 

 

스케줄링(Scheduling): 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업을 의미한다.

  • 스케줄링의 종류
    • 장기 스케줄링: 어떤 프로세스가 시스템의 자원을 차지할 것인가를 결정하여 준비상태 큐로 보내는 작업
    • 중기 스케줄링: 어떤 프로세스들이 CPU를 할당받을 것인지를 결정하는 작업
    • 단기 스케줄링: 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업
  • 스케줄링의 목적: 공정성, 처리율 증가, CPU 이용률 증가, 우선순위 제도, 오버헤드 최소화, 응답 시간 최소화, 반환 시간 최소화, 대기 시간 최소화, 균형 있는 자원의 사용, 무한 연기 회피
  • 비선점(Non-Preemptive) 스케줄링: 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법이다. 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용한다. 프로세스 응답 시간의 예측이 용이하고 일괄 처리 방식에 적합하다.(종류: FCFS, SJF, 우선순위, HRN, 기한부 등)
  • 선점(Preemptive) 스케줄링: 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법이다. 우선순위가 높은 프로세스를 빠르게 처리할 수 있고 주로 빠른 응답을 요구하는 대화식 시분할 시스템에 사용된다. 많은 오버헤드를 초래한다.(종류: Round Robin, SRT, 선점 우선순위, 다단계큐, 다단계 피드백 큐 등)
    • MLFQ(다단계 피드백 큐): 특정 그룹의 준비상태 큐에 들어간 프로세스가 다른 준비상태 큐로 이동할 수 없는 다단계 큐 기법을 준비상태 큐 사이를 이동할 수 있도록 개선한 기법, 작업의 우선순위에 따라 여러 개의 큐를 두고 CPU 사용 시간에 따라 프로세스가 큐 사이를 이동하는 방식

SSTF(Shortest Seek Time First): 현재 헤드 위치에서 탐색 거리(Seek Time)가 가장 짧은(가까운) 트랙의 요청을 먼저 처리하는 기법이다. (안쪽/바깥쪽 방향 무관)

 

FCFS(First Come First Served, 선입 선출=FIFO): 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법이다. 가장 간단한 알고리즘이다.

FCFS(First Come First Served)

SJF(단기 작업 우선): 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법이다. 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘이다.

SJF(단기 작업 우선)

HRN(Highest Response-ratio Next): 대기 시간과 서비스(실행) 시간을 이용하는 기법이다. 실행 시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 것으로 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위가 부여된다.

  • 우선순위 계산식 = (대기 시간 + 서비스 시간) / 서비스 시간

HRN(Highest Response-ratio Next)

RR(Round Robin): 각 프로세스를 실행 할당량 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주는 기법이다. 시분할 시스템을 위해 고안된 방식으로 할당되는 시간의 크기가 작으면 작은 프로세스들에게 유리하다. 할당되는 시간이 클 경우 FCFS 기법과 같아지고 할당되는 시간이 적을 경우 문맥 교환 및 오버헤드가 자주 발생되어 요청된 작업을 신속히 처리할 수 없다.

  • 문맥 교환(Context Switching): CPU가 현재 실행 중인 프로세스의 상태(PCB)를 저장하고 다음에 실행할 프로세스의 상태를 복원하는 작업

RR(Round Robin)

SRT(Shortest Remaining Time): 현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하는 기법이다. 시분할 시스템에 유용하며 준비상태 큐에 있는 각 프로세스의 실행 시간을 추적하여 보유하고 있어야 하므로 오버헤드가 증가한다.

  • 대기 시간 = 완료 시간 - 도착 시간 - 실행 시간

SRT(Shortest Remaining Time)

반응형