2022-08-11
운영체제는 무엇일까?
운영체제는 무엇일까? 간단하게 정의, 역할, 구조에 대해 알아보자!
운영체제 정의
사용자에게 인터페이스(CLI, GUI)를 제공하고, 자원(시스템 자원)을 관리하는 소프트웨어
다.
운영체제 역할
- 자원 보호: 시스템 자원을 운영체제가 관리함으로서 프로세스의 악의적인 접근, 손상을 차단해
시스템 안전성과 보안성을 책임진다. 또 사용자가 시스템 자원을 직접 조작할 수 없게 하는데,
그 이유는 안정성 차원에서 휴먼 에러로 예상하지 못한 오류가 발생할 수 있기 때문이다. - 자원 관리: 프로세스가 시스템 자원에 접근할 수 있는 시간, 권한 등을 스케줄링해
자원이 공정하게 분배될 수 있도록 한다. - 인터페이스 제공: 사용자와 운영체제 간에 상호작용을 위해 CLI, GUI 또는
기본적인 하드웨어 드라이버, 시스템 콜을 제공한다.
마우스를 연결하면 따로 드라이버를 설치하지 않아도 사용할 수 있는 이유가
운영체제에서 기본적인 드라이버를 제공하기 때문이다. - 성능 향상: 운영체제는 소프트웨어이기 때문에, 업데이트를 통해 성능 향상이 가능하다.
운영체제 구조
- 커널: 자원 관리, 프로세스 통신(IPC) 등 운영체제의 핵심 기능을 포함하는 구성 요소다.
- 인터페이스
- 시스템 콜: 시스템 자원에 접근하기 위해 사용될 메서드가 제공되는 인터페이스다.
- 드라이버: 하드웨어의 인터페이스를 말하며 기본적인 드라이버를 제공한다.
사용자가 추가적인 드라이버 설치로 장치를 조작할 수 있다. 예로 로지텍 마우스 드라이버가 있다.
커널 구조
커널에 구조는 여러 형태로 나뉘어지는데 이는 아래와 같다.
- 단일형: 커널의 핵심 기능을 구현하는 모듈이 하나로 구성된 형태다.
모듈 간의 통신 비용이 적어 효율적이나, 오류 추적이 어렵고 이식성이 좋지 않다. - 계층형: 비슷한 모듈을 묶어 계층으로 관리 및 통신하는 방식이다.
분리되어 관리되므로 오류 추적 이식성이 용이하다. - 마이크로 구조: 비대해지는 모듈을 완화하기 위해 커널에 기본 핵심 기능만 제공한다.
시스템 콜, 파일 시스템 등의 모듈을 세분화해 사용자 영역에 구현하고 커널과 통신한다. 운영체제마다 다르지만 리눅스 커널이 마이크로 구조를 사용한다고 한다. - 가상 머신: 운영체제 위에 가상머신을 만들고 응용 프로그램이 동작하게 함으로서,
여러 운영체제에 호환성을 극복할 수 있게 한다. 예로 자바 가상 머신이 있다.