운영체제는 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어입니다.
운영체제의 역할과 목표
1. 자원관리 : 우리는 컴퓨터로 음악을 듣고, 문서를 작성하고, 인터넷을 둘러보지요. 이때 키보드, 네트워크 카드, 사운드 카드등의 컴퓨터 자원을 사용하는데, 운영체제는 이러한 자원을 응용프로그램에 나누어 주어 사용자가 원활하게 작업할 수 있도록 돕습니다. [효율성 - 같은 자원을 관리해도 적은 자원으로 효율적으로 관리해야한다]
2. 자원보호 : 악의적인 사용자나 미숙한 사용자로부터 자원을 보호합니다. 예컨대 어떤 응용 프로그램이 남의 영역을 침범한다면 다른 사람의 데이터를 지울 수도 있기 때문이지요. [ 안정성 - 운영체제가 불안하면 그 피해가 사용자에게 전달되기 때문에 운영체제는 안정성이 담보되어야 한다]
3. 하드웨어 인터페이스 제공: 우리는 컴퓨터를 사용하면서 버튼이 2개 달린 마우스, 버튼이 3개 달린 마우스등 다양한 제품을 사용합니다. 이러한 다양한 장치를 사용할 수 있도록 해주는 하드웨어 인터페이스를 제공합니다. 운영체제는 CPU, 메모리, 키보드, 마우스와 같이 다양한 하드웨어를 일정한 방법으로 사용할 수 있도록 지원하기 때문에 우리는 어떤 회사에서 만든 하드웨어인지 구분할 필요가 없습니다. [확장성 - 다양한 시스템 자원을 추가하거나 제거하기가 편리해야 한다]
4. 사용자 인터페이스 제공 : 과거MS-DOS와 같은 운영체제로 작업할 때에는 마우스 없이 키보드만 사용했기 때문에 여러모로 불편했습니다. 그러나 지금은 운영체제가 GUI(Graphic User Interface)를 제공하므로 대부분의 작업을 마우스로 수행하지요. [ 편리성 - 사용자가 편리하게 작업할 수 있는 환경을 제공해야 한다]
운영체제의 구조
응용프로그램 | 유틸리티 |
인터페이스(GUI) | |
커널 ( 시스템 호출, 드라이버) | |
하드웨어 |
운영체제는 크게 두 부분으로 나눠집니다. 사용자와 응용프로그램에 인접하여 커널에 명령을 전달하고 실행결과를 사용자와 응용프로그램에게 돌려주는 인터페이스와 운영체제의 핵심 기능을 담은 커널로 이루어져 있습니다.
커널 : 커널은 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아둔 것으로 자동차에 비유하자면 엔진에 해당됩니다.
커널 내부에 또 시스템 호출과 드라이버라는 구성 요소가 있는데요,
시스템 호출은 커널이 자신을 보호하기 위해만든 인터페이스로, 사용자나 응용프로그램으로부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근하는 것을 차단합니다. 커널이 제공하는 시스템 관련 서비스를 모아놓은 것이며 함수 형태로 제공합니다. 즉 응용 프로그램이 하드웨어 자원에 접근하거나 운영체제가 제공하는 서비스를 이용하려면 시스템 호출을 사용해야 합니다.
운영체제의 핵심인 커널이 하는 일 :
1. 프로세스 관리 : 프로세스에 CPU를 배분하고 작업에 필요한 환경을 제공합니다.
2. 메모리 관리: 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상 공간을 제공합니다.
3. 파일 시스템 관리: 데이터를 저장하고 접근할 수 있는 인터페이스를 제공합니다.
4. 입출력 관리: 필요한 입력과 출력 서비스를 제공합니다.
5. 프로세스간 통신 관리: 공동 작업을 위해 각 프로세스의 통신 환경을 지원합니다.
드라이버 : 커널과 하드웨어의 인터페이스는 드라이버가 담당합니다. 컴퓨터 하드웨어 종류는 아주 많은데 이러한 각 하드웨어에 맞는 프로그램을 운영체제 개발자가 모두 직접 개발하기는 힘들겠죠. 커널은 입출력의 기본적인 부분만 담당하고, 하드웨어의 특성을 반영한 소프트웨어를 하드웨어 제작자에게 받아 실행될 때 함께 실행되도록 하는 역할을 합니다. 이때 하드웨어 제작자가 개발한 소프트웨어를 디바이스 드라이버라고 합니다.
'CS > Operating Systems' 카테고리의 다른 글
동시성과 병렬성 (0) | 2023.09.01 |
---|---|
교착 상태 (0) | 2021.09.26 |
프로세스 주소공간 (0) | 2021.08.18 |
프로세스와 스레드 (0) | 2021.08.13 |
다양한 페이지 교체 알고리즘 (0) | 2021.02.05 |