운영체제란 무엇인가
‘사용자가 컴퓨터를 쉽게 다룰 수 있게 해주는 인터페이스’
운영체제는 컴퓨터 하드웨어를 관리하는 소프트웨어이다.
좀 더 이해하기 쉽게 설명해보자.
운영체제는 소프트웨어로서, 다양한 사용자를 위해 다양한 응용 프로그램 간의 하드웨어 사용을 제어하고 조정하는 역할 을 한다. 운영체제는 그 자체로서 유용한 기능을 수행하지 못하며, 다른 프로그램들이 유용한 작업을 할 수 있는 환경을 제공할 뿐이다.
예를 들어, 아이패드를 켜면 전원이 들어와 장치를 깨우고 사용자의 명령에 따라 친구에게 문자를 보내고, 음악을 듣는 동작들을 관리하는 것들을 전부 운영체제라 할 수 있다. 그래 무슨 느낌인진 알겠는데, 정확히 운영체제가 뭔데? 라고 할 수도 있을 것 같다. 내가 그렇게 말하고 싶으니까. 명확하게 A라는 친구가 운영체제야. 라고 할 수 없을 것 같다. 우리가 사용하는 웹 브라우저, 컴퓨터, 마우스, 키보드 등 전자기기로서 사용자와 컴퓨터 시스템이 상호 작용하는 모든 것들은 운영체제가 존재한다. 운영체제는 중재자로서 사용자 입장에서는 하드웨어의 이용과 성능을 편리하게 해주고, 시스템 입장에서는 CPU, Memory, I/O 등의 자원을 관리하고 제어해주는 역할을 하는 것이다.
운영체제의 목적
운영체제의 목적은 처리 능력 향상, 사용 가능도 향상, 반환 시간 단축 등이 있다. 처리능력, 반환시간, 사용가능도, 신뢰도는 운영체제의 성능을 평가하는 기준이 된다.
- 처리능력(Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양
- 반환시간(Turn Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸진 시간
- 사용가능도(Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
- 신뢰도(Reliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도
운영체제 역할
- 사용자 인터페이스 제공 : 가장 일반적으로 그래픽 사용자 인터페이스(GUI)가 사용된다. 윈도우 환경에서 마우스로 화면을 선택하고 키보드로 I/O를 지시할 수 있다. 또 다른 옵션은 명령어 라인 인터페이스(CLI)이다. 특정 옵션이 정해진 특정 형식으로 명령어를 입력하여 폴더를 열거나, 텍스트 작성 등을 할 수 있다.
- 프로그램 수행 : 시스템은 프로그램을 메모리에 적재해 실행할 수 있어야 한다. 프로그램이 정상적이든, 비정상적이든 실행을 끝낼 수 있어야 한다.
- 입출력 연산 : 수행 중인 프로그램은 입출력을 요구할 수 있다. 특정 장치에 대해 특수한 기능(파일을 읽거나 쓰는 기능)이 요구될 수 있다. 효울과 보호를 위해, 사용자들이 입출력 장치를 직접 제어할 수 없으므로 운영체제가 입출력 수행의 수단을 제공해야 한다.
- 파일 시스템 조작 : 특히 중요한 분야이다. 프로그램을 읽고 쓰거나, 파일을 생성하고 삭제할 수 있고 지정된 파일을 찾을 수 있어야 하고 파일의 정보를 열거할 수 있어야 한다. 또한, 파일에 대한 접근을 허가하거나 거부할 수도 있어야 한다.
- 통신 : 한 프로세스가 다른 프로세스와 정보를 교환할 수 있다. 이러한 통신을 수행하는 두가지 방법이 있다. 첫 번째는 동일한 컴퓨터에서 수행되고 있는 프로세스들 사이에서 일어나고, 두 번째는 서로 다른 컴퓨터 시스템상에서 수행되는 프로세스들 사이에서 일어난다. 통신은 공유 메모리 또는 메시지 전달 기법을 사용하여 구현된다.
- 자원 할당 : 다수의 프로세스나 다수의 작업이 동시에 실행될 때, 그들 각각에 자원을 할당해 주어야 한다.
- 오류 탐지, 보호와 보안 등 다른 서비스도 제공한다.
참고
- 운영체제 공룡책
- https://goodmilktea.tistory.com/23
- https://ko.wikipedia.org/wiki/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C