운영체제의 주요 구성 기술
1. 프로세스의 관리
(1) 프로세스
CPU에 의해 수행되는 시스템 및 사용자 프로그램, 프로시저의 활동, 비동기적 행위를 일으키는 주체, 운영체제가 관리하는 실행단위
(2) 스레드(Thread)
프로세스에서 실행의 개념만 분리, 독립된 제어 흐름, 하나의 프로세스에 한 개의 스레드 또는 여러 개의 스레드가 존재, 하나의 프로세스 내에서 병행성을 증대시키기 위한 메커니즘, 경량 프로세스라고도 부른다.
(3) 프로세스 제어 블록(PCB)
운영체제가 프로세스에 대한 유용한 정보를 저장, 운영체제에게 프로세스에 대한 정보를 제공, 각 프로세스는 고유의 PCB 소유, 부모 프로세서와 자식 프로세서는 PCB(Process Control Block)를 공유하지 않는다.
(4) 프로세서 제어 블록 포함 정보
프로세서 식별자, 프로세서 상태, CPU 레지스터 및 일반 레지스터, CPU 스케줄링 정보, 메모리 관리 정보, 프로세스 계정 정보, 입출력 상태 정보 등
(5) 프로세스의 상태
보류상태 : 작업이 일시 중지되거나 디스크에 수록
준비상태 : 프로세서가 CPU를 할당받을 수 있는 상태
실행상태 : 프로세스가 CPU를 차지하여 실행 중인 상태
대기상태 : 프로세스가 CPU를 차지하고 실행하다가 입출력 처리와 같은 사건이 발생하게 되면, CPU를 양도하고 입출력 처리가 완료될 때까지 대기하는 상태
교착상태 : 프로세스가 결코 일어날 수 없는 사건의 발생을 기다리는 상태
완료상태 : 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태
(6) 프로세스의 상태 전이
- Dispatch : 준비 → 실행
- Time Run Out : 실행 → 준비
- Block : 실행 → 대기
- Wake Up : 대기 → 준비
(7) 교착상태
여러개의 프로세스들이 자원을 점유한 상태에서 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 대기하는 현상
(8) 교착상태 발생의 필요조건
상호배제, 환형대기, 점유와 대기, 비선점(비중단)
(9) 교착상태의 해결방안
- 예방 : 교착상태 필요조건을 부정함으로써 교착상태가 발생하지 않도록 하는 방법
- 회피 : 교착상태 가능성을 인정하고 적절하게 피해나가는 방법(은행원 알고리즘)
- 발견 : 점검을 통하여 교착상태에 있는 프로세스와 자원을 발견(탐지)하는 방법
- 회복 : 교착상태를 일으킨 프로세스를 종료하고 할당된 자원을 회수하여 프로세스나 자원을 회복(복구)하는 방법
(10) 프로세스 스케줄링
선점/
RR(Round Robin) : 할당된 시간만큼 CPU를 사용하는 기법
SRT(Shortest Remain Time) : 실행중인 프로세서의 남은 시간과 큐에 새로 도착한 프로세스의 실행시간을 비교하여 시간의 더 짧은 프로세스에게 CPU를 할당하는 기법
MLQ(Multi-Level Queue) : 프로세스들을 우선순위에 따라 독립된 단계별 준비 큐로 배치하는 방법
MFQ(Multi-Level Feedback Queue) : 할당시간 안에 완료하지 못한 프로세스를 다음단계의 준비상태 큐로 이동하는 기법
비선점/
FCFS(First Come First Service) : 큐에 도착한 순서대로 CPU를 할당하는 기법
FIFO(First In First Out) : 가장 먼저 들어온 것을 가장 먼저 처리
SJF(Shortest Job First) : 대기하는 프로세스 중 실행시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법
HRN(Highest Response Ratio Next) : 서비스받을 시간과 그 작업이 서비스를 기다린 시간으로 결정되는 우선순위에 따라 CPU를 할당하는 기법
'Computer > ETC' 카테고리의 다른 글
장치관리자에서 디바이스 이름 변경하기 (7) | 2018.08.08 |
---|---|
정보처리 - 데이터베이스 (0) | 2016.02.22 |
리틀엔디안(little endian)&빅엔디안(big endian) (0) | 2015.08.26 |
VS2013, 플러그인 없애고 싶은데... (0) | 2014.04.25 |
Thread(스레드) (0) | 2014.03.27 |
항목4: 객체를 사용하기 전에 반드시 그 객체를 초기화하자 (0) | 2014.03.20 |
운영체제의 개요 (0) | 2014.03.12 |
회선 (0) | 2013.05.07 |