[운영체제] 2장: Operating System Overview
Operating System
- 역할
- 애플리케이션의 수행을 제어한다. (실행 속도와 정확성을 위해서)
- 애플리케이션과 하드웨어 사이의 인터페이스
- 프로그래머에게 하드웨어의 디테일을 숨기고 시스템을 편리하게 사용할 수 있도록 인터페이스를 제공한다.
- 기능
- Program development
- Program execution
- Access I/O devices
- Controlled access to files
- System access
- Error detection and response
- Accounting: 자원 사용 통계 수집, 성능 척도 모니터링 등
- 자원 관리자로서의 OS
- I/O, 메인 메모리, 보조 기억 장치, 프로세서 실행 시간 등의 자원을 관리한다.
- Kernel: OS 프로그램 중 항상 메인 메모리 상에 위치하는 기능 (가장 자주 사용되는 기능들이 모여 있다.)
Evolution of Operating Systems
- Serial Processing: 사용자가 각 프로그램을 순차적으로 직접 처리해야 한다.
- Simple Batch Systems: 여러 프로그램들이 자동적으로 순차 처리된다.
- 프로세스 전환이 불가하여 프로세서의 대기 시간(I/O 작업 등에 의한)이 증가한다. 비효율적!
- Multiprogrammed Batch System: 프로세스 전환이 가능하다.
- 한 프로세스의 I/O 작업이 진행되는 동안 프로세서가 다른 프로그램을 실행한다.
- 만약 프로세스 내에 I/O 작업이 없다면 프로세스 전환이 이루어지지 않을 수 있다. (프로세서는 I/O 작업의 유무를 미리 알지 못한다.)
- 프로세서의 사용을 최대화하는 것이 목적이다.
- 타임 아웃이 사용되지 않는다.
- Time Sharing System
- 각 프로그램을 일정한 타임 슬라이스 단위로 번갈아 가면서 실행한다.
- 프로세서의 시간을 여러 프로그램들이 공유한다.
- 응답 시간을 최소화하는 것이 목적이다.
- 프로세스 전환에 OS가 필요하므로 불필요한 OS 개입이 많아진다.
- Time Sharing System → Multiprogrammed Batch System (역 X)
Major Achievements
- Processes
- Memory management
- Information protection and security
- Scheduling and resource management
Modern Operating Systems
- Microkernel architecture: OS의 핵심 기능만 커널에 포함시킨 것
- 프로그램 스위칭이 자주 일어나기 때문에 시스템 성능이 향상되거나 프로그램 실행 속도가 빨라지는 것은 아니다.
- 커널에 포함되지 않은 나머지 기능들이 모듈화되면서 OS 개발이나 보수가 용이하게 된다. (확장성 향상)
- 예) Windows
- Multithreading: 한 프로세스에서 동시에 실행될 수 있는 쓰레드들을 동시에 실행하는 것
- Symmetric Multiprocessing: 여러 개의 프로세서를 가지고 있어 여러 프로세스를 동시에 실행할 수 있는 시스템
- 여러 프로세서가 동시에 접근할 수 없는 데이터에 대해 순차적으로 작업하게 하는 Conference control 이 이루어지면서 실행 속도가 감소한다.
- Distributed operating systems
- 여러 컴퓨터 시스템들이 네트워크로 연결되어 하나의 시스템인 것처럼 작동한다. (2단계로 이루어진 OS)
- Object-oriented design
- 모듈화 → 개발 용이
- 실행 속도 향상과 연관이 없다.