카테고리 없음
프로세스란? (멘토링 예시를 위해 작성된 게시글입니다.)
doongu
2025. 1. 12. 19:27
(멘토링 예시를 위해 작성된 게시글입니다.)
1. 프로세스란?
- 프로세스는 운영체제로부터 자원을 할당받아 실행하는 작업의 단위
- 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받는다
- 스택, 힙, 데이터, 코드로 구성된 프로세스 메모리를 갖는다.
- 프로세스 상태: New, Running, Waiting, Ready, Teminated
2. 프로세스의 상태란?
총 New, Running, Waiting, Ready, Teminated 5가지를 가진다.
new -> 프로세스 생성중인 상태
커널에 PCB가 만들어진 상태
ready -> 프로세스가 CPU를 기다리는 상태
ready상태를 가지는 프로세스는 여러개가 될 수 있으며, CPU를 받게 된다면 바로 실행 가능한 상태
running -> 프로세스가 CPU를 할당받아 명령어를 수행 중인 상태
일반적으로 CPU는 하나임. 그래서 실제로 실행 중인 프로세스는 매 시점 하나뿐임
blocked -> 프로세스가 CPU를 할당받아도 당장 실행할 수 없는 상태
프로세스가 I/O 작업 등을 처리 중인 상태
terminated -> 프로세스 실행 종료 상태
프로세스의 실행이 완료되고 된 상태. 프로세스가 종료됨.
blocked?
프로세스 A가 CPU를 사용하여 실행 중일 때, I/O 작업을 요청하게 되면 상황이 변함. 디스크 I/O 작업은 상대적으로 시간이 많이 소요되므로, 프로세스가 I/O 작업을 할 동안 CPU 자원을 비효율적으로 점유하고 있을 수 없음. 따라서 프로세스는 CPU를 다른 작업에게 양보하고, I/O 작업을 위해 장치 대기열에 들어가게 됨. 이 상태를 'blocked' 상태라고 부름.이후, 디스크 컨트롤러가 해당 I/O 작업을 처리하여 필요한 데이터를 디스크에서 로컬 버퍼로 이동시키고 나면, 작업 완료를 CPU에 알리기 위해 인터럽트가 발생함. 그 결과, 프로세스 A는 장치 대기열에서 준비 대기열로 이동하게 되며, 프로세스가 가져온 데이터는 메모리에 적재되어 후속 처리를 위해 준비됨.이렇게 함으로써 CPU 자원이 더 효율적으로 사용되며, 여러 프로세스가 동시에 원활하게 작업을 처리할 수 있게 됨.
3. PCB란?
- 프로세스 ID, 프로세스 상태 등이 담겨있다.
- 메타데이터이다.
- Linked List로 관리한다.
4. Process와 Program?
- 프로그램은 명령어들의 집합이다.
- 프로세스는 실행 중인 프로그램
- 실행한다라는 의미는 메모리에 로드되어 있는 상태이다.