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, 스택
텍스트 부분/ 데이터 부분/ 다른 운영체제 자원 ->같은 프로세스의 다른 스레드들과 공유
-스레드의 상태 변화
-스레드의 장점
응답성 : 다중 스레드 프로그램은 그거것의 일부가 블록되어도 나머지 부분은 계속 실행
자원공유 : 기본적으로 같은 프로세스의 스레드는 같은 주소 공간을 공유하여 스레드 간 통신 용이
경제성 : 프로세스마다 메모리와 자원을 할당하면 오버헤드가 많이 발생하는데 프로세스 내의 스레드는 자원을 공유하므로 생성 비용이 저렴, 스레드 간의 문맥 전환이 용이.
[출처] 4.프로세스와 스레드|작성자 해왕성
'OS' 카테고리의 다른 글
프로세스 스케쥴링 방법 (0) | 2014.11.30 |
---|---|
프로그램, 프로세스, 스레드 (0) | 2014.11.28 |
IPC (0) | 2014.11.28 |
프로세스와 스레드 (0) | 2014.11.28 |
윈도우 메시지 처리 과정 (0) | 2014.11.14 |