▶ 시스템 프로그램
: 프로그램의 개발과 실행을 위해 편리한 환경을 제공해주는 것. 개발자 눈에 보이는 것들 (System Calls은 눈에 보이지 않는 것들이다.)
▶ 시스템 프로그램 (1) - File Management
: Create, Delete, Copy, Rename, Print, Dump, List
▶ 시스템 프로그램 (2) - Status Information
: 상태의 정보, 시스템 시간, 날짜, 메모리 여유 공간, 사용자 수 등에 대한 정보, 출력을 위해 내보내는 Format, Print 등
시스템 구성 정보를 registry에 저장.
▶ 시스템 프로그램 (3) - File Modification
: 파일 수정과 관련된 기능이다. Text editors, Search Contents of Files, Programming Lauguege Support (Compilers, assemblers, debuggers, interpreters), Program loading and Execution, relocatable loaders, linkage editors(라이브러리 내부와 연결), Overlay-loaders(작동이 끝난 작업과 시작해야하는 작업을 loader)
- Communications : email, log in remotely, trasfer files
▶ 운영 체제 설계와 구현
- 목표와 구조를 정의하는 과정으로 시작된다.
- 하드웨어, system type을 선택하는 것에 영향을 받는다.
- 목표
- 사용자 목표 : 사용하기 편리, 배우기 쉬워야 하고 신뢰성과 안전이 높아야 하며 빨라야 한다.
- 시스템 목표 : 디자인과 구현 및 관리가 쉬워야 한다. 신뢰도가 높아야 하며 에러 없이 효율적이어야 한다.
- 정책과 기술적 요소가 분리되어야 독립적으로 관리가 용이하다.
▶ 운영 체제의 간단한 구조
MS-DOS는 메모리가 굉장히 작아(64KB) 제약사항이 많았다.
원래 I/O를 이용하여 사용하면 Application Program → Resident System Program → MS-DOS device drivers → ROM BIOS device drivers(하드웨어) 순으로 진행되는 것이 맞다. 하지만 메모리의 영향으로 인해 다른 Path가 존재했었다. 따라서, 기능 분리가 제대로 이루어지지 않았었다.
▶ 한 단계 발전한 구조
여러 Layer로 운영 체제의 기능을 모두 분리. 각 Layer 층은 하위 Layer의 정보를 종합적으로 이용하여 해야하는 기능을 수행한다. 즉, 상위 Layer의 정보는 알 수 없다.
▶ Unix
Unix는 크게 2파트로 나누어 볼 수 있다.
- Kernel : 위 사진에서 보이는 것처럼 Kernel에 너무 많은 기능이 포함되어 있는 것이 단점이다.
- System Programs
▶ MicroKernel System Structure : 조금 더 발전한 형태의 구조
- 핵심적인 기능만 갖도록 Kernel 경량화
- 핵심적인 기능만 남기고 다른 기능들은 모듈화하여 Message Passing 방법으로 통신한다.
- 장점
- Microkernel 기능 확장하기 용이
- 새로운 컴퓨터 시스템에 설치하기 쉬움, 오류 가능성도 낮고 경량화 되었기 때문
- 신뢰성이 더 높아지고 안정성이 올라감
- 단점
- 통신의 수가 늘어나 Message Passing Header 수가 커질 수 있다.
▶ Modules
- 대부분 운영체제 시스템은 kernel modules로 구현되어 있다.
- Layerd도 kernel modules로 구성되어 있지만 MicroKernel이 좀 더 유연하게 확장 가능하다.
▶ Virtual Machines
- CPU 스케줄링을 통해 자원을 배분하여 가상 머신의 성능을 할당한다.
- Spooling and a file system을 이용하여 각자 입출력 장치가 있는 것처럼 사용한다. (하드 디스크도)
- Operator's console도 존재
- 가상 머신을 이용하여 시스템 자원을 보호할 수 있고 분리를 확실하게 할 수 있다.
▶ 대표적인 Virtual Machine의 VMware Architecture
- Host Operating System(Linux)가 존재하고 그 위에 가상 머신의 운영 체제가 3개 존재
- 호환성이 좋은 Java Virtual Machine
▶ Operating System Generation (설치)
- SYSGEN program이 하드웨어의 각 정보를 종합한다.
- Booting(Bootstrap Program/Bootstarp loader -ROM) 과정 진행
▶ System Boot
- 크게 두 가지 단계로 진행
- 첫 번째는 Bootstrap을 loader를 찾는다.
- 두 번째는 Bootstarp을 실행한다.
'CS > OS' 카테고리의 다른 글
[OS] Process (2) : 프로세스 (0) | 2023.04.04 |
---|---|
[OS] Process (1) : 프로세스 (0) | 2023.03.28 |
[OS] - OS Structure(1) : System Call (4) | 2023.03.18 |
[OS] - OS 소개(2) : OS 구조 및 기능 (0) | 2023.03.12 |
[OS] - OS 소개(1) : 컴퓨터 구성, I/O Structure (0) | 2023.03.09 |