이야기박스
운영체제 ) 프로세스 본문
▣ 멀티프로그래밍 & 멀티프로세싱
멀티프로그래밍 시스템
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 |