<운영체제에서 제공하는 서비스>
CPU <-> Memory <-> Disk & I/O device
1) 유저 인터페이스(User Interface)
- GUI(Graphical User Interface) : 그래픽 기반의 유저 인터페이스(흔히 마우스, 키보드로 입력하여 수행사항을 보여줌). 화면의 여러 그래픽(UI)들과 상호작용하여 명령을 전달합니다. 대부분의 PC 사용자들은 GUI를 통해 상호작용합니다.
- CLI(Command Line Interface) : 운영체제 대부분이 CLI를 프로세스가 시작하거나 사용자가 처음 로그온할 때 수행되는 특수 프로그램으로 취급. CLI 명령어 해석기는 Shell이라고 불립니다. 주로 시스템 관리자 및 시스템에 자세한 정보를 알고 있는 경우는 CLI를 통해 상호작용합니다.
- CLI가 사용자의 명령을 가져와서 실행하는 방식에는 두가지가 있습니다.
- CLI 자체가 실행할 코드를 가지고 있음
- 시스템 프로그램(.sh 형식의 파일 등)에 의해 대부분의 명령을 구현
- CLI가 사용자의 명령을 가져와서 실행하는 방식에는 두가지가 있습니다.
- 터치스크린 : 모바일 기기에 사용합니다.
2) 프로그램 실행 : 시스템은 프로그램을 메모리에 적재, 실행, 종료하도록 합니다.
3) I/O 수행
4) 파일 시스템 조작 : 파일, 디렉토리 읽기/쓰기/생성/삭제 지원합니다.
5) 통신 : 컴퓨터 시스템의 프로세스 사이의 통신을 가능하게 합니다.
6) 리소스 할당
- CPU 스케쥴링 : 작업이 빠른 프로그램한테 CPU를 할당하는 등 효율적인 처리를 할 수 있게 해줍니다.
- 페이지 교체 알고리즘 : 디스크에서 메모리를 읽어와서 메모리에 넣어야 할 때, 메모리가 가득 차있다면, 사용 횟수가 많은 데이터를 남기고 적은건 빼는 등의 재사용의 가능성이 높은 메모리를 남깁니다.
7) 로깅 : 어떤 프로그램이 어떤 종류의 자원을 얼마나 많이 사용했는지 추적합니다.
8) 보호와 보안
<운영체제 구조>
1) 계층적 접근
: 운영체제를 여러 개의 층으로 나눕니다(최하위 층은 하드웨어, 최상위 층은 인터페이스). 운영체제 층은 자료구조와 상위층에서 호출할 수 있는 루틴의 집합으로 구성되며, 하위층에 대한 연산을 호출할 수 있습니다.
- 장점 : 하위 층이 디버깅된 후에 오류가 없다고 가정하기 때문에, 상위 층 구현, 디버깅이 간단합니다.
- 단점 : 계층을 적절하게 나누기 어렵고, 오버헤드가 큽니다.
2) 모놀리식 구조
: 커널의 모든 기능을 단일 주소 공간에서 실행되는 단일 정적 이진 파일을 넣는 구조입니다.
- 장점 : 시스템 콜 인터페이스에서 오버헤드가 거의 없고, 커널 안에서도 통신 속도가 빠릅니다.
- 단점 : 많은 기능들을 한 주소 공간에 넣기 때문에 구현 및 확장이 어려워집니다.
3) 마이크로 커널
: 모든 중요하지 않은 구성 요소들을 커널로부터 제고하고, 그 구성 요소들을 별도의 주소 공간에 존재하는 사용자 수준 프로그램으로 구현하는 구조
- 장점 : 운영체제의 확장이 쉽고 다른 하드웨어로의 이식이 쉬우며 보안성과 신뢰성이 높습니다.
- 단점 : 통신을 위한 별도의 주소 공간이 필요하고, 메시지 복사 및 프로세스 전환으로 인한 오버헤드로 성능이 나쁩니다.
4) 모듈
: 커널이 핵심적인 구성 요소의 집합을 가지고, 부팅 및 실행 중에 다른 서비스를 제공할 모듈과 링크(동적으로 구현)하는 구조입니다.
'[Computer Science] > [운영체제(OS)]' 카테고리의 다른 글
[운영체제(OS)] 3-1) 프로세스의 개념과 PCB(Process Control Block) (0) | 2023.01.09 |
---|---|
[운영체제(OS)] 2-2) 커널(Kernel)과 시스템 콜(System Call) (0) | 2023.01.04 |
[운영체제(OS)] 1-2) 부팅 매커니즘과 인터럽트(interrupt) (0) | 2023.01.03 |
[운영체제(OS)] 1-1) 컴퓨터 시스템 기본 구성 (0) | 2023.01.02 |
[운영체제(OS)] 1. 운영체제 개요 키워드 (0) | 2023.01.02 |