운영체제는 프로그램의 실행 환경을 제공하고 프로그램과 해당 프로그램의 사용자에게 특정 서비스를 제공한다.
운영 체제는 다음과 같은 기능을 제공한다.
- 사용자 인터페이스(User interface)
대부분의 운영체제에는 사용자 인터페이스를 갖고 이 인터페이스는 텍스트 명령어를 사용하는 명령줄 인터페이스(CLI), 일괄 처리 인터페이스, 그리고 가장 일반적인 그래픽 사용자 인터페이스(GUI)가 있다.
- 프로그램 실행(Program execution)
시스템이 프로그램을 주기억장치에 적재 시키고 실행시켜야한다. 또한 프로그램이 비정상적으로 실행 할 경우 종료 시킨다.
- 입출력 명령(I/O operation)
효율성과 보호를 위해서 사용자는 일반적으로 I/O 장치를 직접 제어할 수 없다. 따라서 운영체제는 I/O를 수행할 수 있는 수단을 제공해야 한다.
- 파일 시스템 관리(File-system manipulation)
운영체제는 다양한 파일 시스템을 제공하고, 때때로 개인적인 선택을 허락하고 구체적인 성능 특성을 제공한다.
- 통신(Communication)
메모리를 공유해 두개 이상의 프로세스를 읽고 쓸수 있고, 사전에 정의된 형식의 정보가 운영체제에 의해 프로세스 사이를 통신한다.
- 오류 검출(Error detection)
운영체제는 끊임없이 오류를 감지하고 수정해야 한다.
- 자원 할당(Resource allocation)
여러 사용자 혹은 여러개의 작업이 있을 경우, 동시에 실행 되는 자원들은 각 항목에 할당해야 한다.
- 로그관리(Accounting)
로그 관리를 통해 사용자가 얼마나 많이 또는 어떤 종류의 자원을 사용하는지 알수 있다.
- 보안(Protection and security)
모든 시스템에 대한 접근을 보장한다.