운영체제는 크게 3가지로 볼 수 있다.
각 하드웨어나 응용 프로그램들은 스스로 실행될 수 없기 때문이다.
따라서 이를 가능하게 해주는 운영체제가 필요하다.
컴퓨터의 메모리는 크게 메인 메모리 + 보조 기억 장치로 구분할 수 있다. 먼저, 메인 메모리에 명령어가 있어야 프로세서가 명령어를 수행할 수 있기 때문에 프로그램을 저장할 공간을 확보해두어야 하고 이렇게 저장된 프로그램이 효율적으로 실행될 수 있도록 메모리도 적절히 사용해야한다. 간단히 다음과 같이 정리할 수 있다.
• 메모리에 저장할 프로그램을 저장한다.
• 사용할 메모리 공간을 결정하고 어떤 프로그램이 사용하는지 확인한다.
• 메모리를 할당하고 회수하는 방법을 정한다.
메모리는 물리적인 하드웨어이기때문에 공간의 한계가 있다. 이를 위해 보조기억장치(보조메모리)가 필요하다. 대부분의 프로그램들은 메인 메모리에 저장되기 전까지는 보조 기억장치에 저장된다. 메인 메모리와 동일하게 공간을 할당하고 삭제하는 기능을 운영체제가 한다.
프로세스는 실행중인 프로그램으로 운영체제는 프로세스의 생성 부터 실행, 종료까지의 전 과정에 관여하게 된다. 구체적으로 아래의 기능을 수행한다.
• 프로세스와 스레드를 스케쥴링한다
• 프로세스를 생성하고 제거한다
• 프로세스를 중지하고 재수행한다
• 프로세스 동기화 방법을 제공한다
• 프로세스 통신 방법을 제공한다
• 교착상태를 방지하는 방법을 제공한다.
운영체제는 특수 장치 드라이브를 사용하여 입출력 장치와 상호작용한다. 따라서 장치 드라이버를 제공하여 특정 하드웨어와 서로 통신할 수 있는 인터페이스를 제공한다.
• 특정 장치 드라이버를 제공한다
• 드라이버 인터페이스를 제공한다.
우리가 사용하는 파일 탐색기를 살펴보면 디렉터리 형식으로 파일이 관리되고 있고 탐색기 내에서 파일 검색이 가능하고 파일 생성과 삭제까지 가능하다. 이러한 기능을 바로 운영체제가 제공하는 것이다.
• 파일을 생성하고 삭제한다
• 디렉터리를 생성하고 삭제한다
• 비휘발성 장치에 파일을 저장한다
시스템 보호는 컴퓨터 자원을 보호하는 기능이다. 응용프로그램, 사용자 로부터 자원을 보호하기 위해 권한을 부여하기도 하고 데이터를 암호화하기도 한다. 또한 프로세스들은 동시에 실행되면서 서로의 data에 접근하지 못하도록 보호하기도 한다.
프로세서가 통신을 할 때는 경로 설정, 접속 정책, 충돌, 보안 등을 고려해야하는데 이를 운영체제가 관리한다.
명령 해석기는 운영체제의 중요한 프로그램이다. 사용자나 응용 프로그램으로부터 대화형의 명령어가 들어오면 이를 운영체제에 전달하는 인터페이스이다.