티스토리 뷰

728x90

 

프로세스 정의

- 실행 중인 프로그램(program in execution)

- CPU를 할당하는 대상(dispatchable objects of CPU)

- 시스템 내부에서의 작업 단위 (unit of works in system)

- PCB에 존재하는 개체(entity of PCB)

- 하나의 스래드(thread)로 구성된 태스크(task)

- 비동기적(asynchronous) & 독립적이다.

 

 

 

프로세스 상태

- 준비(ready) : CPU 할당을 기다리고 있는 상태

- 실행(running) : CPU가 할당된 상태

- 대기(waiting) : 요청된 사건(ex: 입출력 사건) 발생이 처리되기를 기다리고 있는 상태

 

ex: C언어 프로그램 main() 함수 안에서 scanf() 함수를 만났을 때, 실행상태에서 대기상태로 변경되어 마우스 입력을 기다림. 마우스 인터럽트 발생 시 대기상태에서 준비상태로 변경.

 

* CPU 할당시간(time quantum): 시분할(time-sharing) 시스템을 위하여 프로세스당 할당된 CPU 사용 시간.

 

 

 

프로세스 주소 영역

- 코드(code) : 프로그램의 코드(명령어)가 저장된 영역.

- 데이터(data) : 프로그램의 데이터가 저장된 영역.

- 스택(stack) : 프로그램이 실행되는 과정에서 일시적인 데이터(ex: 함수호출 반환주소)를 저장하기 위한 영역.

 

* 운영체제에는 코드와 데이터 영역만 존재하며 스택 영역이 없다.

* 프로세스가 필요로 하는 스택 영역의 크기는 예측할 수 없다.

* 프로세스마다 CPU가 필요하기 때문에 운영체제는 CPU를 프로세스에게 할당한다. 따라서 프로세스는 "CPU를 할당하는 대상" 이라고 할 수 있다.

 

 

 

프로세스 제어블록(PCB)

- 프로세스 관리에 필요한 정보들을 보관하기 위한 운영체제 내부의 자료구조.

- 프로세스마다 PCB가 필요하므로 운영체제는 프로세스를 생성할 때 PCB를 할당한다. 즉, 프로세스는 'PCB에 존재하는 개체'라고 할 수 있다.

- 프로세스 식별자(PID: Process Identification), 프로세스 상태, 프로세스 스케줄링을 위한 우선순위, 프로세스가 적재된 메모리 주소공간, CPU 레지스터 값, 부모 프로세스 식별자(PPID), 자식 프로세스 식별자(CPID) 등 아주 많은 정보를 저장.

 

 

 

프로세스 문맥 교환 (Context Switch)

: 현재 실행 중인 프로세스의 정보를 PCB에 저장하고, 다른 프로세스의 정보를 PCB로부터 복구시키는 작업

 

 

 

프로세스 생성 및 종료

시스템 호출(system call)에 의해 생성 및 종료

- 생성: PCB 엔트리를 할당하고 PID 번호를 부여하고 프로세스를 위한 메모리 공간을 확보한다. PCB 자료구조의 모든 정보를 초기화한다.

- 종료: 할당된 PCB 엔트리를 삭제한다.

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함