반응형
3과목. 운영체제
📒 04. 프로세스
1. 프로세스
(1) 프로세스의 개념
- 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
- 실행 가능한 프로세스 제어 블록(Process Control Block, PCB)을 가진 프로그램
- 운영체제가 관리하는 실행 단위로, 프로세서가 할당되는 실체
- 현재 실행 중인 프로그램(활동 중인 프로시저)
(2) 스레드의 개념
- 프로세스 내에서 실행되는 흐름의 단위
- 하나의 프로세스는 최소 하나 이상의 스레드를 가지며, 스레드는 '경량 프로세스'라고도 불림
- 각 스레드는 독립된 스택 영역을 가지지만 부모 프로세스의 코드, 데이터, 힙 영역은 공유
(3) 메모리 상의 프로세스 영역
- a) 코드 영역
- 실행할 프로그램의 코드가 저장되는 영역
- 함수, 제어문, 상수 등 저장 - b) 데이터 영역
- 전역 변수와 정적 변수가 할당되는 부분
- 프로그램 종료 시 메모리에서 소멸 - c) 스택 영역
- 프로그램이 자동으로 사용하는 임시 메모리 영역
- 지역 변수, 함수의 매개변수 저장
- 함수 호출이 완료되면 해당 정보는 사라짐 - d) 힙 영역
- 프로그래머가 할당하고 해제하는 메모리 공간
- 동적으로 할당된 변수
(4) 프로세스 상태 전이 ⭐
➊ 준비(Ready) : 프로세스가 프로세서 할당을 기다리는 상태
➋ 실행(Running) : 프로세스가 프로세서를 할당받아 실행되는 상태
➌ 대기(Wait) : I/O 처리가 필요하여 실행을 중단하고 대기 중인 상태
➍ 종료(Exit) : 프로세스 실행이 끝난 상태
⑴ Dispatch : 준비 상태에서 실행 상태로 전이되는 과정
⑵ Wake Up : 대기 상태에서 준비 상태로 전이되는 과정
⑶ Timer Runout : 실행 상태에서 준비 상태로 전이되는 과정
⑷ Spooling : 입/출력 데이터를 모아뒀다가 한꺼번에 입/출력하기 위해 디스크에 저장하는 과정
(5) PCB(Process Control Block, 프로세스 제어 블록)
- 운영체제가 프로세스의 정보를 관리하기 위해 저장하는 공간
- 각 프로세스가 생성될 때마다 고유한 PCB가 생성되며, 프로세스 종료 시 해당 PCB는 제거됨
(6) 문맥 교환(Context Switching)
- 하나의 프로세스가 CPU 사용을 마치고 다른 프로세스가 CPU를 사용하도록 전환하는 과정
- PCB가 있기 때문에 가능하고, PCB를 통해 문맥 교환이 이루어짐
- 현재 실행 중인 프로세스의 상태(문맥)는 PCB에 저장되고, 새로운 프로세스의 상태는 PCB에서 읽어 CPU 레지스터에 적재됨
- 멀티태스킹을 가능하게 하며, 여러 프로세스가 동시에 실행되는 것처럼 보이게 함
2. 프로세스 스케줄링
(1) 프로세스 스케줄링의 개념
- 메모리에 올라온 프로세스들 중 어느 프로세스를 먼저 처리할지 순서를 정하는 것
(2) 스케줄링의 목적
- 공평성 : 모든 프로세스가 자원을 공평하게 배정
- 효율성 : 자원을 최대한 활용
- 안정성 : 중요한 프로세스가 우선적으로 처리
- 반응 시간 보장 : 적절한 시간 안에 반응
- 무한 연기 방지(기아 현상) : 특정 프로세스가 무한히 연기되지 않도록 해야 함
(3) 선점형 스케줄링 ⭐
- a) 의미
- 운영체제가 실행 중인 프로세스로부터 CPU를 강제로 빼앗을 수 있는 방식
- 오버헤드(일처리)가 많이 발생할 수 있음 - b) 종류
- Round Robin, SRT, 다단계 큐, 다단계 피드백 큐 등
(4) 비선점형 스케줄링 ⭐
- a) 의미
- 프로세스가 CPU를 점유하고 있다면 이를 빼앗을 수 없는 방식
- 오버헤드가 적지만, 처리율이 떨어질 수 있음
- 응답시간을 예상할 수 있음 - b) 종류
- FCFS, SJF, HRN, 우선순위, 기한부 등
(5) 기아 현상과 에이징 기법
- a) 기아 현상(Starvation)
- 시스템에 부하가 많아서 우선순위가 낮은 프로세스가 무한적 기다리는 현상
- 프로세스가 프로세서 할당받지 못해서 무한히 기다리는 현상
- SJF, 우선순위, SRT, MLQ - b) 에이징 기법(Aging)
- 기아 현상을 해결하기 위한 기법
- 오랫동안 기다린 프로세스에게 우선순위를 높여주는 방법
- HRN, MLFQ
3. 선점형 기법
(1) Round Robin
- 시간 단위(Time Quantum or Time Slice)를 정하여 프로세스에 순서대로 CPU를 할당하는 방식
- 컴퓨터 자원을 사용할 기회를 프로세스들에게 공정하게 부여하기 위한 방법
(2) SRT(Shortest Remaining Time)
- a) 개념
- 비선점형 스케줄링인 SJF 기법을 선점 형태로 변형한 기법
- 남아있는 실행 시간이 가장 짧은 프로세스에 CPU를 먼저 할당 - b) 프로세스 처리 예시
P1(2s) → P2(2s) → P3(1s) → P2(2s) → P4(4s) → P1(6s)
프로세스 도착 시간 실행 시간 반환 시간 평균 반환 시간 P1 0 8 17 - 0 = 17 (17+5+1+5) / 4 = 7 P2 2 4 7 - 2 = 5 P3 4 1 5 - 4 = 1 P4 6 4 11 - 6 = 5
(3) 다단계 큐(MLQ, Multi-Level Queue)
- 프로세스를 특정 그룹으로 분류하고, 각 그룹에 따라 다른 준비 상태 큐를 사용하는 기법
- 하위 준비 상태 큐의 프로세스가 실행 중일 때, 상위 준비 상태 큐에 프로세스가 들어오면 상위 프로세스 우선 할당
(4) 다단계 피드백 큐(MLFQ, Multi-Level Feedback Queue)
- 가장 높은 우선순위의 준비 큐에 등록되고, FCFS 순서로 CPU를 할당받아 실행
- 할당된 시간이 끝나면 다음 단계의 준비 큐로 이동
- 단계가 내려갈수록 시간 할당량이 증가하고, 가장 하위 큐는 Round Robin 방식으로 운영
- 적응 기법(Adaptive Mechanism)을 적용하여, 프로세스의 동작에 따라 그 위치를 조정
4. 비 선점형 기법
(1) FCFS(First Come First Serve)
- a) 개념
- 먼저 도착한 프로세스를 먼저 처리하는 스케줄링 기법
- 실행 시간이 긴 프로세스가 먼저 도착할 경우 효율성이 떨어질 수 있음 - b) 평균 반환시간 예시
- 최대 평균 시간 : 작업이 오래 걸리는 작업을 우선으로 처리하여 반환 시간을 계산
- 최소 평균 시간 : 작업이 빨리 끝나는 작업을 우선으로 처리하여 반환 시간을 계산
프로세스 실행 시간 P1 9 P2 3 P3 12 최대 평균 시간 최소 평균 시간 프로세스(시간) 반환 시간 프로세스(시간) 반환 시간 1번 P3(12) 12 P2(3) 3 2번 P1(9) 21 P1(9) 12 3번 P2(3) 24 P3(12) 24 평균 반환 시간 (12+21+24) / 3 = 19 (3+12+24) / 3 = 13
(2) SJF(Shortest Job First)
- a) 개념
- 실행 시간이 가장 짧은 프로세스에게 CPU를 할당하는 기법
- 평균 대기시간을 최소화하는 최적의 방법이지만, 기아 현상이 발생할 수 있음 - b) 프로세스 처리 예시
프로세스 실행 시간 수행 순서 대기 시간 반환 시간 P1 6 2 3 9 P2 3 1 0 3 P3 8 4 16 24 P4 7 3 9 16 평균 (3+0+16+9) / 4 = 7 (9+3+22+16) / 4 = 13
(3) HRN(Highest Response ratio Next)
- SJF에서의 불리함을 보완하여 프로세스에 순서를 부여하는 스케줄링 방식
- 우선순위를 계산하여 값이 높은 것을 먼저 처리
- 우선순위 = (대기 시간 + 실행 시간) / 실행 시간
- 실행 시간이 길 프로세스는 대기 시간이 길어질수록 우선순위가 높아짐
(4) 우선순위(Priority)
- 각 프로세스에 우선순위를 부여하고, 높은 우선순위를 가진 프로세스에게 먼저 자원을 할당하는 기법
- 우선순위가 낮은 프로세스는 기아 상태에 빠질 위험이 있음
(5) 기한부(Deadline)
- 프로세스에게 일정한 시간을 주어 그 시간 안에 작업을 완료하도록 하는 기법
- 시간 내에 작업을 완료하지 못하면 프로세스는 제거되거나 처음부터 다시 실행해야 함
참고자료
흥달쌤, '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
1억뷰 N잡
[1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스
www.njobler.net
반응형
댓글