컴퓨터를 키면 운영체제가 메모리에 상주하면서 실행이 되고 있음
프로그램 실행시키면 해당 프로그램이 메모리에 올라가서 프로세스가 됨
I/O 장치에는 I/O장치를 관리하는 작은 CPU인 Device Controller가 붙어있음
메모리도 장치이기 때문에 Memory Controller가 붙어있음
운영체제의 기계어/프로세스의 기계어를 실행할때 기계어를 구분할 필요가 있음
만약 사용자 프로그램에 CPU가 넘어가면 OS는 CPU를 다시 가져올 수 없음
그래서 mode bit가 있음
운영체제가 CPU를 실행중이면 mode bit가 0, 사용자 프로그램이 CPU를 가지고있으면 mode bit가 1
보안을 해칠 수 있는 중요한 명령어(특권명령)는 mode bit가 0일때만 수행 가능
0 : 모니터 모드, 커널 모드, 시스템 모드
1 : 사용자 모드
CPU에는 interrupt line이 있음
프로그램 A가 I/O 작업 필요함 -> CPU는 직접 I/O 작업을 하는게 아니라 해당 I/O 장치의 device controller한테 작업을 요청함 -> 그동안 CPU는 OS 한번 통과하고 다른 프로그램한테 넘어감 -> I/O장치가 일을 다 했음 -> CPU한테 인터럽트 날림 -> CPU는 그다음 기계어 실행하기전에 인터럽트 있는지 확인하고 OS한테 CPU 넘어감
연산의 input, output을 저장함
빠르고 작은 크기
Program Counter라는 레지스터가 있음 : 다음 번에 실행할 기계어의 메모리의 주소를 가지고 있음
CPU의 독점을 막기위해 Timer라는 하드웨어를 가지고 있음
OS가 프로그램한테 CPU 넘겨줄 때 Timer에다가 시간 세팅한 다음에 넘겨줌
Timer는 일정 시간 단위로 CPU한테 interrupt 발생시킴 -> CPU 제어권이 자동으로 OS한테 넘어감
time sharing을 구현하기 위해 널리 이용됨