운영체제란?
사람들은 운영체제를 PC의 다른 말로 생각하거나, 컴퓨터를 관리하는 원리, 개념같은 추상적인 이론으로 생각하기도 한다. 나도 운영체제를 공부하기 전에는 무의식적으로 Windows와 컴퓨터를 비슷하게 생각했던 기억이 있다.
그러나 운영체제는 실체가 있는 소프트웨어이다.
다시 말해서 컴퓨터를 관리하는 특별한 기능을 하는 코드의 집합 혹은 프로그램이라고 볼 수 있다.
운영체제의 정의는 다양하다.
컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중개자 역할을 하면서, 프로그램 실행을 관리하고 제어하는 시스템 소프트웨어
컴퓨터가 켜질 때 처음으로 로딩되어 나머지 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리해주는 소프트웨어
운영체제는 컴퓨터의 자원을 독점적으로 관리하는 특별한 소프트웨어
1. 자원이란?
하드웨어 자원 | 메모리, 키보드, 마우스, 디스플레이, 하드디스크, 프린터 |
소프트웨어 자원 | 파일, 데이터베이스 |
전부 자원에 속한다고 볼 수 있다. 운영체제를 통하지 않고서는 자원 관리가 불가능하다.
2. 독점?
자원에 대한 모든 관리 권한이 운영체제에 있다.
ex) 파일을 생성하고 저장할 때, 우리는 마치 스스로가 하드 디스크에 대한 독점적 권한을 가지고 수행하는 것처럼 느껴진다. 하지만 사실은 하드디스크에 파일을 저장할 빈 공간이 어디에 있는지도 모른다. 그 과정에서 디스크의 빈 영역을 관리하고, 저장될 위치를 결정하는 등의 행위는 모두 운영체제에 의해 이루어진다.
이런 과정이 사용자에게 보이지 않게 처리되기 때문에 사용자는 운영체제의 실체를 인식하기 어려운 것이다.
3. 관리?
- 실행 중인 프로그램 관리 - 프로그램을 하드 디스크로부터 메모리에 로딩하여 실행시키고, 동시에 여러 프로그램이 컴퓨터에서 실행되도록 스케줄
- 메모리 관리 - 다른 프로그램이 사용 중인 메모리를 침범하지 못하도록 안전한 메모리 사용 관리
- 파일, 디스크 장치 관리 - 하드디스크로부터 파일 입출력 관리
- 입출력 장치 관리 - 키보드, 마우스, 모니터, 프린터 등의 장치들과 저장 장치를 제어하고 입출력을 실행하고, 사용자나 프로그램이 장치에 접근할 수 있도록 관리
4. 소프트웨어?
운영체제는 소프트웨어로, 그 실체는 프로그램이며 코드이다.
커널(kernel)이라고 불리는 핵심코드와 사용자의 컴퓨터 사용을 직접적으로 돕는 도구 프로그램들(tools)로 구성된다.
운영체제 = 커널 + 도구프로그램
커널(kernel) | 핵(core)이라는 뜻으로 컴퓨터에서 가장 중요한 기능을 수행하는 코드. 하드 디스크의 특정 영역에 저장되어 있다가 부팅 시 하드디스크에서 메모리로 적재된다. 이 후 사용자 프로그램이 자원을 사용하기 위해 호출할 때 실행되어 CPU, 메모리, 키보드, 디스크 장치 등 하드웨어를 직접 제어한다. |
도구 프로그램(tools) | 탐색기, 작업관리자, 제어판 등 컴퓨터를 쉽게 이용할 수 있도록 제공해주는 다양한 도구 프로그램 |
운영 체제와 응용 소프트웨어의 차이
운영체제 | 응용소프트웨어 | |
목적 | 컴퓨터의 모든 자원을 관리하여 응용 소프트웨어들에게 자원 액세스 등의 핵심적인 서비스를 제공하는 목적 또한 컴퓨터 시스템이 보다 효율적으로 사용되도록 한다. |
사용자들의 편리와 필요를 위해 존재함 |
기능 | 메모리 관리, 프로세서 관리, 스케줄링, 파일 입출력 관리 | 소프트웨어를 만든 하나의 특정 목적만을 수행 |
개발 언어 | 메모리를 직접 접근할 수 있는 C/C++, 어셈블리어 사용 | C/C++ 이외에 Java, Python 등 다양한 언어 사용 |
실행 | 컴퓨터를 켜면(부팅) 하드디스크의 특정 위치에 저장된 운영체제 코드가 메모리에 올라와서 실행을 시작하여 컴퓨터를 끌 때까지 실행된다. | 사용자가 명령을 통해 실행시키고 종료시킬 수 있다 |
접근권한 | 컴퓨터의 모든 자원에 대해 배타적 독점 권한을 가진다. 운영체제 말고는 하드웨어에 접근할 수 없다. | 컴퓨터 자원을 사용하고자 할 때 반드시 운영체제에게 요청(방식 : 시스템 호출)하고, 운영체제가 요청을 받아 대신 처리한다. |
ex) 접근권한 흐름
1. 한글 작업 중 저장 메뉴를 누름
2. 파일 저장 요청이 운영체제에게 전달
3. 운영체제가 저장 장치에 파일을 저장
응용 소프트웨어
↕
운영체제
↕
컴퓨터 하드웨어
운영체제는 사용자가 컴퓨터 하드웨어에 대한 자세한 지식이 없어도 사용할 수 있도록 해준다.
만일 운영체제가 없는 시스템에서 애플리케이션이 하드웨어 자원을 마음대로 활용하게 되면 어떤 문제가 발생할 수 있을까?
동시에 여러 애플리케이션이 하나의 같은 디스크영역에 파일을 만들게 될 경우 데이터가 손상되는 등 문제가 발생할 수 있다.
참고자료
황기태, 「운영체제」, 생능출판사, 2020