프로세스 및 스케줄링

2023. 2. 22. 19:00정처기 필기/4과목 - 프로그래밍 언어 활용

프로세스 및 스케줄링

1. 프로세스의 정의

- CPU에 의해 처리되는 사용자 프로그램, 실행중인 프로그램, 작업 (Job), 테스크(Task)

- 프로세서 -> 프로세스 -> 프로시저

- 프로시저가 활동중인 것

- 비동기적 행위를 일으키는 주체 (이유  : 다수의 프로세스가 서로 규칙적이거나 연속적이지 않고 독립적으로 실행되는 것)을 말함

- 운영체제가 관리하는 실행 단위

- PCB를 가진 프로그램

- 실기억장치에 저장된 프로그램

 

2. PCB (프로세스 제어 블록)

저장정보 설명
프로세스 고유 식별자 고유 번호
프로세스의 현재 상태 준비 / 대기/ 실행
프로그램 카운터 실행될 명령어의 주소를 가지고 있는 레지스터
CPU 레지스터 정보 누산지, 인덱스, 레지스터, 범용 레지스터 등에 대한 정보
스케줄링 및 우선순위 스케줄링 정보 및 프로세스 우선순위
계정 정보 cpu 사용 시간, 실제 사용 시간, 한정된 시간
입,출력 , 메모리장치 관리 정보 입출력 장치, 개방된 파일 목록 / 기준 레지스터, 페이지 테이블에 대한 정보
포인터 프로세스가 위치한 메모리 및 할당된 자원에 대한 포인터

 

3. 프로세스 상태 정의

 

4. 프로세스 상태 전이 관련 용어

디스패치 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정
* 준비 --> 실행
wake up 프로세스가 대기상태에서 준비 상태로 전이되는 과정
스풀링(Spooling) 나중에 한 꺼번에 입,출력하기 위해 디스크에 저장하는 과정

 

5. Thread (스레드)

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

- 프로세스의 일부 특성을 가지고 있어 경량 프로세스라고도 함.

- 동일 프로세스 환경에서 서로 독립적인 다중 수행 가능

- 하나의 프로세스가 여러 스레드를 생성해 성능 향상, 응답 시간 단축, 기억장소 낭비 감소, 통신 향상

 

6. 스케줄링 (Scheduling)

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

 

종류 설명
장기 스케줄링
(작업 스케줄링)
(상위 스케줄링)
어떤 프로세스에게 시스템 자원을 할당할 것인지 결정해서 준비상태로 보내는 작업
(작업 스케줄러에 의해 수행)
중기 스케줄링 어떤 프로세스들이 CPU를 할당받을 것인지 결정하는 작업
단기 스케줄링
(프로세서 스케줄링)
(하위 스케줄링)
프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업
(프로세스 스케줄링 및 문맥 교환은 프로세서 스케줄러에 의해 수행)

* 문맥교환 : 하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생하는 것

 

7. 스케줄링의 목적

- 공정성

- 처리량 증가 (단위 시간당 프로세스 처리량 증가)

- CPU 이용 효율 증가

- 우선순위 제도

- 오버헤드 최소화

- 응답시간 최소화

- 반환 시간 최소화

- 대기 시간 최소화

- 자원 균형성

- 무한 연기 회피

 

8. 프로세스 스케줄링의 기법

* 선점 (Preemptive) 스케줄링

  : 우선순위가 높은 다른 프로세스가 실행중인 다른 프로세스의 CPU를 빼앗아 선점하는 기법

  : 대화식 시분할 시스템에 사용

  : 많은 오버헤드 발생

  : 일정 시간 배당에 대한 인터럽트용 타이버 클록 필요

# Round Robin, SRT, MLQ, MFQ

 

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

  : 이미 할당된 CPU는 빼앗지 못하는 기법

  : 완료될때까지 대기

  : 공정성

  : 응답 시간 예측 용이

  : 일괄 처리 방식에 적합

  : 우선순위가 높은 작업이 우선순위가 낮은 작업을 기다려야 하는 문제 발생 --> 가뭄 현상

# 우선순위, 기한부, FCFS, SJF, HRN

 

* HRN

: SJF 기법의 가뭄 현상을 보완하기 위한 방식으로, 오래 대기하는 프로세스의 우선순위를 증가시키는 방법으로
 긴 작업과 짧은 작업 간의 불평등을 해소한다
  ----> HRN 우선순위 계산식 : (대기시간 + 서비스시간) / 서비스시간