반응형

ChatGPT가 생성한 이미지 파일.

프로세스의 특징과 기능

프로세스는 실행 중인 프로그램을 의미하며, 운영체제는 이 프로세스들을 관리하고 CPU, 메모리, I/O 등의 자원을 할당합니다. 각각의 프로세스는 고유한 ID와 실행 환경을 가지고 있으며, 이를 통해 운영체제가 효과적으로 여러 프로세스를 스케줄링하고 자원을 분배할 수 있습니다.

  • 프로세스 스케줄링: 운영체제는 실행 가능한 프로세스들 중 우선순위가 가장 높은 프로세스를 선택해 CPU에 할당합니다. 스케줄러는 항상 실행 상태가 변경될 때마다 호출되어 어떤 프로세스가 CPU를 차지할지 결정합니다.

프로세스 상태 및 상태 변화도

프로세스는 다음과 같은 다섯 가지 주요 상태를 가지며, 다양한 조건에 따라 상태가 변화합니다:

  1. New (신규 상태):
    • 프로그램이 막 실행 준비 단계에 있을 때, 아직 CPU를 할당받지 않은 상태입니다.
  2. Ready (준비 상태):
    • CPU가 할당되면 즉시 실행할 수 있는 상태입니다. 이 상태에서는 CPU만 할당되면 바로 실행이 가능합니다.
  3. Running (실행 상태):
    • 현재 CPU를 사용하여 명령어를 실행하고 있는 상태입니다. 프로세스는 이 상태에서 실제 작업을 수행합니다.
  4. Blocked (대기 상태):
    • 프로세스가 실행 도중 I/O 작업을 요청하는 등의 이유로 대기 상태에 들어갈 때 발생합니다. 이 상태에서는 CPU가 주어져도 실행할 수 없으며, 기다리던 이벤트가 완료되면 Ready 상태로 전환됩니다.
    • 예시: 키보드 입력을 대기하거나 파일 읽기를 대기할 때.
  5. Exit (종료 상태):
    • 프로그램의 실행이 완료되어 자원을 반납하고 시스템에서 프로세스가 제거되는 단계입니다.

프로세스 상태 전이:

  • Running -> Blocked: 실행 중인 프로세스가 I/O 작업을 대기하게 되면 Blocked 상태로 전환됩니다.
  • Blocked -> Ready: 대기 중이던 작업(I/O)이 완료되면 Ready 상태로 전환됩니다.
  • Running -> Ready: 타이머 인터럽트 등의 이유로 프로세스가 CPU를 더 이상 사용할 수 없을 때 Ready 상태로 돌아갑니다.
  • Ready -> Running: 스케줄러가 CPU를 할당하면 Ready 상태에서 Running 상태로 전환됩니다.

프로세스 구성 요소

프로세스가 실행될 때 메모리에 저장되는 내용의 집합입니다.

  1. 텍스트 (Text): 실제 실행되는 프로그램 코드가 저장된 영역입니다.
  2. 데이터 (Data): 전역 변수 및 초기화되지 않은 변수들이 저장됩니다.
    • BSS 영역: 초기화되지 않은 변수들이 저장되는 부분.
    • Data 영역: 초기화된 전역 변수들이 저장되는 부분.
  3. 스택 (Stack): 함수 호출 시 매개 변수, 지역 변수, 리턴 주소 등이 저장됩니다.
  4. 힙 (Heap): 동적으로 할당된 메모리 공간이 저장됩니다.

프로세스 제어 블록 (PCB)

PCB는 Process Control Block의 약자로, 각 프로세스의 중요한 정보를 저장하는 자료 구조체입니다. 운영체제는 PCB를 통해 프로세스의 상태와 실행 환경을 관리합니다. 주요 구성 요소는 다음과 같습니다:

  1. 프로세스 식별자 (Process ID): 각 프로세스를 고유하게 구분하는 ID입니다.
  2. 프로세서 상태 정보 (Processor State Information): CPU 레지스터, 프로그램 카운터, 스택 포인터 등이 포함되어 있습니다. 이는 프로세스가 언제든지 실행 상태로 돌아갈 수 있도록 문맥을 저장합니다.
  3. 프로세스 제어 정보 (Process Control Information): 프로세스 우선순위, 상태 정보, 메모리 관리 정보, 입출력 상태 등이 포함됩니다.
반응형

+ Recent posts