Tutorials/컴퓨터 이론
운영체제] 프로세스 개요
Nightly Luna
2013. 6. 11. 15:19
프로세스 개요
wikipedia : 프로세스정의( Definition )
실행중인 프로그램(실행중인 작업)프로세스는 운영체제에서 프로그램을 실행하는 최소의 단위이다
프로세스는 시스템의 여러 자원사용을 요청하고 할당 받게 된다
상태( state )
생성
(New)
(New)
->
준비
(Ready)
(Ready)
Dispatch ->
<- Timer Runout
<- Timer Runout
실행
(Run)
(Run)
<-
Wake Up
Wake Up
대기
(Wait)
(Wait)
<-
Block
Block
->
종료
(Exit)
(Exit)
상태 설명
생성(New) : 프로세스가 생성되어 실행전 상태
준비(Ready) : 프로세스가 실행을 위해 CPU의 할당을 기다림
실행(Run) : 프로세스가 CPU의 할당을 받아서 실행중인 상태
- Dispatch : Ready 상태에서 Run 상태로 바뀌는 과정
- Timer Runout : Run 상태에서 CPU 사용시간이 만료되어 Ready 상태로 바뀌는 과정
대기(Wait) : 프로세스가 CPU를 할당 받아서 실행되고나서 실행이 끝나면 바뀌어 멈춰있는 상태
- Wake up : 대기상태에서 다음 프로그램의 실행을 위하여 준비상태로 바뀌는 과정
종료(Exit) : 프로세스 실행이 완전히 끝나서 CPU 할당이 해제된 상태
CPU : Central Process Unit
프로세스 제어 블록( PCB : Process Control Block )
참조 링크 : Wikipedia - 프로세스 제어 블록PCB : 프로세스가 실행될때 프로세스정보를 저장해두는 자료 구조
정의 : 프로세스관리에 필요한 정보를 저장(운영체제의 자료구조), (부모,자식)프로세스간 서로 PCB 정보는 공유되지 않음
PCB 저장 정보(프로세스에 대한)
- 현재 상태
- 고유 식별자
- 우선순위
- 카운터(시간)
- 할당된 주기억장치의 주소
- 할당된 자원 정보
교착상태( Deadlock )
의미 : 다중 프로그래밍 환경에서 발생되지 않은 이벤트를 무한히 기다리는 상태프로그램 메인 루프
개체에 대한 요청(오류:Error)
개체에 대한 대기(무한:Infinity)
프로그램의 처음으로 이동
교착상태 발생을 위한 조건
상호배제(Mutual Exclusion) : 프로세스들이 한번에 하나의 프로세스만 자원을 공유점유 및 대기(Hold & wait) : 프로세스들이 현재 자원을 공유하면서 다른 프로세스의 자원 점유를 요구
비선점(Non-Preemption) : 프로세스들이 할당된 자원을 사용이 끝날때까지 강제로 해제 할수 없음
환형 대기(circular Wait) : 원형으로 구현된 다른 프로세스간 자원을 요구
교착상태의 해결
예방(Prevention) : 교착 상태 발생 조건을 없엠 - 미리 자원을 점유, 대기조건을 없엠- Not 비선점 : 자원의 선점이 가능
- Not 환형대기 : 선형 순서화(Linear Ordering)로 한방향 자원요청
회피(Avoidance) : 교착 상태 발생 조건을 제거하지 않고 적절히 피함 - 자원요청이 시스템용량을 초과하면 안됨, 데이크스트라(Dijkstra)의 은행원 알고리즘에 쓰임
발견(Detection) : 교착상태 발생을 허용하고, 발생 원인을 수시로 찾아 복구
회복(Recovery) : 교착상태인 프로세스를 중단 하거나 자원을 강제 해제하여 실행을 재개
참조 링크 : Wikipedia
데이크스트라 알고리즘
에츠허르 비버 데이크스트라
병행 프로세스( Concurrent )
정의 : 두개 이상이 실행되는 프로그램(독립적/협동적)동기화
- 임계구역(Critical Section) - 공유하는 데이터, 자원을 하나의 프로세스만 사용하도록 하는 영역
- 상호배재(Mutual Exclusion) - 공유중인 자원을 사용중일때 다른 접근은 못하게 함
알고리즘
소프트웨어 기법 : 데커(Dekker), 피터슨(Peterson), 램포트(Lamport) 빵집 알고리즘
하드웨어 기법 : Test and set, Swap 명령어 - 세마포머(Semaphore) - 데이트스트라(Dijkstra)가 고안한 프로세스간의 동기화문제를 해결한 방법
- 모니터(Montor) - 동기화를 현하는 특수 기법
외부 프로시저가 모니터의 내부 프로시저에 접근을 못하도록 한다
한번에 하나의 프로시저만 처리함