득이공간
[운영체제] 1장. OS 소개 (2) 본문
해당 게시물은 조진성 교수님의 '운영체제' 강의를 수강하며
학습한 내용을 개인적으로 정리한 글입니다.
📌 목차 - 1장. OS 소개
1-1. Introduction (1)
1-2. Operating System Structures (2)
📌 1-2. Operating System Structures
* Services
- program execution
- I/O operations
- file systems
- communication
- resource allocation
- accounting
- error detection
- protection and security
* User Interfaces
- GUI (Graphic User Interface)
- batch
- command line (CLI)
* Operating System = Kernel + System Programs
* System programs
- Provide a convenient environment for program development and execution
- File manipulation
- Status information sometimes stored in a file modification
- Programming language support
- Program loading and execution : Linker and loader
- Communications
- Background services
- Cf) Application programs
* program execution process
1. compiler : .c => .o
2. linker : .o + .o + .lib => .exe
3. loader : .exe => in memory
* Linkers and loaders
- Static(성능 효율적) vs. Dynamic linking(default, 메모리 효율적)
- .dll (Dynamically Linked Library) in Windows
- .sa & .so (shared library) in Linux
* System Call Service
- Cf) Function call : user mode / httpd:read() => trap handler => kernel mdoe / read() kernel routine
- Example of standard API
- Handling in OS : system call 은 function 형식이고 600몇십개가 존재한다. trap 또는 interrupt 발생 시 호출한 번호의 system call을 수행하게 된다.
- Parameter passing : program과 kernel 사이에서 passing은 register를 통해서 이루어진다. ex. user program => register => operating system
- Standard C library example : user mode / printf() => kernel mode / write()
- Examples of Windows and Unix system calls : system call이 서로 호환이 안된다.
* Monolithic Kernel
- 운영체제의 모든 기능이 한데 뭉퉁그려져서 개발되어 있는 커널. Integrated Kernel
- Function calls
- Unixware, Solaris, AIX, HP-UX, Linux, etc.
- 문제점 : SW engineering issue, maintenance가 힘들다.
* Micro Kernel
- 꼭 있어야 하는 기능만 작게 개발되어 있는 커널. Real-Time OS
- Multiple servers
- Message passing
- Mach, Chorus, Linux mk, etc.
* Simple structure
- MS-DOS
* Monolithic structure
- Traditional Unix
* Microkernel structure
- CPU scheduling, IPC(Interprocess Communication), memory management
* Modular approach
- Monolithic kernel과 Microkernel의 중간 지점.
* Hybrid approach
- Microkernel 기반, application environments and services
- Mac OS X
- iOS
- Android : Android가 제공하는 system call만 알아도 개발 가능.
* Operating System
- CPU(Process Management), memory, I/O device 관리를 한다.
- Process Management(scheduler, IPC, synchronization), Memory Management, I/O Management, File System Management, Protection, Hardware Control (Interrupt handling, etc.)
- Application이 HW를 모르고도 쉽게 프로그래밍할 수 있는 System Call Interface를 제공한다.
- Application이 실행되는 CPU mode는 User mode이고 Operating System이 실행되는 CPU mode는 Kernel mode이다.
- Application이 Operating System에게 Trap(SW Interrupt)이라는 service를 요청한다.
* Summary - OS: Manages computer HW resources
> CPU management
- Processes
- Threads & Concurrency
- CPU Scheduling
- Synchronization Tools
- Synchronization Examples
- Deadlocks
> Memory management
- Main Memory
- Virtual Memory
> I/O management
- Mass-Storage Structure
- I/O Systems
- File-System Interface
- File-System Implementation
- File-System Internals
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 4장. I/O Device 관리 (1) | 2024.02.24 |
---|---|
[운영체제] 3장. Memory 관리 (1) | 2024.02.24 |
[운영체제] 2장. CPU 관리 (0) | 2024.02.07 |
[운영체제] 1장. OS 소개 (1) (2) | 2024.02.04 |