Certificate/정보처리기사

정보처리기사[4과목] | 프로세스

구름솜:D 2023. 12. 20. 10:37
728x90

프로세스(Process)란?

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

- 실행중인 프로그램을 의미

 프로시저) 활동 중인 프로그램

 프로세서) 할당되는 실체

1) 준비상태(Ready)

2) 실행상태(Running)

3) 대기상태(Block)

준비상태 → 실행상태: 디스패치(Dispatch)

실행상태 → 대기상태: Block

대기상태 → 준비상태: Wake up

 

 

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

- 운영체제가 프로세스의 중요한 정보를 저장하는 공간

- 각 프로세스는 각자 고유의 PCB를 가짐( 프로세스 생성시 PCB 생성, 종료시 PCB 제거)

- PCB에 저장되어 있는 정보

1) 프로세스의 현재 상태

2) 프로세스의 우선 순위

3) CPU 레지스터

4) 할당된 자원

5) 프로레스 고유 식별자(PID)

6) 입출력 상태 정보

7) 각 종 포인터 등

 

 

 

프로세스스케줄링

프로세스스케줄링의 목적

1) 모든 작업들에 대한 공정성 유지

2) 단위 시간당 처리량을 최대화

3) 응답시간, 반환시간, 대기시간 및 오버헤드 최소화

 

[비선점형(Non-premptive) 스케줄링]

- CPU를 다른 프로세스가 빼앗을 수 없음

- 공정한 처리 가능, 일괄 처리 시스템에 적합

1) FCFS(First Come First Service)

- 큐에 도착한 순서대로 CPU할당

2) SJF(Shortest Job First)

- 실행시간이 가장 짧은 프로세스 순으로 CPU할당

- 평균 대기 시간 최소화

3) HRN(Highest Response-ratio Next)

- 서비스 받을 시간과 기다린 시간으로 우선순위를 결정

- (대기시간+서비스시간)/서비스시간

4) 데드라인(Deadline)

- 작업이 주어진 특별한 시간이나 만료 시간 내에 완료

5) 우선순위(Priority)

- 대기중인 프로세스 중 우선순위가 가장 높은 프로세스에 먼저 CPU할당

- 에이징기법(Aging): 자원을 기다리고 있는 시간에 비례하여 우선순위를 부여함으로써 무기한 기다림을 방지

[선점형 스케줄링]

1) SRT(Shortest Remaining Time)

- 실행중인 프로세스의 남은 시간과 새로 도착한 준비상태에 있는 프로세스의 실행시간을 비교하여 더 짧은 CPU에게 할당

2) RR(Round Robin)

- 주어진 시간(Time Slice) 안에 작업을 마치지 않으면 준비리스트(Ready List)의 가장 뒤로 배치

- 시간할당량(Time Slice)이 너무커지면 FCFS, 작아지면 오버헤드 증가

3) 다단계 큐 (Multi-level Queue)

- 프로세스를 우선순위에 따라 시스템 프로세스, 대화형 프로세스, 일괄처리 프로세스(상위, 중위, 하위)로 배치

4) 다단계 피드백 큐 (Multi-level Feedback Queue)

- 시간 내에 완료 못한 프로세스는 준비상태 큐로 이동

 

 

스레드(Thread)

- 제어의 흐름을 의미

- 프로세스에서 실행의 개념만 분리한 것

- "경량프로세스" : 프로세스의 일부 특성을 갖고 있음

- 프로세스의 구성중 실행 환경부분을 담당

  * 프로세스의 구성: 1) 제어의 흐름  2) 실행환경부분 → 스레드

- 실행의 기본 단위

- 다중스레드로 프로세스의 생성이나 문맥교환등의 오버헤드를 줄임 (운영체제의 성능 개선)

 

 

병행프로세스

- 두개 이상의 프로세스들이 동시에 실행

1) 독립적 병행 프로세스

 : 여러 프로세스들이 독립적으로 실행

2) 병행 프로세스

 : 여러 프로세스들이 협력하며 동시에 실행

- 다중처리 시스템/ 분산처리 시스템에 사용

- 임계구역(Critical Section)

 : 다중프로그래밍 OS에서 여러개의 프로세스가 공유하는 자원이나 데이터 중에서 어느 한 시점에서는 하나의 프로세스만 사용할 수 있는 공유자원

- 동기화 기법(Synchronization)

 : 두 개 이상의 프로세스를 한 시점에 동시에 처리할 수 없어 프로세스의 처리 순서를 결정하는 것(상호배제의 한 형태)

1) 세마포어(Semaphore)

 : 다익스트라(Dijkstra)가 제안한 상호배제 알고리즘

 : 각 프로세스가 임계구역에 대해 각각의 프로세스들이 접근하기 위해 사용되는 연산을 통해 프로세스 사이의 동기를 유지하고 상호배제 원리를 보장함

2) 모니터(Monitor)

 : 특정 공유 자원이나 한 그룹의 공유자원을 할당하는데 필요한 데이터 및 프로시저를 포함하는 병행성 구조

 : 한 순간에 한 프로세스만 모니터에 진입가능

 

 

 

교착상태(Deadlock)

-  상호배제에 의해 발생하는 문제

 : 서로 다른 프로세스가 점유된 자원을 요구하여 무한정 기다리는 현상

 

 

교착상태 발생조건

1) 상호배제(Mutual Exclusion)

- 한번에 한 개의 프로세스만 공유자원 사용

2) 점유 및 대기(Hold and Wait)

- 이미 자원을 가진 프로세스가 다른 자원의 할당 요구

3) 비선점(Non-preemption)

- 프로세스에 할당된 자원을 강제로 뻬앗을 수 없음

4) 환형대기(Circular wait)

- 이미 자원을 가진 프로세스가 앞이나 뒤의 자원을 요구

 

 

교착상태 해결방법

1) 예방(Prevention)

- 교착상태 발생 조건 중 하나도 발생하지 않는 것

2) 회피(Avoidance)

- 교착상태 발생 가능 성 인정 후, 은행원알고리즘으로 회피

3) 발견(Detection)

- 검사를 통해 교착 상태의 프로세스와 자원 발견

4) 회복(Recovery)

- 교착상태의 프로세스 종료 또는 다른 프로세스에게 점유된 자원을 할당