기출문제/정보처리기사

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에는 다음과 같은 정보가 포함됩니다.
    1. 프로세스 식별자(Process ID, PID)
    2. 프로세스 상태(State) (준비, 실행, 대기 등)
    3. CPU 레지스터 정보
    4. 메모리 관리 정보 (페이지 테이블 등)
    5. 입출력 상태 정보

③ 이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재하는 과정을 문맥 교환(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 저장 필요) 낮음 (스택과 레지스터만 교체)

프로세스의 상태 변화

  1. 생성(New) → 프로세스가 생성됨
  2. 준비(Ready) → 실행을 기다림 (CPU 할당 대기)
  3. 실행(Running) → CPU가 할당되어 실행됨
  4. 대기(Waiting, Blocked) → 입출력(I/O) 대기 등으로 멈춤
  5. 종료(Terminated) → 실행 완료 또는 강제 종료

스케줄링 개념

  • 디스패치(Dispatch)준비(Ready) → 실행(Running) 상태로 전환
  • 문맥 교환(Context Switching) → 실행 중인 프로세스를 변경하는 과정

🎯 최종 정리

  • ①, ②, ③은 올바른 설명입니다.
  • ④는 "프로세스가 스레드 내에서 실행된다"는 잘못된 설명이므로 정답입니다.
  • 프로세스는 독립적인 실행 단위이며, 주소 공간과 실행 스택을 가집니다.
  • 스레드는 프로세스 내에서 실행되며, 개별적인 실행 스택을 갖고 있습니다.

따라서 정답은 ④입니다! 🚀