여러 프로그램이 함께 실행될 때
음악을 들으면서 문서를 편집하면 두 프로그램이 CPU와 메모리, 저장 장치를 함께 사용한다. 운영체제는 실행 순서를 조정하고 각 프로그램에 필요한 자원을 제공한다. 사용자가 보는 창의 개수와 실제로 실행 중인 작업의 수는 다를 수 있다.
하나의 CPU 코어에서도 작업을 빠르게 번갈아 실행해 여러 프로그램이 진행되는 것처럼 보이게 할 수 있다. 여러 코어가 있으면 일부 작업은 실제로 같은 시간에 수행된다.
커널과 주변 구성
커널은 자원 관리와 장치 접근 등 운영체제의 핵심 기능을 맡는다. 명령 해석기, 시스템 도구, 사용자 인터페이스는 커널을 이용해 사용자가 작업할 수 있는 환경을 구성한다. 커널의 설계 방식과 운영체제에 포함하는 구성 범위는 시스템마다 다르다.
장치 드라이버는 특정 하드웨어와 통신하는 코드를 제공한다. 응용 프로그램은 일반적으로 장치의 모든 세부 규칙을 직접 구현하는 대신 운영체제가 제공하는 인터페이스를 이용한다.
메모리와 파일의 관리
운영체제는 프로그램이 사용할 주소 공간을 관리하고, 파일 이름과 디렉터리를 통해 저장된 자료에 접근하게 한다. 프로그램이 읽는 파일의 논리적 위치와 저장 장치의 실제 배치는 일치하지 않을 수 있다.
권한과 실행 영역의 구분은 프로그램이 다른 사용자의 자료나 시스템 내부를 함부로 변경하지 못하게 하는 데 쓰인다. 이러한 보호에는 운영체제뿐 아니라 하드웨어 기능도 함께 관여한다.
기기에 따라 달라지는 목표
서버는 많은 요청의 안정적 처리, 휴대 기기는 전력과 응답성, 실시간 시스템은 정해진 시간 안의 처리가 중요한 설계 목표가 될 수 있다. 실시간이라는 말은 단순히 평균 속도가 빠르다는 뜻이 아니라 시간 제약을 지키는 성질을 가리킨다.