본문 바로가기

6. 컴퓨터 공학 공부

[86] 운영체제 03차시 프로세스의 개념

1. 프로세스의 개념

가. 개념

1) 작업(Job)

실행 프로프로그램과 이에 필요한 입력 데이터의 묶음

컴퓨터에 실행 의뢰되기 전의 상태

2) 프로세스(Process)

커널에 등록된 작업

커널에 등록되어 커널의 관리 하에 들어간 작업

https://ko.wikipedia.org/wiki/프로세스

 

프로세스 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. htop을 통해 보이는 프로세스들의 목록. 프로세스(process)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 종종 스케줄링의 대상이 되는 작

ko.wikipedia.org

3) 작업과 프로세스의 개념 비교

나. 프로세스 정의

실행중인 프로그램(작업)

운영체제에 들어있는 프로세스 제어 블록 PCB

커널에 등록되고 커널의 관리 하에 있는 작업

각종 자원들을 요청하고 할당 받을 수 있는 개체

프로세스 관리 블럭을 할당 받은 개체

능동적인 개체

실행 중에 각종 자원을 요구, 할당, 반납하며 진행

1) 프로세스 관리 블럭(PCB: Process Control Block)

커널 공간(Kernel Space) 내에 존재

커널에 등록된 각 프로세스들에 대한 정보를 저장하는 영역

https://ko.wikipedia.org/wiki/프로세스_제어_블록

 

프로세스 제어 블록 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 프로세스 제어 블록(Process Control Block, 줄여서 PCB)은 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영 체제 커널의 자료 구조이다. 작업 제어 블록(T

ko.wikipedia.org

다. 자원의 개념

커널에 의해 다른 주체(Process)에게 할당 또는 반납되는 피동적인 개체

1) 하드웨어 자원

기억장치, 프로세서, 하드 디스크, 자기 테이프, 단말기, 모니터, 키보드 등

2) 소프트웨어 자원

메시지, 시그널(Signal), 파일, 각종 공유 소프트웨어 등

라. PCB내의 정보

프로세스 고유 번호(PID)

프로세스 우선 순위(priority)

프로세스 현재 상태(current state)

프로세스가 할당 받은 자원들의 리스트 또는 이들에 대한 포인터

문맥 저장 영역(context save area)

2. 프로세스의 종류

가. 운영체제 프로세스

운영체제 프로세스는 프로세스 상태 순서를 제어하거나 사용하고 있는 프로세스가 다른 사용자나 운영체제 영역을 침범하지 못하게 감시하는 기능 담당

사용자 프로세스를 생성하거나 입출력 프로세스를 생성하는 등 시스템 운영에 필요한 작업을 수행

커널 프로세스 또는 시스템 프로세스라고도 함.

나. 사용자 프로세스

사용자 프로세스는 사용자 코드를 수행

다. 병행 프로세스

프로세스 여러 개가 동시에 실행되면 병행 프로세스라고 부름.

병행 프로세스는 서로 독립적으로 실행되는 독립 프로세스와 프로세스들이 서로 협력하며 수행되는 협동 프로세스로 구분

1) 독립 프로세스

운영체제에서 프로세스 여러 개가 병행하여 수행될 때 주어진 초기값에 따라 항상 같은 결과를 보여주는 프로세스

2) 협동 프로세스

다른 프로세스에 영향을 주거나 다른 프로세스에 의해 영향을 받는 프로세스

3. 프로세스의 상태변화

가. 프로세스의 상태

프로세스는 크게 실행과 비실행 프로세스로 나눌 수 있음.

실행 상태 프로세스는 실행(running), 대기(waiting), 준비(ready)로 세분화할 수 있음.

https://ko.wikipedia.org/wiki/인터럽트

 

인터럽트 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 마이크로프로세서에서 인터럽트(interrupt), 끼어듦, 또는 가로막기란, 마이크로프로세서(CPU)가 프로그램을 실행하고있을 때, 입출력하드웨어 등의 장치에 예외

ko.wikipedia.org

나. 프로세스의 상태변화

프로세스의 상태 변화는 운영체제가 프로세서 스케줄러를 이용하여 관리

작업 스케줄러는 스풀러가 디스크에 저장한 작업 중 실행할 작업을 선정하고 준비 리스트에 삽입하여 다중 프로그래밍의 정도를 결정

프로세스 스케줄러는 선정한 작업의 상태를 변화시키며 프로세스의 생성에서 종료까지 수행

디스패치, 타임아웃, 웨이크업, 블락

1) 생성상태(new, create)

사용자가 요청한 작업이 커널에 등록됨.

PCB가 할당되어 새로운 프로세스가 만들어지는 상태

2) 준비상태(ready)

프로세스가 모든 필요한 자원을 할당 받고 프로세서를 할당 받기 위해 기다리고 있는 상태

즉시 실행 가능한 상태

3) 실행상태(running)

프로세서에 의해 실행되고 있는 상태

프로세스가 원하는 모든 자원을 소유한 상태

선점(Preemption)

실행중인 프로세스가 프로세서 시간 할당량(time quantum, time slice) 종료, 우선순위 등으로 인하여 자신에게 할당된 프로세서를 반납해야하는 경우 준비 상태로의 전이

블럭(Block/Sleep)

프로세스가 실행 중 자원을 요청하거나 기타 다른 이유로 system call을 하는 경우 대기 상태로 전이

4) 대기상태(waiting)

프로세스가 프로세서 외의 특정 자원을 요청하고 이를 할당 받을 때까지 기다리고 있는 상태

자원의 요청은 system call을 통해 이루어짐.

커널 내의 자원 할당 Routine에서 관리

5) 종료상태(terminated)

프로세스가 종료되는 상태로 코드와 사용했던 데이터를 메모리에서 삭제하고 프로세스 제어 블럭을 폐기하는 단계

https://ko.wikipedia.org/wiki/스케줄링_(컴퓨팅)

 

스케줄링 (컴퓨팅) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org