본문 바로가기
CS/Operating System

[운영체제] 운영체제

by 테리는당근을좋아해 2020. 3. 30.

운영체제

1)운영체제의 개념

- 자원의 관리와 보호, 사용자 인터페이스 제공, 하드웨어 인터페이스 제공 등을 하는 시스템 소프트웨어

 

 

2) 운영체제의 역할

- 자원 관리(효율성)

- 자원 보호(안정성)

- 하드웨어 인터페이스(디바이스 드라이버) 제공(확장성)

- 소프트웨어 인터페이스(GUI) 제공(편리성)

 

 

2. 운영체제의 구조

1) 커널과 인터페이스

(1) 커널

- 프로세스 관리, 메모리 관리, 저장 장치 관리 등 운영체제의 핵심기능을 모아놓은 것

 

(2) 인터페이스

- 커널에 사용자의 명령을 전달하고 실행결과를 사용자에게 다시 알려주는 역할

 

2) 시스템 호출과 디바이스 드라이버

(1) 시스템 호출(System call)

- 운영체제는 커널 모드와 사용자 모드로 나누어져 있음

- 커널 모드에서 자원에 접근하는 작업을 두고 사용자가 직접 자원에 접근하는 것을 막아 자원을 보호하기 위함

- 사용자가 파일을 읽어오거나 쓰거나 등의 커널 모드의 작업을 실행하기 위한 인터페이스

 

(2) 디바이스 드라이버

- 커널과 하드웨어의 인터페이스

- 많은 종류의 하드웨어가 존재하기 때문에 커널 안에 각 하드웨어에 맞는 프로그램을 모두 구현하기에는 무리가 있음

- 따라서, 커널 안에 각 하드웨어에 대한 프로그램을 구현하지 않고, 디바이스 드라이버를 사용해 하드웨어와 연결

 

3) 커널의 구성

(1) 단일형 구조 커널

- 커널의 핵심 기능을 구현하는 모듈을 구분없이 하나로 구성하여 운영체제를 구현하는 방식

- MS-DOS, VMS, 초기의 유닉스.

- 버그 처리, 상호 의존성, 이식성 등 여러가지 문제점이 있음

 

(2) 계층형 구조 커널

- 기능별로 모듈을 계층화하고 계층 간 통신을 통해 운영체제를 구현하는 방식

- MS의 윈도우 등 대부분 운영체제의 구현 방식

 

(3) 마이크로 구조 커널

- 프로세스 관리, 메모리 관리, IPC관리 등 기본적인 기능만 제공하고 다른 부분들은 사용자 영역에 맡기는 운영체제 구현 방식

- 사용자의 요구가 계속해서 늘어나 커널에 크기가 방대해짐에 따른 문제점으로 계층형 구조와 반대의 접근 방식

 

 

4) 가상머신

- 운영체제와 응용 프로그램 사이에서 작동하는 프로그램

- 응용프로그램이 모두 동일한 환경에서 작동하는 것처럼 만들어 운영체제와 상관없이 프로그램이 작동할 수 있도록 만들어줌

- 대표적으로 JVM이 있음

 

댓글