- Operating System
- 공통적으로 합의된 Definition은 없음
- 컴퓨터 상에서 항상 실행되는 software
- Hardware와 유저 사이에서 실행되는 프로그램 (kernel)
- 전원이 켜질 때부터 bootstrap program에 의해서 실행되는 프로그램
- Kernel : 메모리에 상주하는 운영체제의 일부분
- Bootstrap program
- 전원을 공급했을 때 처음으로 실행되는 프로그램
- OS를 메모리에 Loading 해주는 역할
- History of Operating System (types -> issues)
- Single job at a time -> No kernel
- Batch system -> Resource (CPU, IO devices) utilization (Spooling)
- Multi-Programming system -> Resource (memory, CPU) utilization
- Time sharing system -> accessibility
- Network operating system -> communication and sharing
- Distributed operating system -> communication and sharing
- Cloud system -> platform, infrastructure
- Real-time operating system -> automation
- Spooling system
- Single job at a time system은 IO devices와 CPU가 동시에 작동하지 못함 (Uni-programming)
- Spooling system은 주변 장치들이 동시에 작동
- Disk로부터 입력과 출력, 입출력과 CPU의 프로세스 수행이 독립되어 있으므로 동시에 여러 개의 작업이 가능
- Multiprogramming system
- Time sharing system
- CPU time slot을 여러 개의 프로그램이 공유
- 사용자와 Interaction
- 다중 프로그래밍과 비슷하게 동시에 여러 프로그램을 실행하지만 Time sharing system은 여러 사용자가 동시에 컴퓨터를 공유한다는 점이 다름
- Hypervisor and Virtual Machine
- Hypervisor : Supervisor의 변형된 모습, 소프트웨어로 프로그램 실행 환경 제공, Hypervisor 위에서 Virtual machine이 실행 (e.g. Java virtual machine)
- Host machine : Hypervisor가 실행되는 Machine (Native (HW) 혹은 Hosted (HW + host)
- Virtual machine
- Guest machine 이라고도 부름
- Process 분리 기능 제공
- OS가 Host OS 와 달라도 됨
- Cloud Computing
- Combination of software and hardware
- 통신망을 통해서 Computing resource를 제공
- Cloud services
- SaaS : Software as a Service
- PaaS : Platform as a Service
- IaaS : Infrastructure as a Service
- STaaS : Storage as a Service
- Cloud platform
- AWS (Amazon Web Service)
- Azure (Microsoft)
- Google Cloud Platform (Google)
- Organization of Computer
- 명령어의 실행 : Fetch -> Decode -> Execute -> Fetch -> Decode …
- Computer system architecture
- Single-processor system
- Multi-processor system
- Clustered system
- 여러 대의 컴퓨터가 하나의 Storage area network를 공동으로 사용
- Symmetric vs Asymmetric Multiprocessing
- Symmetric : 모든 프로세서가 모든 작업을 한 OS 안에서 처리
- Asymmetric : CPU마다 기능과 Task가 다름
- Storage
- Main memory : CPU는 Main memory에서만 Instruction을 로드, 임시 저장 장치 (Volatile)
- Secondary storage : 영구 저장 장치 (Nonvolatile, e.g. SSD)
- Cache memory : 임시로 빠르게 접근할 수 있는 메모리
- I/O device controller/driver
- Device controller : HW (Board & card)
- Device driver : SW (program)
- I/O data transfer
- Input/Output Operation
- Polling
- I/O system이 끝났는지 CPU가 체크하는 것
- Interrupt-driven
- I/O 명령의 대기열이 끝나면 CPU에게 신호를 주는 것
- 프로그램이 Polling보다 복잡하지만 CPU가 기다리지 않아도 되므로 CPU의 활용도가 증가
- DMA (Direct Memory Access)
- CPU의 사이클을 Steal해서 메모리와 직접 데이터를 주고받음
- CPU가 I/O controller에 관여하지 않으므로 CPU의 활용도가 증가, 즉 I/O 속도 증가
'운영체제 (Operating Systems)' 카테고리의 다른 글
[OS] 2주 2차 : Introduction (0) | 2022.03.10 |
---|