Abstraction
- 복잡성을 줄이기 위해 key features만 간추려 제공하는 것
- 하드웨어의 복잡성을 줄이고, 프로그래머가 하드웨어를 손쉽게 제어할 수 있도록 인터페이스를 제공하는 것
- ex) API (Application Programming Interfaces)
Typical System Structure
운영체제는 응용 프로그램이 하드웨어 리소스에 접근할 수 있도록 하는 Interface
메모리 관리, 프로세스 관리, 데이터 보안 등과 같은 컴퓨터 시스템의 주요 작업 수행
System Calls vs. Library Calls
[ call to printf() ] → [ printf() in the C library → write() in the C library ] → [ write() system call ]
Application C library Kernel
- System Calls
- 커널에 대한 Resource Access 요청
- application SW와 OS 사이의 인터페이스 제공
- Library Calls
- 프로그래밍 라이브러리에 정의된 함수 요청
Protection
- OS는 많은 종류의 application faults로 부터 시스템을 보호
Memory Protection
각 프로그램별로 메모리 공간 분리
- Base register와 Limit register를 사용하여 legal address의 범위 결정하고
- 프로그램이 메모리를 참조할 때마다 해당 프로그램의 base와 limit의 범위에 있는지를 확인
- 만약 범위를 벗어나서 trap (exception)에 걸리면 운영체제가 해당 프로그램을 kill
- Base register (= relocation register) - holds the smallest legal memory address (특정 프로그램이 사용하는 메모리의 시작 주소를 담음)
- Limit register - contains the size of the range (프로그램이 사용하는 메모리의 최대 크기를 담음)
Illusion
- 시스템이 가진 물리적 제약을 사용자가 느끼지 못하도록 운영체제가 속임수를 쓰는 것
- 마치 무한한 개수의 프로세서가 있는 것 처럼 : Time Sharing Multitasking
- 마치 매우 큰 메모리가 있는 것 처럼 : Virtual Memory
Coordination and Optimization
OS는 많은 작업들이 효율적으로 일어나도록 함
- Coordination
- 다수의 task, thread, user들이 존재할 때 그것들이 충돌을 일으키지 않게 조화롭게 작동할 수 있도록 함
- Optimization
- task, thread, user들의 성능이 저하되지 않도록 최적화 함
Concurrency와 Efficiency를 고려해야 함
- Concurrency
- Multitasking (Synchronization and scheduling)
- Multi-user support
- Multithreading
- Efficiency
- Overlapped I/O and Processing : I/O device와 CPU가 동시에 작동될 수 있음
- Effective storage management : Caching, paging, swapping
- Fast interrupt handling
References
- System calls vs. Library calls : https://coding-chobo.tistory.com/31
- Memory Protection : https://www.geeksforgeeks.org/memory-protection-in-operating-systems/
- Same Contents Blog : https://gofo-coding.tistory.com/entry/Fundamental-Concepts-of-OS#title-10
'Computer Science > Operating System' 카테고리의 다른 글
[운영체제] 프로세스와 스레드 꼬리 질문 (0) | 2024.06.11 |
---|---|
개발자 맥북 어떤 사양으로 사야할까? (1) | 2024.06.11 |
[OS] 2. History of Computers and Operating Systems (0) | 2024.05.09 |
[OS] 학부 과정 복습 (0) | 2024.05.08 |