구조도
CPU와 I/O Controller의 관계
각각의 I/O Controller는 CPU와 독립적으로 그 기능을 수행하며, Bus라는 통로와 Interrupt를 통해 CPU와 통신한다.
프로그래밍을 할 때, 흔히 I/O 작업 수행에 대한 이야기를 한다.
I/O 작업의 의미는 CPU가 I/O Controller의 Data Buffer에 데이터를 채운 후 Write 명령을 수행하는 것이다.
I/O작업이 수행되면 각 I/O Controller는 독립적으로 그 기능을 수행하며, 작업이 완료되면 Interrupt를 발생시켜 최종적으로는 CPU에게 작업이 완료되었음을 알린다.
RAM과 Disk
RAM은 CPU가 직접 접근할 수 있는 비휘발성 메모리이며, Random Access Memory이다.
RAM의 역할은 하드디스크로부터 일정량의 데이터를 복사해서 임시로 저장한 후에 필요할 때마다 CPU에 빠르게 전달하는 역할을 한다.
컴퓨터에 쓰이는 부품들은 이렇게 각각의 역할을 기반으로 만들어진다는 것을 유의해야 한다.
그렇다면 RAM과 DISK를 왜 구분하는 것인지 의문이 들 것이다. DISK를 RAM 대신 쓰면 안되는 것일까?
이는 전력 소비에 대한 효율성과 속도 때문에 그렇게 하지 않는 것이다.
흔히 RAM을 휘발성 메모리라 한다. 휘발성 메모리라 함은 '지속적으로 전력 공급을 해야 하는 메모리' 이며, 전원 공급이 없으면 메모리를 유지할 수 없다는 의미이다.
DISK는 비휘발성 메모리이며, 지속적인 전력 공급이 필요하지 않으며, 전원 공급이 없어도 메모리를 유지한다는 의미이다.
그렇기 때문에 '비휘발성 메모리'라는 것은 전력을 많이 사용하며, 결과적으로 메모리 접근 속도가 빠르도록 설계되었다고 볼 수 있는데, 핵심적인 것은 RAM은 이름 그대로 Random Access가 된다는 것이다.
Random Access가 의미하는 것은 특정 메모리 주소를 통해 바로 접근이 가능하다는 의미인데, 하드 Disk는 Random Access 방식이 아니고 데이터가 저장된 위치, 디스크의 구조에 따라 해당 메모리에 접근하는 속도가 모두 다르다.
요약하자면 RAM과 Disk는 역할이 다르게 설계되었으며,
RAM은 Random Access가 가능하여 빠른 메모리이지만, 지속적으로 전력 공급이 되지 않으면 데이터가 날아가는 장치,
Disk는 Random Access가 불가능하여 느린 메모리이지만, 지속적으로 전력 공급이 되지 않아도 데이터가 날아가지 않는 장치이다.
설계 목적을 기반으로 말해 보자면, CPU는 자체 캐시의 크기가 작으며, 직접 접근할 수 있는 대용량 메모리가 필요했다.
Disk는 느리지만 결과적으로 CPU가 Disk의 데이터를 사용해야 하기 때문에 중간에 더 빠른 메모리 장치가 있다면 더 효율적인 처리가 가능해진다는 생각으로 RAM이 만들어졌다고 보면 될 것 같다.
틀린 점이 있다면 댓글을 달아주시면 감사하겠습니다.
'OS' 카테고리의 다른 글
Context Switching에서의 Thread와 Process의 관계 + PCB, TCB (2) | 2020.05.30 |
---|---|
[OS] 정리7 : 가상 메모리 (0) | 2018.09.27 |
[OS] 정리6 : 메모리 관리 (0) | 2018.09.26 |
[OS] System call, Interrupt, Trap, 등 (1) | 2018.09.24 |
[OS] 정리5 (0) | 2018.09.24 |
[OS] 정리4 (0) | 2018.09.24 |
[OS] 정리3 (0) | 2018.09.24 |
[OS] 정리2 (0) | 2018.09.23 |
[OS] 정리1 (0) | 2018.09.21 |
pintos information (0) | 2014.02.13 |