[운영체제 3-1장. 프로세스 개념]
- 일괄처리 시스템(batch-system) : 잡(job) 실행
- 시분할 시스템(time-shared system) : 사용자 프로그램 or 테스크 가짐
[프로세스]
: 실행중인 프로그램
<프로세스의 일부>
- Memory Context
1) 전역 변수들을 수록하는 데이터 섹션(Data Section)
2) 임시적 자료 가지는 프로세스 스택(Stack)
3) 프로세스 실행중에 동적으로 할당되는 메모리인 힙(Heep)
- Register Context
: 프로그램 카운터(Program Counter), Processor Register(= CPU Register)
* Process Context : 하나의 실행중인 프로그램 내용
<구성> Register Context, Memory Context, System Context(kernel 자료구조)
<프로그램와 프로세스>
- 프로그램 : 수동적 존재. 디스크에 저장된 파일(실행 파일)
- 프로세스 : 능동적 존재. 프로그램 카운터와 관련 자원의 집합을 가짐
- 프로그램(실행 파일)이 메모리로 load되었을때, 프로세스가 된다.
#메모리 상의 프로세스
: text, data는 크기 고정. stack, heap은 유동적
[프로세스 상태(Process State)]
: 프로세스는 항상 이 5개의 state중 한가지 state를 가진다.
1) 새로운(new) : 프로세스 생성 중. 아직 os가 프로세스 취급 안함.
2) 실행(running) : 명령어들 실행중(text에 명령어 위치)
3) 대기(waiting) : 프로세스가 어떤 사건(입출력 완료, 신호수신등)이 일어나기를 기다림.
4) 준비 완료(ready) : 프로세스가 처리기에 할당되기를 기다린다. CPU만 주어지면 실행가능 상태
5) 종료(terminated) : 프로세스 실행 종료. 실질적 실행 끝 ~ 프로세스 완전 제거 사이의 상태.
- 대기와 준비완료는 프로세스가 멈췌 있는 상태가 동일하지만, 서로 멈춰있는 이유가 다르다.
#프로세스 상태 다이어그램
: 여기 명시된 화살표방향 외의 이동은 불가능
[프로세스 제어 블록(Process Control Block)]
: 프로세스 관련 모든 정보들이 들어있다.
<수록 정보>
- 프로세스 상태 : 항상 5개중 1가지 상태이다.
- 프로그램 카운터 : 이 프로세스 다음에 실행할 명령어의 주소를 가르킴
- CPU 레지스터들 : 프로세스가 사용하던 register값
- CPU-스케줄링 정보 : 프로세스 우선순위, 스케줄링 큐 포인터등
- 메모리 관리 정보 : 프로세스에 할당된 메모리
- 회계(accounting) 정보 : 프로세스의 자원 사용량 기록
- 입출력 상태 정보
#한 프로세스에서 다른 프로세스로 CPU로 전환되는 흐름도
- Context Switch(문맥 교환)
: 한 프로세스에서 다른 프로세스로 변환시 반드시 발생
'기타 > [운영체제]' 카테고리의 다른 글
3-3장. 프로세스에 대한 연산 (0) | 2019.03.29 |
---|---|
3-2장. 프로세스 스케줄링 (0) | 2019.03.29 |
[운영체제 2장 요약](작성중) (0) | 2019.03.27 |
2-10장. 시스템 부트 (0) | 2019.03.24 |
2-7장. 운영체제 구조 (0) | 2019.03.22 |