운영체제의 구조
목차
01. 운영체제의 개요
02. 컴퓨터의 구조와 성능 향상
03. 프로세스와 스레드
04. CPU 스케줄링
05. 프로세스 동기화
06. 교착 상태
07. 물리 메모리 관리
08. 가상 메모리의 기초
09. 가상 메모리 관리
10. 입출력 시스템과 저장장치
11. 파일 시스템
12. 네트워크와 분산 시스템
운영체제의 구조
커널과 인터페이스
커널은 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것이다.
커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할을 하는 인터페이스가 존재한다.
인터페이스는 사용자와 응용 프로그램에 인접하여 커널에 명령을 전달하고 실행 결과를 사용자와 응용 프로그램에 돌려주는 역할을 한다.
커널은 운영체제의 핵심 기능을 모아놓은 것이다.
시스템 호출과 디바이스 드라이버
시스템호출은 커널이 자신을 보호하기 위해 만든 인터페이스이다.
커널은 사용자가 응용프로그램으로부터 자원을 보호하기 위해 직접 접근하는 것을 차단한다.
따라서 자원을 이용하려면 시스템 호출이라는 인터페이스를 이용하여 접근한다.
직접접근 : 두 응용프로그램이 자기 마음에 드는 위치에 데이터를 저장하려 한다. 이때 다른 사람의 데이터를 지울 수도 있고 내 데이터가 다른 사람에 의해 지워질 수도 있다.
시스템 호출을 통한 접근 : 커널이 write()라는 함수를 이용해 데이터 저장을 요청하고 자신이 저장한 데이터를 읽고 싶으면 read() 함수로 이용해 가져오면 된다. 이 방식은 커널이 모든 작업을 하기 때문에 컴퓨터 자원을 관리하기가 수월하다.
커널과 하드웨어의 인터페이스는 드라이버가 담당하게 된다. 가가 하드웨어마다 특징 다르기 때문에 실행이 되지 않을 수 있는데 이를 실행시키기 위해 만든 것이 디바이스 드라이버라고 불리운다.
커널의 구성
커널이 하는 일
핵심기능 | 설명 |
프로세스 관리 | 프로세서에 CPU를 배분하고 작업에 필요한 제반 환경을 제공한다. |
메모리 관리 | 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간을 제공한다. |
파일 시스템 관리 | 데이터를 저장하고 접근할 수 있는 인터페이스를 제공한다. |
입출력 관리 | 필요한 입력과 출력 서비스를 제공한다. |
프로세스 간 통신관리 | 공동 작업을 위한 각 프로세스 간 통신 환경을 지원한다. |
커널은 이런 기능들을 어떻게 구분하냐에 따라 단일형 구조 커널, 계층형 구조 커널, 마이크로 구조 커널로 구분된다.
단일형 구조 커널
초창기 운영체제구조이다.
모듈이 분리되어 있지 않아 통신 비용이 적다.
단점으로는 모듈이 한묶음으로 되어있어 오류 찾기가 어렵고 상호 의존성이 높아 조금이라도 결함이 있으면 전체로 퍼진다.
마지막으로 현대의 운영체제에서는 복잡하기 때문에 구현하기 어렵다.
계층형 구조 커널
비슷한 기능을 가진 모듈들을 묶어 구현했다.
예를들어 입출력 관리자, 메모리 관리자, 프로세스 관리자와 같은...
마이크로 구조 커널
계층형 구조의 접근 방식과 반대로 개발된 커널이 마이크로 구조 커널이다.
메모리 관리와 프로세서간의 동기화 서비스를 제공하며, 메모리 관리자와 동기화 모듈은 프로세스 간 통신 모듈로 연결되어 있다.
각 모듈은 세분화 되었고 프로세스 간 통신으로 정보교환을 한다.
각 모듈은 독립적으로 작동하기에 하나가 실패해도 전체가 멈추지 않는다.
가상 머신
운영체제와 응용 프로그램 사이에서 작동하는 프로그램을 가상머신이라고 한다.
ex) 윈도우에서 유닉스를 사용하고 싶을 때 유닉스 가상머신을 이용해 유닉스를 사용, 자바 가상머신(JVM)
'Operating System' 카테고리의 다른 글
CPU와 메모리 (0) | 2022.03.29 |
---|---|
컴퓨터의 기본 구성 (0) | 2022.03.28 |
운영체제의 역사 (0) | 2022.03.27 |
운영체제 소개 (0) | 2022.03.27 |
운영체제 (feat. 쉽게 배우는 운영체제) (0) | 2022.03.27 |