본문 바로가기

컴퓨터일반/운영체제론

프로세스

1. 프로세스

- 실행 중인 프로그램입니다.

- 운영체제에서 작업의 기본 단위입니다.

- 비동기적인 행위를 일으키는 주체입니다.

- 프로그램 코드 외에도 현재의 활동 상태를 갖습니다.

- 호출한 함수의 반환 주소, 매개변수 등을 저장하기 위해 스택을 사용합니다.

2. PCB

- 한 개의 프로세스에 관한 모든 정보를 구조체로 가지고 있는 것입니다.

- 프로세스가 생성될 때 함께 생성되고 프로세스가 종료될 때 함께 삭제됩니다.

3. 프로세스 종류

운영체제 프로세스

- 사용자 작업 처리를 위해 시스템 관리 기능을 담당합니다.

- 프로세스 실행 순서를 제어하거나 사용하고 있는 프로세스가 다른 사용자나 운영체제 영역을 침범하지 못하게 감시하는 기능을 갖습니다.

- 사용자 프로세스를 생성하거나 입출력 프로세스를 생성합니다.

사용자 프로세스

- 사용자 응용프로그램을 수행합니다.

- 사용자 코드를 수행합니다.

병행 프로세스

- 프로세스 여러 개가 동시에 실행됩니다.

독립 프로세스

- 한 프로세스가 시스템의 다른 프로세스에 영향을 주지 않거나 다른 프로세스의 영향을 받습니다.

협동 프로세스

- 다른 프로세스에 영향을 주거나 다른 프로세스에 의해 영향을 받습니다.

- 서로 통신하기 위한 수단과 동기화할 수 있는 기능이 필요합니다.

4. 프로세스 상태

생성

- 프로세스의 작업 공간이 메인 메모리에 생성됩니다.

- 운영체제 내부에 프로세스의 실행정보를 관리하기 위한 프로세스 제어 블록(PCB)이 만들어집니다.

- 프로세스의 이름(식별자)을 결정하고, 영역을 할당받고, PCB를 생성, 초기화하고, 이후 준비 상태 전이가 발생하여 준비 큐에 삽입합니다.

준비

- 프로세스가 CPU 할당을 기다리는 상태입니다.

- 단일 프로세서 시스템에서 여러 개의 프로세스들이 동시에 이 상태에 있을 수 있습니다.

- 대기 상태의 프로세스들은 CPU 할당을 위한 스케줄링에서 제외됩니다.

실행

- 프로세스가 CPU를 할당받아 작업을 수행하고 있는 상태입니다.

- 단일 프로세서 시스템에서는 오직 하나의 프로세스만 이 상태에 있을 수 있습니다.

- 다중 프로세서 시스템에서는 실행 상태의 프로세스가 여러 개 있을 수 있습니다.

대기

- 프로세스가 어떤 이벤트가 일어나기를 기다리는 상태입니다.

- 프로세스의 실행 과정에서 여러 번 이 상태에 속하게 됩니다.

종료

- 프로세스가 작업 수행을 끝낸 상태입니다.

- 프로세스에 할당된 모든 자원을 OS에 돌려주면 관련 PCB가 삭제됩니다.

5. 프로세스 상태 변이

time run-out(interrupt) : 실행 -> 준비

- 시간 할당량을 사용하는 일반적 우선순위 기반 스케줄링에서 실행 상태 프로세스의 시간 할당량이 모두 소진되었을 때 우선순위가 높은 다른 준비 상태의 프로세스가 있다면 실행 중이던 프로세스는 커널에 의해 스케줄링되기를 기다리는 준비 상태로 전이됩니다.

block : 실행 -> 대기

- 실행 상태의 프로세스가 동기식 입출력 요청을 하면, 일반적으로 해당 프로세스는 입출력이 완료될 때까지 CPU를 반납하고 대기 상태로 전이됩니다.

- 프로세스가 파일 읽기, 쓰기, 또는 다른 I/O 요구, 페이지 교환 수행을 커널에 요청하고 파일의 내용이 파일 캐시에 없는 경우 실행 상태에서 대기 상태로 전이됩니다.

wake-up : 대기 -> 준비

- 대기 상태의 프로세스가 요청하였던 입출력이 완료되면 해당 프로세스는 준비 상태로 전환하였다가 CPU를 할당받게 됩니다.

dispatch : 준비 -> 실행

- 프로세스 생성 상태에서 프로세서만 할당 받으면 실행 상태로 전이됩니다.

- 준비 프로세스 중 하나가 CPU 할당을 받아 실행 상태로 전이됩니다.

- 스케줄링 알고리즘에 의해 수행됩니다.

exit : 실행 -> 종료

- 실행 중인 프로세서가 작업을 완료하거나 실행이 중단됩니다.

6. 문맥 교환(context switching)

- CPU를 다른 프로세스에 바꾸어 주는 과정은 이전 프로세스의 상태를 저장하고 새로운 프로세스에 대해 상태를 적재하는 것을 요구합니다.

 

 

 

'컴퓨터일반 > 운영체제론' 카테고리의 다른 글

스레드  (0) 2022.09.07
운영체제  (0) 2022.09.05