커널의 프로세스 상태는 어떤 것들이 있나요?
_____A1: 일반적으로 커널은 프로세스 상태를 다음과 같이 분류합니다:
- 새로 생성(New) : 프로세스가 생성되어 커널의 관리가 시작된 상태
- 준비(Ready, Runnable) : CPU 할당을 기다리며 실행 준비가 완료된 상태
- 실행(Running) : 실제로 CPU에서 실행 중인 상태
- 대기(Waiting, Blocked) : 입출력 완료나 특정 이벤트 발생 등을 기다리며 CPU를 할당받지 않은 상태
- 종료(Terminated, Zombie) : 실행이 완료되어 종료를 기다리거나 종료된 상태
---
Q2: 각 프로세스 상태의 역할이나 의미는 무엇인가요?
A2:
- 새로 생성(New) : 프로세스가 생성되어 초기화 작업이 진행 중인 상태입니다.
- 준비(Ready) : 프로세스가 CPU를 할당받기 위해 대기 중이며, 바로 실행될 수 있는 상태입니다.
- 실행(Running) : 현재 CPU에서 프로세스가 명령어를 수행하고 있는 상태입니다.
- 대기(Waiting) : 특정 자원(예: 입출력 장치, 락 등)이 사용 가능해질 때까지 대기하는 상태이며, CPU 할당이 중단됩니다.
- 종료(Terminated) : 프로세스가 실행을 마치고 종료되었으며, 부모 프로세스가 종료 상태를 수집할 때까지 대기하거나 완전히 제거된 상태입니다.
---
Q3: 대기 상태와 준비 상태는 어떻게 구분되나요?
A3:
- 대기(Waiting) 상태는 프로세스가 CPU뿐만 아니라 특정 이벤트나 자원(예: 입력 완료, 잠금 해제 등)을 기다리고 있어 실행 준비가 완료되지 않은 상태입니다.
---
Q4: 프로세스가 상태 전이를 할 때 일반적인 흐름은 어떻게 되나요?
A4:
- 새로 생성 → 준비
- 준비 → 실행 (스케줄러에 의해 CPU 할당)
- 실행 → 대기 (자원 요청 또는 이벤트 대기)
- 대기 → 준비 (대기 조건 충족 시)
- 실행 → 준비 (CPU 시간 만료 등으로 선점될 때)
- 실행 → 종료 (프로세스 작업 완료 시)
---
Q5: 좀비 프로세스(Zombie Process)는 무엇인가요?
A5: 종료 상태에서 부모 프로세스가 아직 자식 프로세스의 종료 정보를 수집하지 않아 프로세스 테이블에 남아 있는 상태를 좀비 프로세스라고 합니다. 이 상태는 프로세스가 실제로 실행 중이지 않지만 시스템 자원(프로세스 식별자 등)을 계속 점유하고 있습니다.
---
Q6: 커널마다 프로세스 상태 명칭이 다를 수 있나요?
A6: 네, 커널이나 운영체제마다 용어와 상태 구분이 조금씩 다를 수 있습니다. 예를 들어 Linux 커널에서는 `TASK_RUNNING`, `TASK_INTERRUPTIBLE`, `TASK_UNINTERRUPTIBLE`, `TASK_ZOMBIE` 등 여러 세부 상태를 사용합니다. 그러나 기본 개념은 대체로 비슷합니다.
작성자:
이현민 [비회원]
| 작성일자: 1년 전
2024-11-06 03:21:44
조회수: 181 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 181 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.