3-1장. 프로세스 개념

기타/[운영체제]

2019. 3. 27. 21:09

[운영체제 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