운영체제(Operating System)
운영체제는 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록, 하드웨어 자원을 관리하고 환경을 제공하는 시스템 소프트웨어를 말합니다.
대표적인 운영체제로는 MS-DOS, Windows, Linux, Unix, Mac OS, iOS 등이 있습니다.
운영체제의 목적
- 처리능력(Throughput) 향상: 일정 시간 내에 시스템이 처리하는 일의 양 향상
- 반환시간(Turn Around Time) 단축: 시스템에 작업을 의뢰한 시간부터 처리완료까지 걸린 시간 단축
- 사용가능도(Availability) 향상: 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도 향상
- 신뢰도(Reliability) 향상: 시스템이 주어진 문제를 정확하게 해결하는 정도 향상
운영체제의 역할
- 프로세스 관리
- 저장장치 관리
- 네트워킹
- 사용자 관리
- 디바이스 드라이버 관리
프로세스 관리
운영체제에서 작동하는 응용 프로그램을 관리하는 기능입니다.
어떤 의미에서는 프로세서(CPU)를 관리하는 것이라고 볼 수도 있습니다. 현재 CPU를 점유해야 할 프로세스를 결정하고, CPU를 프로세스에 할당하며, 이 프로세스 간 공유 자원 접근과 통신 등을 관리하게 됩니다.
저장장치 관리
1차 저장장치에 해당하는 메인 메모리와 2차 저장장치에 해당하는 하드디스크, NAND 등을 관리하는 기능입니다.
- 1차 저장장치(Main Memory)
- 프로세스에 할당하는 메모리 영역의 할당과 해제
- 각 메모리 영역 간의 침범 방지
- 메인 메모리의 효율적 활용을 위한 가상 메모리 기능
- 2차 저장장치(HDD, NAND Flash Memory 등)
- 파일 형식의 데이터 저장
- 이런 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리
네트워킹
TCP/IP 기반의 인터넷에 연결하거나, 응용 프로그램이 네트워크를 사용하려면 운영체제에서 네트워크 프로토콜을 지원해야 합니다. 현재 상용 OS들은 다양하고 많은 네트워크 프로토콜을 지원합니다.
사용자 관리
하나의 PC로 여러 사람이 사용하는 경우가 있습니다. 따라서 운영체제는 한 컴퓨터를 여러 사람이 사용하는 환경도 지원해야 합니다.
운영체제는 각 계정을 관리할 수 있는 기능이 필요합니다. 개인의 파일에 대해서 다른 사용자가 접근할 수 없도록 해야 합니다. 이 외에도 파일이나 시스템 자원에 접근 권한을 지정할 수 있도록 지원하는 것이 사용자 관리 기능입니다.
디바이스 드라이버 관리
운영체제는 시스템의 자원, 하드웨어를 관리합니다. 시스템에는 여러 하드웨어가 붙어있는데, 이들은 운영체제에서 인식하고 관리하게 만들어 응용 프로그램이 하드웨어를 사용할 수 있게 만들어야 합니다.
따라서, 운영체제 안에 하드웨어를 추상화 해주는 계층이 필요하며, 이 계층을 디바이스 드라이버라고 부릅니다. 하드웨어의 종류가 많은 만큼, 운영체제 내부의 디바이스 드라이버도 많이 존재합니다.