[운영체제] 운영체제
운영체제
1)운영체제의 개념
- 자원의 관리와 보호, 사용자 인터페이스 제공, 하드웨어 인터페이스 제공 등을 하는 시스템 소프트웨어
2) 운영체제의 역할
- 자원 관리(효율성)
- 자원 보호(안정성)
- 하드웨어 인터페이스(디바이스 드라이버) 제공(확장성)
- 소프트웨어 인터페이스(GUI) 제공(편리성)
2. 운영체제의 구조
1) 커널과 인터페이스
(1) 커널
- 프로세스 관리, 메모리 관리, 저장 장치 관리 등 운영체제의 핵심기능을 모아놓은 것
(2) 인터페이스
- 커널에 사용자의 명령을 전달하고 실행결과를 사용자에게 다시 알려주는 역할
2) 시스템 호출과 디바이스 드라이버
(1) 시스템 호출(System call)
- 운영체제는 커널 모드와 사용자 모드로 나누어져 있음
- 커널 모드에서 자원에 접근하는 작업을 두고 사용자가 직접 자원에 접근하는 것을 막아 자원을 보호하기 위함
- 사용자가 파일을 읽어오거나 쓰거나 등의 커널 모드의 작업을 실행하기 위한 인터페이스
(2) 디바이스 드라이버
- 커널과 하드웨어의 인터페이스
- 많은 종류의 하드웨어가 존재하기 때문에 커널 안에 각 하드웨어에 맞는 프로그램을 모두 구현하기에는 무리가 있음
- 따라서, 커널 안에 각 하드웨어에 대한 프로그램을 구현하지 않고, 디바이스 드라이버를 사용해 하드웨어와 연결
3) 커널의 구성
(1) 단일형 구조 커널
- 커널의 핵심 기능을 구현하는 모듈을 구분없이 하나로 구성하여 운영체제를 구현하는 방식
- MS-DOS, VMS, 초기의 유닉스.
- 버그 처리, 상호 의존성, 이식성 등 여러가지 문제점이 있음
(2) 계층형 구조 커널
- 기능별로 모듈을 계층화하고 계층 간 통신을 통해 운영체제를 구현하는 방식
- MS의 윈도우 등 대부분 운영체제의 구현 방식
(3) 마이크로 구조 커널
- 프로세스 관리, 메모리 관리, IPC관리 등 기본적인 기능만 제공하고 다른 부분들은 사용자 영역에 맡기는 운영체제 구현 방식
- 사용자의 요구가 계속해서 늘어나 커널에 크기가 방대해짐에 따른 문제점으로 계층형 구조와 반대의 접근 방식
4) 가상머신
- 운영체제와 응용 프로그램 사이에서 작동하는 프로그램
- 응용프로그램이 모두 동일한 환경에서 작동하는 것처럼 만들어 운영체제와 상관없이 프로그램이 작동할 수 있도록 만들어줌
- 대표적으로 JVM이 있음