이야기박스

운영체제 ) 프로세스 본문

Computer & Data/Operating System

운영체제 ) 프로세스

박스님 2017. 3. 31. 22:07
반응형

▣ 멀티프로그래밍 & 멀티프로세싱


멀티프로그래밍 시스템


1개의 프로세서(CPU) --> 다수의 프로그램 수행

- 사용자 측면에서는 동시에 수행하지만 실제로는 한 순간 하나의 프로그램만 수행

- 의사 병렬성 ( pseudoparallelism )



멀티프로세싱 시스템


다수의 프로세서 --> 다수의 프로그램 수행

- 병렬성 ( parallelism )






▣ 프로세스 모델 (Process Model)


프로세스 : 실행되고 있는 프로그램


- 하나의 처리기 (processor)는 다수의 프로세스들 간에 공유 가능

- 스케줄링 알고리즘에 의해 프로세스간 전환이 이루어진다.

- 동일한 프로그램이 두 번 수행되면, 두개의 프로세스가 생성







▣ 프로세스 생성 (Process Creation)


프로세스 생성의 기본적인 이벤트


- 시스템 초기화  --> 부팅하면 최소한 1개의 프로세스가 존재한다 ( OS 또한 프로세스 )

- 실행중인 프로세스가 프로세스 생성 시스템 호출을 하는 경우

- 사용자가 새로운 프로세스를 생성하도록 요청하는 경우

- 배치 작업의 시작




▣ 프로세스 종료 (Process Termination)


자발적 종료

- 정상적인 종료

- 오류 종료


 비자발적 종료

- 치명적인 오류

- 다른 프로세스에 의해 종료






▣ 프로세스 계층 구조 (Process Hierarchies)


○ process creation

- 부모 프로세스가 자식 프로세스 생성시 관계 유지


 프로세스 계층

- Unix ; process group
         a. Unix 실행시 초기화

b. Init라 불리는 특별한 프로세스가 부트 이미지에 존재

- Windows ; handle

a. 프로세스 계층에 대한 개념이 없음

b. 모든 프로세스는 동일하게 생성








▣ 프로세스 상태 (Process State)


프로세스 실행 시 상태  변화 ; 기본적으로 3가지


○ Running

- 실제로 CPU를 사용하는 상태 -> 명령어를 수행


○ Ready 

- 실행 가능한 상태 ( 실행 시, 프로그램 --> 프로세스 )

- 다른 프로세스를 실행하기 위하여 일시 정지하고 있는 상태


○ Blocked

- 어떤 외부 사건(Input / Output)이 일어날 때까지 실행될 수 없는 상태

* blocked example

입력을 받는다면 (외부사건) --> 사용불가능 --> 입력 받으면 --> Ready상태로 돌아간다


○ 프로세스 상태 모델

- 운영체제의 가장 하위 계층은 스케줄러

- 그 위에 다수의 프로세스들이 존재



▣ 프로세스 구현 (Process Implementation)



○ 프로세스 테이블 / 프로세스 제어 블록 ~ 같은 의미이다

- 각 프로세스마다 하나의 엔트리가 존재하는 테이블을 유지

* 엔트리 ; 프로세스 상태에 대한 중요한 정보를 가짐

* 여기서 보관하는 정보들이 운영체제의 성능을 좌우한다


○ 순차 프로세스의 실행

- 각각의 I/O 종류마다 인터럽트 벡터(interrupt vector)라 불리는 하나의 위치가 연관되어 있다. ~ 고정되어 있다

- 이 곳에 인터럽트 서비스 프로시저의 주소가 있다.


* 디스크 I/O 발생 : Process - block ==> running 빈다 ==> 스케줄러가 ready중인것 중 필요한것 동작

* Process 입장 : interrupt 걸고 쭉 대기 --> 신호오면 다시 ready -> running ( 스케줄러가 알아서 처리한다 )






▣ 다중프로그래밍 모델링



○ 다중프로그래밍이 몇개까지 적재하면 성능이 최고일까?


- 일반적으로 다중프로그래밍이 사용되면 CPU 활용도는 향상

- 확률적인 관점 : CPU 이용률 = 1-P^n




반응형

'Computer & Data > Operating System' 카테고리의 다른 글

운영체제) 스케줄링  (0) 2017.05.14
운영체제) 프로세스간 통신  (0) 2017.04.17
운영체제란, (복습)  (1) 2017.04.03
운영체제) 스레드 2  (0) 2017.04.03
운영체제) 스레드  (0) 2017.04.01