- 사용자와 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종
- 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공한다.
종류 : WINDOWS, Mac OS, UNIX, LINUX 등
- 자원 관리
- 컴퓨터 시스템 자원들을 효율적으로 관리해준다. ( 시스템 자원: CPU, Memory 등의 하드웨어 자원과, 프로세스, 파일 메세지 등의 소프트웨어 자원)
- 자원 보호
- 다른 사용자 또는 프로그램이 데이터를 삭제하거나 중요 파일들에 접근하지 못하게 컴퓨터 자원들을 보호한다.
- 인터페이스 제공
- 하드웨어 인터페이스와 사용자 인터페이스를 제공하여 사용자가 편리하게 사용하도록 지원한다.
- 처리 능력 향상
- 반환 시간 단축
- 사용 가능도 향상
- 신뢰도 향상
단어 | 설명 |
---|---|
처리 능력 | 일정 시간 내에 시스템이 처리하는 일의 양 |
반환 시간 | 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸리는 시간 |
사용 가능도 | 시스템 자원을 사용할 필요가 있을 때 즉시 사용 가능한 정도 |
신뢰도 | 시스템이 주어진 문제를 정확하게 해결하는 정도 |
-
프로세스 관리
현재 CPU를 점유해야 할 프로세스(또는 스레드)를 결정(스케줄링)하고, CPU를 프로세스에 할당한다. 또한 이 프로세스 간 공유 자원 접근과 통신(IPC 통신) 등을 관리한다.
-
저장장치 관리
메인 메모리와 하드디스크 등 메모리를 관리한다. 메인 메모리에서는 프로세스에 할당하는 메모리 영역의 할당과 해제를 담당한다. 또한 가상 메모리 기능을 제공하여 각 메모리 영역 간의 침범을 방지하고, 효율성을 증대한다. 하드디스크에는 파일 형식의 데이터가 저장된다.
-
네트워킹
TCP/IP 기반 인터넷 연결 등 응용 프로그램은 운영체제에서 지원하는 네트워크 프로토콜을 사용할 수 있다.
-
사용자 관리
하나의 PC를 여러 사람이 사용하는 경우, 각 계정을 관리한다. 보안을 위해 개인 파일에 대해선 다른 사용자가 접근할 수 없도록 한다던지, 시스템 자원의 접근 권한을 지정할 수 있도록 지원한다.
-
디바이스 드라이버
운영체제 안에 하드웨어를 추상화해주는 계층이다. 시스템에 붙어있는 여러 하드웨어를 인식하고 관리하여 응용 프로그램이 하드웨어를 사용할 수 있게 한다.
-
인터페이스
- 사용자는 커널에 직접 접근할 수 없기 때문에 운영체제가 제공하는 인터페이스를 사용해 커널에 명령을 내린다.
- 운영체제가 제공하는 대표적인 인터페이스가 GUI, CLI가 있습니다.
-
커널
- 운영체제는 규모가 매우 큰 프로그램이므로, 운영체제의 모든 부분을 메모리에 올려놓는 것은 굉장히 비효율적이다. 따라서 운영체제는 필요한 부분만을 메모리에 올려서 사용하게 되는데, 이 때 메모리에 상주하는 운영체제의 핵심 부분이 커널이다.
- 커널의 경우 프로세스, 메모리, 저장장치를 관리하는 핵심적인 기능을 합니다. 또한 커널에는 시스템 호출(System Call)과 드라이버라는 것이 있습니다.
-
시스템 콜
- 사용자는 운영체제의 기능을 담당하는 커널에 직접 접근할 수가 없다. 따라서, 사용자와 커널 사이에 인터페이스 역할이 필요한데, 시스템 콜이 바로 이 역할을 하게 된다.
- 시스템 콜을 제공함으로써 컴퓨터 자원을 보호하게 된다.
- 예시로는 write(), read(), printf() 등이 있다.
-
드라이버
- 커널과 하드웨어의 인터페이스를 드라이버라고 한다.
- 복잡한 하드웨어의 경우 소프트웨어를 따로 설치하여 사용하는 경우가 있는데 이때 이 소프트웨어를 디바이스 드라이버라고 합니다.