-
[Operating System] 운영체제 : 프로세스 상태와 계층 구조Operating System 2024. 5. 18. 17:17
프로세스 상태와 계층 구조에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'
< 프로세스 상태 >
프로세스 상태는 생성 상태, 준비 상태, 실행 상태, 대기 상태, 종료 상태로 나눌 수 있습니다.
생성 상태
- 이제 막 메모리에 적재되어 PCB를 할당 받은 상태
- 준비가 완료되었다면 준비 상태로
준비 상태
- CPU를 할당 받아 실행할 수 있지만, 자신의 차례가 아니기에 기다리는 상태
- 자신의 차례가 된다면 실행 상태로 ( = 디스패치)
실행 상태
- CPU를 할당 받아 실행 중인 상태
- 할당된 시간 모두 사용 시 (타이머 인터럽트 발생 시) 준비 상태로
- 실행 도중 입출력장치를 사용하면 입출력 작업이 끝날 때까지 대기 상태로
대기 상태
- 프로세스가 실행 도중 입출력장치를 사용하는 경우 접어드는 상태
- 입출력 작업은 CPU에 비해 느리기에 이 경우 대기 상태로 접어듬
- 입출력 작업이 끝나면 준비 상태로
종료 상태
- 프로세스가 종료된 상태
- PCB, 프로세스의 메모리 영역 정리
프로세스 5가지 상태 입출력 작업 완료 후 실행상태가 아닌 대기 상태가 되는 이유
: 입출력 작업이 완료된 프로세스는 준비 상태로 전환되어 CPU를 사용할 준비가 되지만, CPU 스케줄러가 다른 프로세스들의 우선순위와 공정성을 고려하여 다음에 실행될 프로세스를 결정하기 때문에 즉시 실행 상태로 전환되지 않습니다.
< 프로세스 계층 구조 >
프로세스 실행 도중 (시스템 호출을 통해) 다른 프로세스를 생성 가능합니다.
- 새 프로세스를 생성한 프로세스 : 부모 프로세스
- 부모 프로세스에 의해 생성된 프로세스 : 자식 프로세스
자식 프로세스가 또 다른 자식 프로세스를 낳을 수 있고, 이게 지속되어 프로세스의 계층적인 구조를 형성합니다.부모 프로세스와 자식 프로세스는 별개의 프로세스이므로 각기 다른 PID를 가집니다.
(일부 운영 체제는 자식 프로세스 PCB에 부모 프로세스 PID(PPID)를 명시하기도 합니다.)
프로세스 계층 구조
이하 내용은 Windows 운영체제와는 큰 관련이 없습니다.
< 프로세스 생성 기법 >
복제 : 부모 프로세스는 fork 시스템 호출을 통해 자신의 복사본을 자식 프로세스로 생성
옷 갈아입기 : 자식 프로세스는 exec 시스템 호출을 통해 자신의 메모리 공간을 다른 프로그램으로 교체
[ fork 시스템 호출 ]
- 복사본 ( = 자식 프로세스) 생성
- 부모 프로세스의 자원 상속
- 복사본이지만 다른 프로세스 이기 때문에 PID 값이 다릅니다.
[ exec 시스템 호출 ]
- 메모리 공간을 새로운 프로그램으로 덮어쓰기
- 코드/데이터 영역은 실행할 프로그램 내용으로 바뀌고, 힙/스택 영역은 초기화
'Operating System' 카테고리의 다른 글
[Operating System] CPU 스케줄링 : 개요 (0) 2024.05.19 [Operating System] 운영체제 : 스레드 (0) 2024.05.18 [Operating System] 운영체제 : 프로세스 개요 (0) 2024.05.18 [Operating System] 운영체제 : 운영체제의 큰 그림 (0) 2024.05.17 [Operating System] 운영체제 : 운영체제를 알아야 하는 이유 (0) 2024.05.17