본 글은 Youtube ‘HPC Lab. KOREATECH’의 "[Course] Operating System (CPA310)-운영체제 강의" 의 ppt 내용을 요약한 정리본 입니다.
강의 Instructor: Duksu Kim
(1) 운영체제 구분 — 작업 수행 방식
- Personal Computing
개인이 시스템 전체 독점, CPU 활용률(utilization)이 고려의 대상이 아님, OS가 상대적으로 단순함. 하지만, 다양한 사용자 지원 기능 지원
장점: 빠른 응답시간
단점: 성능이 낮음
2. Parallel Processing System
- 단일 시스템 내에서 둘 이상의 프로세서 사용
- 메모리 등의 자원 공유(Tightly-coupled system)
- 사용 목적: 성능 향상, 신뢰성 향상(하나가 고장나도 정상 동작 가능)
3. Distributed Processing Systems
- 네트워크를 기반으로 구축된 병렬처리 시스템(Loosely-coupled system)
- 물리적인 분산, 통신망 이용한 상호 연결
- 각각 운영체제 탑재한 다수의 범용 시스템으로 구성
- 사용자는 분산운영체제를 통해 하나의 프로그램, 자원처럼 사용 가능(은폐성, transparency)
- 각 구성 요소들간의 독립성유지, 공동작업 가능
- Cluster system(ex. super computer), client-server system, P2P 등
장점: 자원 공유를 통한 높은 성능, 고 신뢰성, 높은 확정성
단점: 구축 및 관리가 어려움
4. Real-time Systems
- 작업 처리에 제한 시간(deadline)을 갖는 시스템
- 작업(task)의 종류:
Hard real-time task(ex. 발전소 제어, 무기 제어 등), Soft real-time task(ex. 동영상 재생), Non real-time task
(2) 운영체제의 구조
- Kernel
- OS 의 핵심 부분(메모리 상주): 가장 빈번하게 사용되는 기능들 담당
2. Utility
- 비상주 프로그램
- UI등 서비스 프로그램
(( HW -Kernel-System calls-Utilities-applications ))
운영체제의 구조:
- 단일구조: 커널 내 모듈간 직접 통신, 커널의 거대화
- 계층 구조: 모듈화, 설계 및 구현의 단순화, 단일구조 대비 성능 저하
3. 마이크로 커널 구조: 커널의 크기 최소화(필수 기능만 포함), 기타 기능은 사용자 영역에서 수행
(3) 운영체제의 기능
- Process 관리:
커널에 등록된 실행 단위(실행 중인 프로그램)
사용자 요청/프로그램의 수행 주체(entity)
- Processor(CPU)관리
- Memory 관리
- File 관리
- 입출력(I/O)관리
- 보조 기억 장치 및 기타 주변장치 관리 등
(4) Process Management
- Job VS Process
Job: 실행 할 프로그램 + 데이터, 컴퓨터 시스템에 실행 요청 전의 상태
Process: 실행을 위해 커널에 등록된 작업, 시스템 성능 향상을 위해 커널에 의해 관리 됨, 실행 중인 프로그램, 각종 자원들을 할당 받을 수 있음.
커널은 프로세스에게 Resource를 할당/반납.
2. Process Control Block(PCB)
OS가 프로세스 관리에 필요한 정보 저장, 각 프로세스들에 대한 상태정보 저장
프로세스 생성 시, 커널에 생성 됨
관리하는 정보: PID, 스케쥴링 정보, 프로세스 상태, 메모리 관리 정보(Page table, segment table), 입출력 상태 정보, 문맥저장 영역, 계정 정보
- PCB는 OS별로 서로 다름. PCB 참조 및 갱신 속도는 OS의 성능을 결정 짓는 중요한 요소 중 하나.
3. Process States
- Created State: Job을 커널에 등록, PCB 할당 및 프로세스 생성, 가용 메모리 공간 체크 및 프로세스 상태 전이
- Ready State: 프로세서 외에 다른 모든 자원을 할당 받은 상태, 즉시 실행 가능 상태, Processor(CPU) 기다리다가 할당받으면 → running state
- Running State: 프로세서와 필요한 자원을 모두 할당 받은 상태, Preemption( →ready state), Block/sleep( →asleep state, I/O 등 자원 할당 요청)
- Blocked/Asleep State: 프로세서 외에 다른 자원을 기다리는 상태, 자원 할당은 system call에 의해 이루어 짐. ( → ready state)
- Suspended State: 메모리를 할당 받지 못한(빼앗긴) 상태, 커널 또는 사용자에 의해 발생, swap-out, swap-in, memory image를 swap device에 보관.
- Terminated/Zombie State: 프로세스 수행이 끝난 상태, 모든 자원 반납 후, 커널 내에 일부 PCB 정보만 남아 있는 상태
4. 프로세스 관리르 위한 자료구조
Ready Queue, I/O Queue, Device Queue
(5) Interrupt
예상치 못한, 외부에서 발생한 이벤트
프로세스 중단 (커널 개입) --> 인터럽트 처리 --> 1. Interrupt handling 2, Interrupt Service
인터럽트를 처리하는 프로세스를 커널에 넣어줘
6. Context Switching
커널의 개입으로 이루어져, PCB
Context: 프로세스와 관련된 정보들의 집합
불필요한 Context switching을 줄이는 것: thread 사용
(6) Thread Management
- Thread
프로세스는 자원을 할당받고 자원을 제어함.
Resource 제어 = Thread, 제어는 여러개 있을 수 있음.
같은 프로세스의 Thread들은 동일한 주소 공간 공유
Light Weight Process(LWP)
프로세서(CPU) 활용의 기본 단위
Thread가 여러개면 동시에 여러개의 CPU를 사용할 수 있음
제어 요소 외 코드, 데이터 및 자원들은 프로세스 내 다른 스레드들과 공유
전통적 프로세스 = 단일 스레드 프로세스
2. Thread의 장점
- Responsiveness
- Resource sharing
- Economy
- multi-processor 활용