[장치제어기]
컴퓨터 구조를 나타내는 사진이다.
cpu가 있고 각각의 contoller들로 이루어진 것을 알 수 있다.
controller는 공통 버스와 장치 사이에 위치하여 장치를 제어하는 역활을 한다.
즉, 자신의 주변 장치와의 데이터 송수신 할 수 있도록 인터페이스 역활을 한다.
보통 컴퓨터를 사면 키보드와 마우스 스피커 헤드셋 등을 본체의 포트에 연결해서 사용을 한다.
이 포트들은(소켓 플러그 등) 장치제어기(device controller)와 연결되어 있다. 이 연결들이
공통 버스를 통해 CPU와 통신을 한다.
장치제어기는 CPU의 명령을 적재하는 레지스터, 레즈스터의 명령을 수행하거나 명령을 다 수행해서 인터럽트를 거는 제어부, 필요한 정보를 저장할 수 있는 지역버퍼가 있다.
c언어에서 scanf를 사용했을 때를 예시로 들어보자
1. CPU가 장치제어기의 레지스터에 명령을 적재한다.
(야 할거 들어왔어 scanf 수행해)
2. 장치제어기는 레지스터의 명령 내용을 조사해 수행할 동작을 검사한다.
(ㅇㅋ scanf니간 입력받으면 되겟군)
3. 레지스터의 내용이 읽기 명령이므로 입력 장치에게 입력 신호를 보낸다.
(입력해)
4. 입력 장치는 데이터를 읽어서 버퍼에 저장한다.
(입력받은 값 버퍼에 저장할게)
5. 제어부가 CPU에게 인터럽트를 발생시킨다.
(CPU야 니가 하라는 scanf 해서 입력 값 받아와서 저장했어 내 할 일 끝낫어)
6. CPU가 버퍼에서 데이터를 읽어 들이고 입력이 완료된다.
(ㅇㅋ scanf의 값으로 1이 들어왓군)
이번에는 내가 키보드를 마구마구 치고 있을 때를 생각해보자
1. 입력장치에서 뭐가 자꾸 마구마구 입력된다.
2. 장치제어기가 CPU한테 인터럽트를 건다(야 얘 뭐 자꾸 친다 처리해줘)
3. CPU가 버퍼나 데이터가 저장되어 있는 레지스터에 가서 데이터를 읽음("배고프다" 라는 거를 쳣네?)
4. 데이터를 읽음으로서 내가 무엇을 쳣는지 CPU가 알 수 있다.
이번에는 디스크에서 내가 원하는 문서를 찾을 때를 생각해보자
1. CPU가 장치제어기의 레지스터에 명령을 적재한다.
("치킨이라는 문서 찾아")
2. 장치제어기는 레지스터의 명령 내용을 조사해 수행할 동작을 검사한다.
(치킨 찾아볼게)
3. 디스크에게 신호를 보낸다.
(치킨찾아)
4. 디스크는 치킨을 찾아서 버퍼나 저장레지스터에 저장한다
(치킨 저장해둘게)
5. 제어부가 CPU에게 인터럽트를 발생시킨다.
(CPU야 치킨 찾았다 내 할 일 끝낫어)
6. CPU가 저장된 데이터를 읽는다
(치킨)
'운영체제' 카테고리의 다른 글
저장장치 구조 (0) | 2022.03.17 |
---|---|
인터럽트,인터럽트 핸들러 (0) | 2022.03.16 |
컴퓨터 시스템 연산 (0) | 2022.03.16 |
운영체제와 커널 (0) | 2022.03.16 |
운영체제의 정의 (0) | 2022.03.16 |
댓글