홍차의 미로찾기

[방통대/운영체제] 프로세스란? 본문

공부/운영체제

[방통대/운영체제] 프로세스란?

홍차안디 2022. 3. 13. 15:19
반응형

 

 

<1. 프로세스>

 

1-1. 프로세스란?

- 실행 중인 프로그램

- 작업 관리자를 열면 내 컴퓨터의 프로세스를 확인할 수 있음.

 

★1-2. 프로세스와 프로그램 차이
프로그램 프로세스
exe 파일과 같은 정적파일 실행 중인 프로그램
동작을 하지 않는 정적·수동적 개체 동작을 하는 능동적 개체

- 프로그램을 클릭하여 실행하면 프로세스ID가 부여되면서 프로세스가 됨.

 

1-3. 프로세스의 동작

운영체제로부터 자원을 할당 받아 동작함.

 

- 자원 종류 : CPU, 메모리, 입출력 장치, 파일 등

- 동작 : CPU가 프로세스의 명령을 실행하는 것

 

1-4. 프로세스 종류

1. 사용자 프로세스

2. 시스템 프로세스

 


<2. 프로세스와 운영체제>

 

2-1. 운영체제 (프로세스와 운영체제 관계)

프로세스 관리자의 역할을 함

- 프로세스 생성 및 삭제를 담당

- 프로세스 실행을 위한 스케줄 결정

  (프로세스 실행 : CPU 할당을 의미)

- 프로세스 상태를 관리

- 프로세스 상태 전이를 처리

 


<3. 프로세스의 상태>

 

 

3-1. 프로세스 상태 (5-상태 모델)

 

프로세스 상태 변화

생성 처음 작업이 주어진 상태
준비 실행 준비가 되어 CPU할당을 기다리는 상태

- 생성 or 실행 or 대기 중인 프로세스 모두 준비 단계 변경 가능
실행 프로세스가 처리되는 상태

- 준비 중인 프로세스만 실행 가능
대기 프로세스가 특정 자원을 할당 받을 때까지 
또는
IO 작업이 끝날 때까지
작업이 보류되는 상태

- 실행 중인 프로세스만 대기 가능 (실행 대기라고 생각하자)
종료 모든 처리가 완료되어 사용자에게 반환되는 상태

 

디스패치 : CPU 할당 과정 (준비 -> 실행)

이벤트 대기 : 특정 작업을 기다리며 CPU는 쓰지 않음 (실행 -> 대기)

재개 조건 만족 : 기다리던 작업을 할 수 있게되면 다시 준비 단계로! (대기 -> 준비)

 


<4. 프로세스 제어 블록>

 

4-1. 프로세스 제어 블록 (Process Control Block, PCB)

- 프로세스 관리를 위한 목적

- 프로세스의 정보를 보관

- 각 프로세스마다 PCB 존재

- 프로세스가 진행함에 따라 내용이 변경

  (아래 이미지와 같은 내용들이 존재)

 

 

PC (프로그램 카운터) 

- 중앙 처리 장치 내부에 있는 레지스터 중의 하나.

- 다음에 실행 될 명령어의 주소를 가지고 있다.

(프로세스가 잠시 대기해도 다음에 어떤 작업을 실행해야 할 지 알 수 있음)

 


<5. 프로세스 생성과 종료>

 

5-1. 프로세스의 생성 방법

시스템 호출

 

5-2. 프로세스 생성 작업

프로세스의 이름(번호, PID) 결정

준비 큐에 삽입

초기 우선순위 부여

프로세스 제어 블록(PCB) 생성

 

5-3. 프로세스 생성 시스템 호출

하나의 프로세스가 새로운 프로세스 생성

-> 생성 시스템 호출을 통해 생성 (ex. fork() )

 

- 호출하는 프로세스 : 부모 프로세스

- 생성되는 프로세스 : 자식 프로세스

 

※ 부모 프로세스가 가능한 프로세스 종류

- 시스템 / 사용자 프로세스 모두 가능

 

즉, 둘 다 새로운 프로세스 호출 가능

-> 응용프로그램과 같은 사용자 프로세스도 새로운 프로세스 생성이 가능하다는 의미)

 

5-4. 생성되는 프로세스의 자원 종류 (새로운 프로세스의 자원은 어디로부터 오는가)

① 운영체제로부터 직접 얻음

② 부모 프로세스 자원의 일부를 얻음

 

-> 자식 프로세스의 자원은 부모 프로세스의 자원으로 제한함.

(과도한 자식 프로세스의 생성으로 인한 시스템 과부하 방지를 위해)

 

5-5. 프로세스의 종료

- 프로세스의 마지막 명령이 실행을 마치는 경우

- 프로세스 종료 시스템 호출(예: exit())을 통하는 경우

- 프로세스 종료 후 부모 프로세스에게 실행 결과를 되돌려줌

 

5-6. 프로세스 종료 시스템 호출 조건

- 부모에 의해서만 호출

- 자식 프로세스가 할당된 자원의 사용을 초과할 때

- 자원이 더이상 필요치 않을

 

 


<6. 프로세스 간의 관계>​

 

6-1. 프로세스 간의 관계
  독립적 프로세스 유기적 프로세스
의미 다른 프로세스의 영향을 받지도 않고
주지도 않음
다른 프로세스와 영향을 주고 받음
프로세스 상태 다른 프로세스와 공유 X 다른 프로세스와 공유 O
실행 - 결정적 (입력이 동일하면 결과도 동일)
- 재생 가능 (다시 실행해도 같은 결과 나옴)
- 비결정적 (동일한 입력이라도 결과가 달라질 수 있음)
- 재생 불가능 (다시 실행해도 같은 결과 불가능)
다른 프로세스와 무관하게 중단 및 재시작 가능  
데이터 다른 프로세스와 데이터 공유 X 다른 프로세스와 데이터 공유 O

 

반응형
Comments