상세 컨텐츠

본문 제목

3.1 프로세스 개념

Computer Science/OS Concepts

by RACC8N 2020. 4. 17. 17:04

본문

CPU activity를 부르는 명칭

- Batch 시스템 -> Job

- Time-shared 시스템 -> User program, Task, Process

 

Job, Task, Process 용어는 거의 같은 의미로 사용됨

 

프로세스 - 실행 상태에 있는 능동적 개체, 연관된 자원 사용

- 프로그램 코드보다 더 많은 부분을 포함

  > 메모리 : code + data + stack + heap

  > CPU : program counter + registers

  > 프로세스 관리용 자료구조 : 프로세스 제어 블록 (PCB)

 

프로그램 - 디스크에 파일로 저장된 수동적 개체

- 프로그램 파일 = 코드(text section) + 초기화 데이터 + 헤더 정보 등

 

프로세스와 프로그램

text section : 프로그램 코드

data section : 전역변수 < 초기화 전역변수 (data), 비초기화 전역변수 (bss) >

heap section : 동적할당 메모리

stack section : 지역변수, 함수 매개변수, return주소

 

여러 개의 프로세스가 같은 프로그램 사용 가능

- text section은 같음 - 같은 메모리 공유, 개별적인 실행 시퀀스

- data/stack/heap section은 다름 - 프로세스마다 개별적인 메모리 할당

 

프로세스 상태

- 프로세스의 현재 활동을 나타내며, 실행하는 동안 상태 변화가 발생함

 

(LINUX)

생성(new) - 프로세스가 생성 중임

실행(running) - 명령어가 실행되고 있음

대기(waiting) - 어떤 사건(입출력 완료, 신호 수신 등) 발생을 기다림

준비(ready) - 프로세스가 실행할 준비가 됨 -> CPU의 할당을 기다림

종료(terminated) - 프로세스의 실행이 종료됨 -> 종료 후 처리를 기다림

 

프로세스 상태 이름과 종류는 운영체제마다 차이가 있다. 

 

프로세스 상태도 

- 한 CPU에서는 어떤 순간에도 한 프로세스만 실행될 수 있다.

- 많은 수의 프로세스가 ready 또는 waiting상태일 수가 있다.

- 프로세스가 다른 프로세스에 의해서 종료되면 프로세스는 ready 또는 waiting상태에서 terminated 상태로 이동될 수 있다.

 

프로세스 제어 블록(Process Control Block) = 테스크 제어 블록 (task control block)

- 프로세스에 대한 정보를 포함하는 OS 커널의 자료구조

 

프로세스 context

- 프로그램의 실행 상태 정보 - 실행시간 동안 변경 가능

 > CPU context, Memory Context 등

 

PCB 정보

- Process state

- Program Counter                                  (CPU context)

- CPU Registers                                      (CPU context)

- Memory management informaiton          (CPU context)

- CPU scheduling informaiton

- I/O status informaiton

- Accounting informaiton

프로세스 간에 CPU Switch

 

'Computer Science > OS Concepts' 카테고리의 다른 글

3.3 프로세스 연산  (0) 2020.04.17
3.2 프로세스 스케줄링  (0) 2020.04.17
2.10 시스템 부트  (0) 2020.04.17
2.9 운영체제 생성  (0) 2020.04.17
2.8 운영체제 디버깅  (0) 2020.04.17

관련글 더보기

댓글 영역