운영체제의 실행방식 세 가지
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, 제어 정보
- User Level Context
- 프로세스 상태
- New → Created
- 메모리 충분 → Ready to run in memory
- 메모리 불충분 → Ready to run swapped (Ready/Suspend)
- Ready → Running
- 종료 → Exit → Zombie
프로세스 상태 모델
- 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 Running → User Running
- User Running → Interrupt/System Call → Kernel 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 |