티스토리 뷰

OS

2. 운영체제 시스템 구조

Jinhyy 2018. 11. 2. 16:04

 Ch.2 System Structures

운영체제가 사용자, 프로세스 등에 제공하는 서비스 / 운영체제를 구성하는 구조 

1. Operating-System Services, 운영체제가 하는 서비스

UI제공 : CLI(명령어 라인 인터페이스, ex) 리눅스), GUI(윈도우)

프로그램 수행(프로그램 메모리에 적재 후 실행) / 입출력 수단 제공 / 파일 시스템 조작 / 통신(공유 메모리, 메시지 전달), 오류 탐지, 자원 할당,관리 등을 기본적으로 서비스 해야한다.

2. System Calls

시스템 콜은 커널과 사용자 프로그램을 이어주는 인터페이스 역할을 한다. 좀 생소하게 느껴질 수도 있겠지만, 그냥 로우 레벨 작업을 하는 코드라고 생각하면 된다. 메모리의 특정 주소 범위에는 어떤 동작들이 할당되어 있다. 이것을 시스템 콜 테이블(System call table) ~= 인터럽트 벡터라고도 부른다.

3. Operating System Structure

현대 운영체제는 계층을 나눠서 시스템을 관리한다.

Simple Structure

과거에는 사실상 계층이 구분되어 있지 않았다. MS-DOS에서는 사용자 프로그램이 입출력 루틴에 접근해 디스플레이와 디스크 드라이브에 직접 쓰기를 할 수 있었다. 따라서 만약 사용자 프로그램에 문제가 생기면 전체 시스템에 문제가 생겼다. 전통적인 UNIX 시스템 구조는 MS-DOS에 비해 기능이 분리되었지만, 여전히 하나의 계층이 너무 많은 일을 했다.

Layered Approach

운영체제를 더 세분화해 계층을 분리한 것이 계층적 접근(Layered approach) 방식이다. 가장 아래에 있는 계층(레이어 0)은 하드웨어고, 가장 높은 계층(레이어 N)은 사용자 인터페이스다. 이 방식은 유지보수가 아주 편한데, 하나의 계층에만 신경쓰면 다른 계층에는 아무런 신경을 쓰지 않아도 되기 때문이다.

Microkernels

마이크로커널(Microkernel)은 커널에서 핵심적인 요소만 남긴 가벼운 커널을 말한다. 마이크로커널은 코드 양이 훨씬 적어 컴파일, 테스트 시간이 비교적 짧고, 다른 시스템에 이식(Porting)하기도 쉽다. 보통 통신과 최소한의 메모리 관리 프로세스역할만 수행한다. -> 기능이 간소,최소화 되어 확장성은 높은 구조이지만, 그만큼 시스템 오버헤드가 크다.

Modules

모듈은 커널을 확장하기 위한 기술로, OOP에서 말하는 그 모듈화와 같은 개념이다. 프로세스에 실시간으로 모듈을 붙여 작동시킬 수 있고, 각 기능들을 독립적으로 관리할 수 있어 효과적으로 시스템을 유지할 수 있다. 적재가능, Load-able한 구현방법으로, 리눅스,유닉스 등에서 많이 쓰이고 있다.

Hybrid Systems

스마트폰은 OS 구조의 최신판이라고 할 수 있다. 하이브리드 시스템은 커널의 핵심만 남기고 나머지는 따로 구현한 시스템이다. OS X의 경우 BSD가 핵심이지만 나머지는 모두 애플이 자체 구현했다. 안드로이드는 리눅스 커널 위에 자체 구현한 라이브러리를 올린 시스템이다.


요약.

운영체제는 시스템 콜등의 수단으로 App과 커널 사이의 원활한 요청을 돕고, 자원관리, 통신 등의 기본적인 인터페이스를 제공하는 역할을 한다.

'OS' 카테고리의 다른 글

6. 운영체제 프로세스 동기화  (0) 2018.11.02
5. 운영체제 CPU 스케줄링  (0) 2018.11.02
4. 운영체제 스레드  (0) 2018.11.02
3. 운영체제 프로세스  (0) 2018.11.02
1. 운영체제(Operating System: Concepts 9th) 1장 서론  (0) 2018.11.02
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함