- 운영체제를 설명하기 앞서 하드웨어 관련 설명을 할 챕터.

- 크게 보면 CPU와 Memory, 그리고 I/O 디바이스로 이루어져 있다고 생각하면 된다.

- 좀 더 자세한 구조
- 메모리는 CPU의 작업 공간이라고 생각하면 된다.
- CPU는 매 클럭마다 메모리에서 명령어를 읽어서 실행한다.
- 디스크는 보조기억장치지만 역시 I/O 디바이스라 얘기 할 수 있다.
- 디바이스마다도 작은 CPU, 위 그림에서 device controller라고 써져있는 것이 붙어있어 일을 해준다(local buffer라는 작은 공간 역시 존재한다)
- 결국 CPU의 운명은 매 클럭마다 memory에서 instruction을 읽어서 실행하는 것.

- CPU 안에는 메모리보다 빠르면서 정보를 저장할 수 있는 작은 공간이 있다 → register
- mode bit이라는 것은 지금 CPU에서 실행되고 있는 것이 운영체제인지, 사용자 프로그램인지 구분해주는 역할을 한다.
- CPU는 다음에 실행할 메모리의 주소값을 계속 늘려가면서 실행하고 있는데, 프로그램을 실행하면서 I/O 디바이스에 접근해서 해야할 일이 생기면 CPU가 직접 접근하는 것이 아니라 운영체제를 거쳐서 일을 하도록 시킨다(보안적이거나 그런 이유로). 그리고 I/O 디바이스들은 결과값들을 local buffer에 저장해 놓으며 일을 한다.
- 예를 들어 scanf 해놓고 값이 들어올 때까지 계속 CPU가 일 안하고 쉬고있으면 안된다. 그렇기 때문에 키보드한테 입력이 들어오면 알려달라고 해놓은 다음에 CPU 본인이 해야할 일을 계속 하는 것이다.
- 즉 내(프로그램)가 할 일은 CPU와 memory와 왔다갔다하면 되는 작업인데, I/O 디바이스 때문에 막혀있으면 안되기 때문에 입력 등을 기다리는 동안 다른 작업을 실행하는 것이다.