Tutorials/컴퓨터 이론

운영체제] 프로세스 개요

Nightly Luna 2013. 6. 11. 15:19
프로세스 개요
wikipedia : 프로세스

정의( Definition )
실행중인 프로그램(실행중인 작업)
프로세스는 운영체제에서 프로그램을 실행하는 최소의 단위이다
프로세스는 시스템의 여러 자원사용을 요청하고 할당 받게 된다

상태( state )
생성
(New)
->
준비
(Ready)
Dispatch ->
<- Timer Runout
실행
(Run)

<-
Wake Up
대기
(Wait)
<-
Block
->
종료
(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 저장 정보(프로세스에 대한)
  1. 현재 상태
  2. 고유 식별자
  3. 우선순위
  4. 카운터(시간)
  5. 할당된 주기억장치의 주소
  6. 할당된 자원 정보


교착상태( Deadlock )
의미 : 다중 프로그래밍 환경에서 발생되지 않은 이벤트를 무한히 기다리는 상태
프로그램 메인 루프
개체에 대한 요청(오류:Error)
개체에 대한 대기(무한:Infinity)
프로그램의 처음으로 이동


교착상태 발생을 위한 조건
상호배제(Mutual Exclusion) : 프로세스들이 한번에 하나의 프로세스만 자원을 공유
점유 및 대기(Hold & wait) : 프로세스들이 현재 자원을 공유하면서 다른 프로세스의 자원 점유를 요구
비선점(Non-Preemption) : 프로세스들이 할당된 자원을 사용이 끝날때까지 강제로 해제 할수 없음
환형 대기(circular Wait) : 원형으로 구현된 다른 프로세스간 자원을 요구

교착상태의 해결
예방(Prevention) : 교착 상태 발생 조건을 없엠 - 미리 자원을 점유, 대기조건을 없엠
  - Not 비선점 : 자원의 선점이 가능
  - Not 환형대기 : 선형 순서화(Linear Ordering)로 한방향 자원요청
회피(Avoidance) : 교착 상태 발생 조건을 제거하지 않고 적절히 피함 - 자원요청이 시스템용량을 초과하면 안됨, 데이크스트라(Dijkstra)의 은행원 알고리즘에 쓰임
발견(Detection) : 교착상태 발생을 허용하고, 발생 원인을 수시로 찾아 복구
회복(Recovery) : 교착상태인 프로세스를 중단 하거나 자원을 강제 해제하여 실행을 재개

참조 링크 : Wikipedia
데이크스트라 알고리즘
에츠허르 비버 데이크스트라

병행 프로세스( Concurrent )
정의 : 두개 이상이 실행되는 프로그램(독립적/협동적)

동기화
  1. 임계구역(Critical Section) - 공유하는 데이터, 자원을 하나의 프로세스만 사용하도록 하는 영역
  2. 상호배재(Mutual Exclusion) - 공유중인 자원을 사용중일때 다른 접근은 못하게 함
    알고리즘
    소프트웨어 기법 : 데커(Dekker), 피터슨(Peterson), 램포트(Lamport) 빵집 알고리즘
    하드웨어 기법 : Test and set, Swap 명령어
  3. 세마포머(Semaphore) - 데이트스트라(Dijkstra)가 고안한 프로세스간의 동기화문제를 해결한 방법
  4. 모니터(Montor) - 동기화를 현하는 특수 기법
    외부 프로시저가 모니터의 내부 프로시저에 접근을 못하도록 한다
    한번에 하나의 프로시저만 처리함
프로시저 : 프로세스할 순서