RealMenRoad
cs지식 컴퓨터 시스템의 동작 원리 -- 컴퓨터 시스템의 구조, CPU 연산과 I/O 연산 본문
컴퓨터 시스템의 구조
컴퓨터 시스템의 구조는 내부장치인 cpu , 메모리 와 외부장치인 디스크 , 키보드 스피커 , 모니터 , 네트워크 장치 등으로
구성되어 있다.
이때 데이터가 내부로 들어오는 것을 입력이라 하고, 컴퓨터 외부장치로 데이터가 나가는 것을 출력이라고 한다.
키보드로부터 입력을 받아서 컴퓨터가 어떤 연산을 한 후 그 결과를 모니터에 출력하는 것을 입출력이라고 한다.
따라서 컴퓨터 외부장치를 입출력 장치라고 한다.
디스크에서도 입출력이 일어난다.!
하드웨어 장치들 메모리 그리고 외부장치들은 각각 컨트롤러를 가지고 있는데 이들은 제어하며 작은 cpu 라고 불린다.
메모리에 있는 컨트롤러는 메모리 컨트롤러
디스크에 있는 컨트롤러는 디스크 컨트롤러~
사람들이 생각하는 운영체제는 여러 프로그램이 동시에 실행되는 시스템을 위한 운영체제
이때 프로그램이 수행되려면 프로그램은 그 프로그램은 메모리에 올라가 있어야한다.
운영체제는 부팅 후에 항시적으로 실행되며 항상 메모리위에 올라가있다.
하지만 운영체제의 모든 코드가 메모리에 상주시키면 메모리 낭비가 발생한다.
그래서 운영체제중 메모리에 올라가있는 부분은 핵심적으로 한정되며 이를 커널이라고 부른다.
CPU 연산과 I/O 연산
컴퓨터에서 연산을 한다는 것은 CPU가 무언가 일을 한다는 뜻이다.
컴퓨터 내부 연산은 CPU가 처리하고
입출력 장치의 연산은 각 입출력 컨트롤러가 연산한다.
각 장치 컨트롤러마다 데이터가 들어오고 나가면 이를 임시 저장가능한 메모리를 가지고 있따.
이를 로컬 버퍼 라고한다.
디스크나 키보드 등에서 데이터를 읽어오는 경우, 우선 로컬 버퍼에 데이터가 임시로 저장된 후 메모리에 전달된다.
이 때, 장치에서 로컬 버퍼로 읽어오는 일은 컨트롤러가 담당한다.
데이터를 모두 가지고 왔는지 확인하는 작업도 컨트롤러가 인터럽트를 발생시켜 CPU에게 보고하는 것이다.
CPU는 명령 하나를 수행할 때마다 인터럽트가 발생했는지를 체크한다.
인터럽트가 발생했으면 다음 명령을 수행하기 전에 인터럽츠 처리를 하게 되고 그 렇지 않으면 다음 명령을 계속 수행하게 된다.
인터럽트는 키보드 입력혹은 디스크에서 데이터를 다 읽어왔다는 등의 이벤트를 CPU에게 알려 줄 필요가 있는 경우
컨트롤러가 발생시키는 것이다.
'읽은 책 정리하자!' 카테고리의 다른 글
자바스크립트 deepDive 변수 (0) | 2023.02.13 |
---|