컴퓨터 하드웨어는 크게 CPU(프로세서), 메모리, 디스크, I/O 장치로 구성되며, 이들은 시스템 버스로 연결된다.
CPU : 컴퓨터 하드웨어에 부착한 모든 장치의 동작을 제어하고, 명령을 실행한다.
이때, 레지스터란 CPU가 요청을 처리하는데 필요한 데이터를 일시적으로 저장하는 기억장치이다.
사용자가 값을 변경할 수 있는 "사용자 가시 레지스터"와 "불가시 레지스터"로 나뉜다.
PC : 명령어의 위치(명령어의 어디쯤 있느냐)를 가리킨다.
MAR : 메모리의 주소를 저장하는 레지스터(위치)
MBR : 메모리의 데이터 및 명령어를 실제로 저장하는 레지스터
AC : 임시 저장 메모리
IR : 현재 실행하는 명령어를 보관하는 레지스터
ALU : 산술(+), 논리 연산(AND, OR, XOR) 을 담당한다.
DR : 함수 연산에 필요한 데이터를 저장. 산술 논리 연산에 사용한다.
AR : 주소 혹은 유효 주소를 계산하는 데 필요한 주소의 일부분을 저장.
개발자가 작성한 코드가 CPU에서 실행되는 과정을 대략적으로 위와 같다.
이 과정에서 운영체제가 개입한다.
한정된 메모리를 여러 프로세스가 함께 사용하므로, 운영체제가 이를 관리하는 방법을 "메모리 관리"라 한다.
메모리 관리는 프로세스의 요청에 따라 메모리의 일부를 할당하고, 필요없으면 자유로이 재사용 할 수 있도록 하는 것이다.
메모리 관리의 주요 정책 세가지는 다음과 같다.
디스크에서 메모리로 프로세스를 반입할 시기 를 결정
디스크에서 반입한 프로세스를 메모리 어느 위치에 저장할 것인지 결정
메모리가 충분하지 않을 때에 현재 메모리에 적재된 프로세스 중, 제거할 프로세스를 결정하는 교체 방법
여러 프로세스가 번갈아 사용하는 자원(주로 CPU)을 어떤 시점에, 어떤 프로세스에 할당할지 결정하는 것.
1. 작업 선택 : CPU를 사용할 작업을 결정하는 작업 스케줄링
2. 작업 승인과 프로세서 할당 스케줄링
3. 준비 상태에 있는 프로세스 중, 프로세서를 할당할 프로세스를 결정하는 할당 스케줄링.(다음에 실행할 프로세스 결정)