기출문제/정보처리기사
2021년 3회 정보처리기사 기출문제 74번
엉클지니
2025. 3. 19. 11:04
74. 프로세스와 관련한 설명으로 틀린 것은?
① 프로세스가 준비 상태에서 프로세서가 배당되어 실행 상태로 변화하는 것을 디스패치(Dispatch)라고 한다.
② 프로세스 제어 블록(PCB, Process Control Block)은 프로세스 식별자, 프로세스 상태 등의 정보로 구성된다.
③ 이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재하는 과정을 문맥 교환(Context Switching)이라고 한다.
❹ 프로세스는 스레드(Thread) 내에서 실행되는 흐름의 단위이며, 스레드와 달리 주소 공간에 실행 스택(Stack)이 없다.
🔍 문제 분석 및 해설
문제는 프로세스(Process)와 관련된 개념을 묻고 있습니다.
각 선택지를 하나씩 검토해 보겠습니다.
✅ 각 선택지 분석
① 프로세스가 준비 상태에서 프로세서가 배당되어 실행 상태로 변화하는 것을 디스패치(Dispatch)라고 한다. → O (정답)
- 프로세스 상태에는 준비(Ready), 실행(Running), 대기(Waiting), 종료(Terminated) 등이 있습니다.
- **디스패치(Dispatch)**는 준비(Ready) 상태에서 실행(Running) 상태로 전환되는 과정을 의미합니다.
- 운영체제(OS)의 **스케줄러(Scheduler)**가 CPU를 프로세스에 할당하면 실행 상태가 됩니다.
② 프로세스 제어 블록(PCB, Process Control Block)은 프로세스 식별자, 프로세스 상태 등의 정보로 구성된다. → O (정답)
- **PCB(Process Control Block)**는 운영체제가 프로세스를 관리하기 위해 유지하는 자료 구조입니다.
- PCB에는 다음과 같은 정보가 포함됩니다.
- 프로세스 식별자(Process ID, PID)
- 프로세스 상태(State) (준비, 실행, 대기 등)
- CPU 레지스터 정보
- 메모리 관리 정보 (페이지 테이블 등)
- 입출력 상태 정보
③ 이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재하는 과정을 문맥 교환(Context Switching)이라고 한다. → O (정답)
- **문맥 교환(Context Switching)**은 CPU가 실행 중인 프로세스를 변경하는 과정입니다.
- 운영체제는 현재 실행 중인 프로세스의 상태(레지스터, 프로그램 카운터 등)를 PCB에 저장한 후,
새로운 프로세스의 PCB 정보를 불러와 실행을 재개합니다.
④ 프로세스는 스레드(Thread) 내에서 실행되는 흐름의 단위이며, 스레드와 달리 주소 공간에 실행 스택(Stack)이 없다. → ❌ (틀린 설명, 정답)
- 프로세스는 스레드 내에서 실행되는 것이 아닙니다.
- 반대로, 스레드는 프로세스 내에서 실행되는 실행 흐름의 단위입니다.
- 프로세스는 각자의 주소 공간(Address Space)을 가집니다.
- **실행 스택(Stack)**은 프로세스에도 존재하며, 각 스레드는 개별적인 스택을 가집니다.
- 프로세스는 코드(Code), 데이터(Data), 힙(Heap), 스택(Stack) 등의 메모리 구조를 가집니다.
- 스레드는 프로세스의 메모리를 공유하지만, 독립적인 스택(Stack)과 레지스터를 가집니다.
📌 결론
④번 선택지가 잘못된 설명이므로 정답입니다. 🎯
📝 추가 개념 정리
✅ 프로세스 vs 스레드
구분 프로세스(Process) 스레드(Thread)
정의 | 실행 중인 프로그램 | 프로세스 내 실행 흐름 |
메모리 공유 | 독립적인 주소 공간 | 같은 프로세스 내에서 메모리(코드, 데이터, 힙)를 공유 |
스택(Stack) | 각 프로세스마다 별도의 스택 존재 | 각 스레드마다 독립적인 스택 보유 |
문맥 교환(Context Switching) 비용 | 높음 (PCB 저장 필요) | 낮음 (스택과 레지스터만 교체) |
✅ 프로세스의 상태 변화
- 생성(New) → 프로세스가 생성됨
- 준비(Ready) → 실행을 기다림 (CPU 할당 대기)
- 실행(Running) → CPU가 할당되어 실행됨
- 대기(Waiting, Blocked) → 입출력(I/O) 대기 등으로 멈춤
- 종료(Terminated) → 실행 완료 또는 강제 종료
✅ 스케줄링 개념
- 디스패치(Dispatch) → 준비(Ready) → 실행(Running) 상태로 전환
- 문맥 교환(Context Switching) → 실행 중인 프로세스를 변경하는 과정
🎯 최종 정리
- ①, ②, ③은 올바른 설명입니다.
- ④는 "프로세스가 스레드 내에서 실행된다"는 잘못된 설명이므로 정답입니다.
- 프로세스는 독립적인 실행 단위이며, 주소 공간과 실행 스택을 가집니다.
- 스레드는 프로세스 내에서 실행되며, 개별적인 실행 스택을 갖고 있습니다.
따라서 정답은 ④입니다! 🚀