본문 바로가기
  • Always Awake
정보처리기사/4과목

[정보처리기사 필기] 프로세스, 스케줄링

by NerdyBoy 2022. 2. 23.

프로세스(Process)


1. 정의

일반적으로 프로세서(처리기, CPU)에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램을 의미하며, 작업(Job), 태스크(Task)라고도 한다.

 

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

운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳으로, Control Block 또는 Job Control Block이라고도 한다.

저장정보는 다음과 같다.

  • 프로세스의 현재 상태
  • 포인터
  • 프로세스 고유 식별자
  • 스케줄링 및 프로세스의 우선순위
  • CPU 레지스터 정보
  • 주기억장치 관리 정보
  • 입/출력 상태 정보
  • 계정 정보

 

3. 프로세스 상태 전이

프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미하며, 프로세스의 상태를 다음과 같이 상태 전이도로 표시할 수 있다.

프로세스 상태 전이도[1]

상태 전이 관련 용어

  • Dispatch : 준비상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정
  • Wake Up : 입/출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정
  • Spooling : 입/출력 장치의 공유 및 상대적으로 느린 입/출력 장치의 처리속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상 시키기 위해 입출력 데이터를 한꺼번에 디스크에 저장하는 작업
  • 교통량 제어기(Traffic Controller) : 프로세스의 상태 조사와 통보

 

4. 스레드

프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위

  • 프로세스 일부 특성을 갖고 있어 경량(Light Weight) 프로세스라고도 한다.

분류

사용자 수준의 스레드 사용자가 만든 라이브러리를 사용하여 스레드를 운용한다.
속도는 빠르지만 구현이 어렵다.
커널 수준의 스레드 운영체제의 커널에 의해 스레드 운용
구현 쉽지만 속도 느리다.

 

장점

  • 변행성 증진시킬 수 있다.
  • 하드웨어, 운영체제의 성능과 처리율을 향상시킬 수 있다.
  • 응답 시간을 단축시킬 수 있다.
  • 실행환경을 공유시켜 기억장소의 낭비가 줄어든다.
  • 프로세스들 간 통신이 향상된다.

 

 

 

스케줄링(Scheduling)


1. 개요

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

  • 장기 스케줄링 : 어떤 프로세스가 시스템 자원을 차지할 수 있도록 할 것인가를 결정하여 준비상태 큐로 보내는 작업을 의미. 작업 스케줄러에 의해 수행
  • 중기 스케줄링 : 어떤 프로세스들이 CPU를 할당받을 것인지 결정하는 작업
  • 단기 스케줄링 : CPU할당 받는 시기와 특정 프로세스 지정하는 작업 의미

 

2. 기법

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

  • 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
  • 프로세스 응답시간 예측이 용이하며, 일괄 처리 방식에 적합
  • FCFS, SJF, 우선순위, HRN, 기한부 등

선점(Preemptive) 스케줄링

  • 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 강제로 빼앗을 수 있는 기법
  • 주로 빠른응답을 요구하는 대화식 시분할 시스템에 사용
  • 많은 오버헤드 초래
  • 선점 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록이 필요하다
  • Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등

타이머 클록(Clock) : 하나의 시스템 내에서 동작하는 장치들을 감시하기 위해 주기적인 신호를 발생하는 것. 프로세스 독점 방지

 

 

3. 주요 알고리즘

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

준비상태 큐(대기 큐, 준비 완료 리스트, 작업준비 큐, 스케줄링 큐)에 도착한 순서에 따라 차례로 CPU를 할당하는 기법

 

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

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

가장 적은 평균 대기 시간 제공하는 최적 알고리즘

 

SJF[2]

 

HRN(Hightest Response-ratio Next)

실행 시간이 긴 프로세스에 불리한 SJF기법을 보완하기 위한 것으로, 대기 시간과 서비스(실행) 시간을 이용하는 기법

우선순위 계산식 = (대기 시간 + 서비스 시간) / 서비스 시간
프로세스 번호 P1 P2 P3
실행 시간 20 4 6
대기 시간 10 20 10
우선순위 계산 (20 + 10) / 20 = 1.5 (4 + 20) / 4 = 6 (6 + 10) / 6 = 2.6
우선순위 P2 - P3 -P1

 


 

출처

자료 참고: 

시나공 정보처리기사 필기 2022를 참고하여 작성되었습니다

표지

[1] https://velog.io/@mainxcharacter/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%9D%98-%EA%B0%9C%EC%9A%94

[2]https://xyom.github.io/2018/01/01/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%A6%E1%84%8C%E1%85%AE%E1%86%AF%E1%84%85%E1%85%B5%E1%86%BC/

댓글