본문 바로가기
운영체제

운영체제 Chatper 3 3-3 Process

by PlusUltraCode 2024. 6. 25.
 

운영체제의 실행방식 세 가지

1. Non-process Kernel

  • 설명: 운영체제 커널을 별개의 객체로 보는 방식이다.
    • OS Kernel은 별개의 엔티티로 시스템 내에서 실행되는 객체이다.
    • 운영체제가 작아서 메모리에 전체가 올라갈 수 있던 옛날 방식에 가능했다.
    • OS는 특별한 권한을 가지며, 별도의 관리 방식이 필요 없다.
  • 특징:
    • OS 전체가 메모리에 올라가 Virtual Memory를 사용할 필요가 없다.
    • 프로세스 관리 방식과 OS 커널 관리 방식이 다르다.

2. Execution Within User Processes

  • 설명: 운영체제를 사용자 프로세스 안에서 실행시키는 방식이다.
    • 중요한 OS 부분을 제외한 나머지 부분들이 프로세스 안에서 실행된다.
    • 모든 사용자 프로세스는 OS 코드와 데이터를 공유한다.
  • 특징:
    • 메모리가 한정적이기 때문에 PCB(Process Control Block) 정보가 필요하다.
    • OS는 커널 스택을 사용하여 실행된다.
    • 사용자 프로세스 안에 Shared Address Space가 있으며, 여기에는 OS 코드와 데이터가 포함되어 있다.
    • 프로세스 스위칭 없이 모드 스위칭만 발생하여 속도가 빠르다.
  • 프로그램 실행 시 변화:
    • 코드 변화 없음
    • 데이터 영역 값 변화 있음 (데이터 모양 자체의 크기 변화 없음)
    • 스택 변화 있음

3. Process-Based Operating System

  • 설명: 운영체제를 다른 프로세스처럼 별개의 프로세스로 관리한다.
    • OS도 다른 프로세스와 동일하게 관리된다.
    • 마이크로 커널을 제외한 나머지는 프로세스로 처리한다.
  • 특징:
    • CPU가 서로 다른 OS 기능을 동시에 실행할 수 있어 확장성이 좋다.
    • OS도 프로세스이므로 스위칭이 발생하며, 이는 속도를 느리게 한다.
    • OS 실행 중 다수의 스위칭 발생 가능성이 있다.

UNIX SVR4 Process Management

1. OS의 실행방식

  • Execution Within User Processes + Process-Based Operating System
    • 대부분의 OS 프로그램들은 사용자 프로세스 안에서 실행된다.

2. 프로세스들의 두 가지 카테고리

  • System Process
    • Swapper, init 등 별도의 프로세스로 OS 관리
    • 프로세스 트리 형성
  • User Process
    • 사용자 프로세스 안에서 OS 관리

프로세스 설명

  • 프로세스 이미지
    • 프로그램 코드, 데이터, 스택, PCB, 프로세스 ID, 상태 정보, 제어 정보
  • PCB 구분:
    • User Level Context
      • 프로그램 코드, 데이터, 사용자 스택, 공유 메모리
    • Register Context
      • 프로그램 카운터, 프로세서 상태 레지스터, 스택 포인터, 범용 레지스터
    • System Level Context
      • 커널 스택, 프로세스 ID, 제어 정보
  • 프로세스 상태
    • NewCreated
    • 메모리 충분Ready to run in memory
    • 메모리 불충분Ready to run swapped (Ready/Suspend)
    • ReadyRunning
    • 종료ExitZombie

프로세스 상태 모델

  • Blocked 상태:
    • I/O 작업 시 Asleep in Memory (Blocked) 상태
    • I/O 완료 시 ready to run swapped (Ready/Suspend) 상태로 이동 후, Swap in 되어 Ready to run in memory 상태로 이동
  • Running 상태:
    • User Running + Kernel Running
    • User Running: 사용자 모드
    • Kernel Running: 커널 모드
  • Ready 상태:
    • Ready to Run in Memory + Preempted
    • Preempted: 타임아웃 발생 시 이동
    • Ready to Run in Memory: 실행 준비 완료 상태
  • 스위칭:
    • Kernel RunningUser Running
    • User RunningInterrupt/System CallKernel Running

위 내용은 운영체제의 다양한 실행 방식과 UNIX SVR4 프로세스 관리에 대한 개요입니다. 각 방식의 특성과 UNIX에서의 프로세스 상태 전이를 통해 운영체제가 어떻게 동작하는지 이해할 수 있습니다

'운영체제' 카테고리의 다른 글

운영체제 Chatper 4 4-2 Thread  (1) 2024.07.18
운영체제 Chatper 4 4-1 Thread  (0) 2024.07.18
운영체제 Chapter 3-1 Process  (0) 2024.06.25
운영체제 Chapter3 3-2 Process  (0) 2024.06.25
운영체제 Chapter2 2-2  (0) 2024.06.23