728x90

1. 프로세스 : CPU에 의해 수행되는 시스템 및 사용자 프로그램. 시스템의 작업 단위로 프로그램에 입출력 상태를 결합한 형태

Asychronous 행위

실행중이거나 곧 실행할 수 있는 PCB를 가진 프로그램

프로세서에 할당되어 실행될 수 있는 개체

 

*PCB 프로세스제어블록 : 운영체제가 프로세스에 대해 중요한 정보를 저장해놓을 수 있는 저장 장소

|

(프로세스 현재 상태, 프로세스 고유 식별자, 프로세스 우선순위, 프로세스가 적재된 기억 장치 부분을 가리키는 포인터)

 

2. 프로세스 상태

보류상태(pending) :작업 일시중지, 디스크에 수록된 상태

준비상태(ready) : 프로세서에 할당되기를 기다리는 상태

실행상태(running) : 프로세스가 CPU를 차지하는 상태

대기상태(blocked) : 프로세스가 CPU를 차지하고 실행되다가 이벤트가 일어나기를 기다리는 상태

교착상태(deadlock) : 프로세스가 결코 일어날 수 없는 사건의 발생을 기다리는 상태

완료상태(terminated) : 프로세스의 수행이 끝난 상태 (프로세스 제거 및 PCB삭제, 자원 반환)

 

3.Process State Diagram

 

 

4.문맥 교환 Context Switching

프로세서가 다른 프로세스로 전환할 때 이전의 프로세스 상태 레지스터 내용을 보과하고 다른 프로세스의 레지스터들을 적재하는 과정

준비->실행, 실행->준비, 실행->대기 상태로 변환할 때 발생. 이 때 모두 과부하가 발생하게 됨.

운영체제에서 문맥교환은 자주 발생하므로 이에 대한 과부하를 해결하기 위해 스레드(THREAD)를 사용함.

 

5.스레드 Thread

프로세스와 마찬가지로 CPU의 작업단위. lightweight process라고도 함.

프로세스는 프로그램에 수행과 그에 필요한 자원을 하나의 개체에서 관리

but 스레드는 프로그램의 하나의 실행 흐름, CPU의 실행을 위해 스케줄되어야 하는 개체

스레드의 구성요소 : 독립적으로 스레드 식별자, 프로그램 카운터, 레지스터 SET, 스택

                텍스트 부분/ 데이터 부분/ 다른 운영체제 자원 ->같은 프로세스의 다른 스레드들과 공유

 

 

-스레드의 상태 변화

 

 

-스레드의 장점

응답성 : 다중 스레드 프로그램은 그거것의 일부가 블록되어도 나머지 부분은 계속 실행

자원공유 : 기본적으로 같은 프로세스의 스레드는 같은 주소 공간을 공유하여 스레드 간 통신 용이

경제성 : 프로세스마다 메모리와 자원을 할당하면 오버헤드가 많이 발생하는데 프로세스 내의 스레드는 자원을 공유하므로 생성 비용이 저렴, 스레드 간의 문맥 전환이 용이.

 

728x90

'OS' 카테고리의 다른 글

프로세스 스케쥴링 방법  (0) 2014.11.30
프로그램, 프로세스, 스레드  (0) 2014.11.28
IPC  (0) 2014.11.28
프로세스와 스레드  (0) 2014.11.28
윈도우 메시지 처리 과정  (0) 2014.11.14

+ Recent posts