운영체제(Operating System)란 무엇인가?
운영체제란 소프트웨어와 하드웨어(CPU, I/O Device, SSD, HDD 등)간에 자원을 효율적으로 관리하여 사용자에게 편리한 환경을 제공하는 프로그램들을 말한다. 자원 할당자(Resource manager)라고도 불린다.
운영체제는 아래의 5가지 핵심을 따른다.
Abstraction : 중요한 부분 통합하여 하나로 제조
Sharing : 한정된 자원을 효율적으로 사용
Protection : 어떠한 문서를 비사용자가 접근/수정 하는것으로 부터 방지
Fairness : 특정 자원을 누군가 계속 소유하는걸 방지
Performance : 항상 최고의 성능을 우선시하여 자원 관리
운영체제의 2가지 구분
운영체제는 커널의 구조와 형태에 따라 2가지로 구분한다.
Monolithic Kernel (MS DOS, Unix)
하나의 커널 시스템 안에 모든 시스템 서비스를 구현한다. 어플리케이션 제외한 모든 시스템과 서비스를 커널이 직접 처리한다. 커널 내부수행을 직접 처리하여 속도가 빠르다는 장점이 있지만, 기능 추가시 전체 커널을 바꿔야하고, 하나의 오류가 전체 영향을 준다.
Micro Kernel (Mac OS, Window)
다양한 운영체제 서비스를 커널이 아닌 유저모드에서 처리한다. 핵심적인 서비스(Process 및 Memory management)는 커널단에 남겨두고, 가벼운 서비스는 개별적 작은 서버 형태로 만들어서 관리한다. 기능 추가가 쉽고 하나의 오류가 전체에 영향을 주지 않으므로 Monolithic Kernel의 단점을 보완해준다. 하지만, 커뮤니케이션에 오버헤드가 존재한다.
'CS > 운영체제' 카테고리의 다른 글
[운영체제 OS] Process vs Thread (2) | 2021.08.21 |
---|---|
[운영체제 OS] CPU Scheduling (0) | 2021.08.21 |
[운영체제 OS] Process Scheduler (0) | 2021.08.18 |
[운영체제 OS] Process / PCB / Context Switch (0) | 2021.08.18 |
[운영체제 OS] System Call (0) | 2021.08.18 |
댓글