[운영체제의 기초] Evolution of OS (2)
이 포스트는 SNU에서 제공하는 운영체제의 기초 강의를 개인 학습용으로 정리한 포스트입니다
강의 목표
- 사용자를 위한 연결된 멀티미디어 서비스를 제공하는 OS의 특징을 익힌다
Phase3 : 90년대 중반 ~ 현재
인터넷이 선택이 아닌 필수로 변하였다
개인용 PC의 커다란 성능의 향상을 이루었다
멀티미디어 제공이 과거보다 매우 중요하여짐
Downloading과 Streaming
Downloading은 전체 데이터를 확보한 다음에 작업을 실행할 수 있음
Streaming은 일부 데이터만을 확보하여도 작업을 실행할 수 있음
스케줄링 방식의 변화
중요한 일을 먼저 처리해주는 우선순위 기반 스케줄링에서 Continuous Media를 원활하게 처리하기 위한 Bandwidth 스케줄링으로 변화
: proportional share scheduling, fair share scheduling
Function of OS
현대 OS의 특징
1. Large
- 10M's of lines of code(1000만 라인의 코드)
2. Complex
- 비동기적 동작(Asynchronous behaviors)
- 다원적인 하드웨어(Hardware idiosyncrasies)
- 서로 다른 사용자의 요구와 성능 목표
3. Poorly understood
- 시스템의 수명이 빌더보다 길다
- 완전히 디버그 하기 매우 복잡하다
- 동작을 예측하기 어렵다
- 추측을 통해 튜닝이 이뤄진다
OS의 기능
1. Coordinate
- 효율적이고 공정하게 협력하도록 허용
2. Illusion Generate
- 깨끗하고 높은 수준의 인터페이스를 하드웨어로 내보냄
3. Standard Library
- 모두가 필요로 하는 표준 기능을 제공
Coordinator로서의 OS
OS가 Coordinate 하는 장치
- CPU Scheduler
- I/O System
- Memory Management System
- Files System
- Network System
Q. Network System은 I/O System의 일종이라고 볼 수 있는데 분리된 이유는?
Char I/O Device
- I/O의 단위가 Bytes인 장치
Block I/O Device
- I/O의 단위가 Block인 장치
- I/O 관리에 따라 성능에 큰 영향을 미칠 수 있음
Network I/O Device
- Network를 제어하는 장치(예 : 소켓)
네트워크 만의 고유한 특징을 관리해 주기 위해 네트워크 시스템의 분리가 이루어짐
Q. Files System과 I/O System의 차이는?
File System은 Disk Drive를 관리하는 I/O 시스템으로 Memory Hierachy를 가지고 있다.
Hard Disk Drive > Memory > Cache 와 같이 CPU와 가까울 수록 읽기 속도의 차이가 나타나는 것을 Memory Hierachy 라고 한다.
성능에 민감한 OS의 여러가지 기능이 Block I/O를 위해 존재하고 이런 것들을 모아놓은 것이 Files System이다.
I/O System은 주로 Char I/O를 처리하는 주요 기능들을 관장한다
Illusion Generator로서의 OS
하드웨어의 복잡성을 비교적 단순하게 접근할 수 있도록 추상화한 추상 레이어를 제공
Abstraction의 실패
Time-Sharing 시스템에서의 Thrashing
사용자의 수가 어떤 임계점을 넘어서는 순간 응답 시간이 급격히 증가하는 현상