서론
오늘날 많은 사람들이 컴퓨터를 사용하게 되면서 운영체제에 대한 정확한 뜻은 모르지만 ‘나 windows 써~’, ‘난 mac써~’라는 식으로 자주 언급이 되었다. 친근하지만 설명하라고하면 입이 선뜻 떨어지지 않기에 정확히 알아보기로 했다.
운영체제의 정의는?
사용자와 컴퓨타 하드웨어 사이에서 중계 역할을 하면서, 프로그램의 실행을 관리하고 제어하는 시스템 소프트웨어.
혹은
컴퓨터가 켜질 때 메모리에 적재되어 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리해주는 소프트웨어 라고 칭한다.
운영체제의 본질적 속성
1. 운영체제는 모든 컴퓨터 자원(resource)을 관리한다.
자원이란?
- 하드웨어 자원 - CPU, 캐시나 메모리, 키보드 등
- 소프트웨어 자원 - 응용프로그램들
- 데이터 자원 - 파일, 데이터베이스 등
2. 운영체제는 자원들 독점한다.
독점이란?
자원에 대한 접근과 관리 권한이 오직 운영체제에게만 있다는 뜻이다. 예시로 내가 파일을 만들었을 때, 내가 직접 하드 디스크에 파일을 기록했다고 착각한다. 하지만 실제로 나는 하드 디스크에 파일을 쓸 빈 곳이 어디에 있는지 알지 못한다. 그 관리는 온전히 운영체제의 몫이다.
왜 운영체제가 자원을 독점할까?
자원에 대한 접근 권한을 운영체제만 가지게 함으로써, 사용자들과 응용프로그램들로부터 자원에 대한 훼손을 막고 그들 사이에 자원을 효과적으로 공유할 수 있도록 하기 위함이다.
3. 운영체제는 관리자(supervisor)이다.
어떤것을 관리할까?
- 사용자에 대한 관리로서, 사용자의 로그인 계정, 비밀 번호, 우선순위, 통계 정보등의 관리
- 프로그램의 실행에서 종료까지 프로그램 실행에 관한 일체의 자원 관리, 프로그램 적재, 프로그램에 대한 메모리 할당 및 메모리 보호, 프로그램의 스케줄링, 저장 공간 관리 등
- 성능 관리, 자원의 활용률을 높여 가능하면 많은 프로그램이 동시에 실행될 수 있도록 처리율을 높이고 빠른 응답을 제공
- 보안 관리
4. 운영체제는 소프트웨어이다.
운영체제는 소프트웨어로서 프로그램이며 코드이다. 커널이라고 불리는 핵심 코드, 컴퓨터 사용을 돕는 UI를 비롯한 도구 프로그램들, 장치를 직접 제어하는 디바이스 드라이버라는 소프트웨어로 구성된다.
커널은 관리 기능을 수행하는 핵심코드로, 운영체제가 설치된 저장 장치에 저장되어 있다가 컴퓨터가 부팅될 때 메모리에 적재된다. 그 후, 응용프로그램이 자원을 접근하기 위해 호출할 때 실행되어 하드웨어를 제어한다.
운영체제의 목적
1. 사용자의 컴퓨터 사용 편리성
운영체제는 컴퓨터 자원을 여러 응용프로그램이나 사용자가 공유하여 사용함에 있어, 편리하게 사용할 수 있도록 하는 것이다.
2. 자원의 효율적 사용과 관리
컴퓨터 자원의 낭비를 줄이고 CPU를 비롯하여 놀고 있는 자원이 없도록 효율적으로 관리하는 것이 목적이자 목표이다.
운영체제의 핵심 기능
1. CPU/프로세스 관리(process management)
운영체제는 저장 장치에 저장된 프로그램을 메모리에 적재하고 이를 프로세스라고 부른다. 프로세스 실행, 새로운 프로세스 생성, 프로세스가 입출력을 요청하거나 CPU 할당 시간을 다 소모하였을 때 프로세스를 일시 중단시키고 대기 중인 프로세스 중 하나를 선택하는 스케줄링, 프로세스 종료 등 프로세스를 관리하는 기능을 수행한다. 또한 프로세스들 사이의 통신과 동기화 기능도 제공한다.
2. 메모리 관리(memory management)
각 프로세스에게 적절한 메모리를 할당하고 반환하며, 프로세스에게 할당된 메모리를 다른 프로세스로부터 보호한다. 또한 메모리가 부족할 때 하드 디스크와 같은 저장 장치에 메모리 일부분의 내용을 저장해두고 필요할 때 다시 적재(가상 메모리 기법)하는 기능을 수행한다.
3. 파일 시스템 관리(file system management)
파일 크기, 파일 소유자, 파일을 만든 날짜와 시간 등 파일마다 파일 정보를 관리하며, 전체 파일 시스템의 크기, 저장 장치의 빈 곳과 사용 중인 곳 등 파일 시스템 정보를 관리하며, 파일과 디렉터리를 생성하고 관리한다. 파일이 기록된 위치를 아는 것은 오직 운영체제이므로, 운영체제는 파일 읽기, 쓰기, 삭제 등 파일을 다루는 모든 기능을 수행한다.
4. 장치 관리(device management)
키보드, 마우스, 프린터 등 입출력 장치들과 저장 장치를 제어하고 물리적인 입출력을 실행한다.
5. 네트워크 관리
네트워크 장치를 관리하고 네트워크 입출력을 실행한다.
6. 보안 관리
외부의 공격으로부터 컴퓨터 시스템과 사용자 정보를 보호한다.
7. 기타 관리
사용자의 로그인 계정, 암호, 접근 권한 등 사용자 정보를 관리하고, CPU, 메모리, 네트워크, 저장 장치 등의 사용량과 사용자 접속 시간 등에 대한 통계를 수집 관리하며, 컴퓨터 시스템 내 오류를 발견하고 대응하는 기능을 수행한다.
나만의 짧은 요약
운영체제란?
컴퓨터가 켜질 때 메모리에 적재되어 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리해주는 소프트웨어이다. 운영체제는 자원을 독점하며 사용하는데 그 이유는 사용자들과 응용프로그램들로부터 자원에 대한 훼손을 막고 그들 사이에 자원을 효과적으로 공유할 수 있도록 하기 위함이다.