프로세스(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)
- 교착상태의 프로세스 종료 또는 다른 프로세스에게 점유된 자원을 할당
'Certificate > 정보처리기사' 카테고리의 다른 글
정보처리기사[1과목] | 소프트웨어 개발 방법론 (0) | 2023.12.20 |
---|---|
정보처리기사[5과목] | 프로토콜 (0) | 2023.12.20 |
정보처리기사[5과목] | 네트워크 (0) | 2023.12.20 |
정보처리기사[4과목] | 기억장치 (0) | 2023.12.20 |
정보처리기사[4과목] | 운영체제 (1) | 2023.12.20 |