운영체제는 커널과 유틸리티 2개의 구조로 되어있다.
커널(Kernel) : OS의 핵심 부분으로 가장 빈번하게 사용되는 기능들을 담당하기에 메모리에 상주되어있다.
유틸리티(Utility) : 비상주 프로그램으로 UI등의 서비스 프로그램을 뜻한다.
👀 단일구조
단일 구조일 경우 커널이 거대해지고 오류와 버그, 추가 기능 구현 등의 유지보수가 어렵다. 또한 동일 메모리에 모든 기능이 있어 한 모듈의 문제가 전체 시스템에 영향을 줄 수 있다. 예를 들어서 메모리 관리자 모듈에 악성코드가 있다고 한다면 나머지 모듈들에도 악성코드가 접근 가능하다.
👀 계층구조
이렇게 모듈별로 계층을 두어 유지보수가 쉽고 설계를 단순화한다. 그러나 하나의 모듈에 접근하기 위해 여러 모듈을 거쳐 접근해야한다.
운영체제의 기능
1️⃣ 프로세스(Process) 관리
프로세스를 생성/삭제하고 상태를 관리하게하고 프로세스에게 자원을 할당하며 프로세스간의 통신 및 동기화를 담당하고 있다. 또한 프로세스의 정보를 관리하기 위해 PCB(Process Control Block)을 가지고 있다.
2️⃣ 프로세서(Processor) 관리
프로세스들에 대해 프로세서를 할당해야하는데 프로세서 하나당 하나의 프로세스만이 사용가능하다. 이러한 할당을 관리한다. 즉 프로세서의 할당의 순서에 따라서 프로세스의 처리 순서가 결정되고 즉 프로세스의 스테줄링이 이루어진다.
3️⃣ 메모리 관리
메모리 여유 공간을 관리하고 프로세스에 대한 메모리를 할당하고 회수한다. 메모리 할당 방법으로는 전체 적재와 일부 적재가 있다.
4️⃣ 파일 관리
파일이란 논리적 데이터 저장 단위로써 운영체제는 사용자와 시스템의 파일을 관리한다.
5️⃣ 입출력(I/O) 관리
입출력은 과정은 OS를 반드시 거쳐야 한다.
참고 자료
www.youtube.com/watch?v=hzXVQIlSSos&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=3
www.youtube.com/watch?v=knF9lzHA3LI&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=4
'OS' 카테고리의 다른 글
프로세스 스케줄링이 뭘까❓ (0) | 2021.01.04 |
---|---|
스레드에 대해 알아보자 (0) | 2021.01.03 |
인터럽트를 알아보자 (0) | 2020.12.31 |
운영체제가 프로세스를 어떻게 관리할까❓ (0) | 2020.12.31 |
운영체제를 본격적으로 들어가기 전에 - 컴퓨터 시스템 개요 (0) | 2020.12.30 |