득이공간

[운영체제] 1장. OS 소개 (2) 본문

CS/운영체제

[운영체제] 1장. OS 소개 (2)

쟁득 2024. 2. 7. 21:59
해당 게시물은 조진성 교수님의 '운영체제' 강의를 수강하며
학습한 내용을 개인적으로 정리한 글입니다.

📌 목차 - 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