주기억장치(main memory)는 주소를 담고 있는 바이트들의 배열로 이루어져 있다.주기억장치는 CPU가 직접적으로 접근할 수 있는 유일한 기억장치이기 때문에 디스크에 있는 프로그램을 실행하기 위해서는 우선 주기억장치로 프로그램이 넘겨져야 한다. 범용 컴퓨터(general-purpose computer)에서는 CPU의 이용률과 컴퓨터의 응답속도를 늘리기 위해 몇몇 프로그램이 주기억장치에 상주해 있다. 여기서 다양한 기억장치 관리 체계가 사용될 수 있는데, 이는 하드웨어의 특정 관리 체계의 지원 여부에 영향을 받는다. 운영체제는 기억장치를 관리하는 데에 다음과 같은 역할을 한다. 메모리의 어떤 부분이 사용 중이고 누가 사용 중인가 추적한다.메모리에 반입 및 반출될 처리기를 결정한다.필요에 따라 메모리 공..
처리기(process)와 프로그램은 서로 다른 개념이다. 프로그램이 디스크에 저장되어 있는 수동적인 객체라면, 처리기는 메모리에서 CPU로 불려 명령을 수행하는 능동적인 객체로 볼 수 있다. 한 프로그램 내에는 하나 이상의 처리기가 들어 있다.처리기는 실행을 시작하거나 실행 중에 할당된 CPU 시간, 메모리, 파일, 입출력 기기와 같은 자원을 필요로 한다. 처리기 카운터(process counter)는 실행할 다음 명령을 명시하는 역할을 한다. 단일 스레드 처리기(single-threaded process)는 하나의 처리기 카운터를 가지고 있어서, 명령을 하나씩 순차적으로 수행한다. 반면, 다중 스레드 처리기(multi-threaded process)는 여러 개의 처리기 카운터를 가지고 있기 때문에 여러..
타이머(timer)는 일정 시간이 지나면 인터럽트를 보내는데, 이는 사용자 프로그램이 무한 루프 등의 이유로 운영체제가 제어를 얻지 못하게 되는 상황을 방지하기 위함이다.그 중 변수 타이머(variable timer)는 카운터(counter)를 매개변수로 받는 타이머로, 매 단위 시간마다 줄어드는 카운터가 0이 되는 순간, 변수 타이머는 인터럽트를 보낸다. 이렇게 보내진 인터럽트는 운영체제로 제어를 넘겨주고, 운영체제는 이를 심각한 오류로 처리하거나 프로그램 실행에 더 긴 시간을 준다.
시스템 호출(system call)은 사용자 프로그램이 운영체제가 권한을 가진 작업을 운영체제가 허가 하도록 요청하는 수단을 제공한다. 보통은 트랩에 의해서 실행되나, 몇몇 시스템에서는 시스템 호출 명령으로 실행된다. 시스템 호출을 실행하면, 제어가 인터럽트 벡터를 통해 운영 체제의 서비스 루틴으로 넘어가고, 모드 비트는 커널 모드로 바뀐다. 커널은 인터럽트의 매개변수를 통해 시스템 호출의 타당성을 확인하고, 레지스터, 스택, 메모리로부터 추가적인 정보를 받아 시스템 호출로 불러들인 명령에 제어를 넘긴다.
운영체제의 무결성을 보장하기 위해서는 운영체제 코드와 사용자 정의 코드의 실행을 구분할 필요가 있다. 이를 성취하게 위해 많은 운영체제는 이중 동작 모드(Dual-Mode Operation)을 채택했다.이중 동작 모드는 모드 비트(mode bit)를 통해 커널 모드(0)와 사용자 모드(1)로 구분한다.시스템을 부팅하면 커널 모드에서 시작해 운영체제가 적재된다. 그 후 사용자 모드가 실행되어 사용자 프로세스를 실행할 동안 트랩이나 인터럽트가 발생한 경우에 다시 커널 모드로 전환된다. 만약 운영체제에 직접적인 영향을 끼칠 수 있는 명령인 특권 명령(priviliged instruction)을 사용자 모드에서 실행하는 경우 불법적인 명령으로 간주해 운영체제에 트랩을 전송한다. 모드 비트를 2개 이상 사용할 경..