이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 입출력 작업을 수행하려면 CPU와 장치 컨트롤러가 정보를 주고받아야 한다. CPU와 장치 컨트롤러와 의 정보 교류의 방법은 크게 아래와 같이 3가지가 있다. 프로그램 입출력 인터럽트 기반 입출력 DMA 입출력 프로그램 입출력 프로그램 입출력은 기본적으로 프로그램 속 명령어로 입출력장치를 제어하는 방법 CPU가 프로그램 속 명령어를 실행하는 과정에서 입출력 명령어를 만나면 CPU는 입출력장치에 연결된 장치 컨트롤러와 상호작용하며 입출력 작업을 수행 메모리에 저장된 정보를 하드 디스크에 백업하는 상황이라면 CPU는 대략 아래 과정으로 입출력 작업을 한다. 1. CPU는 하드..
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 입출력장치는 모니터, 키보드 스피커 마우스뿐만 아니라 외장 하드 디스크, USB메모리 등도 포함된다. 보조기억장치가 컴퓨터 내부와 정보를 주고받는 방식은 입출력장치와 크게 다르지 않기 때문이다. 장치 컨트롤러 입출력장치는 CPU, 메모리보다 다루기가 더욱 까다롭다. 이유는 두 가지가 있다. 입출력 장치에는 종류가 너무나도 많다. 일반적으로 CPU와 메모리는 데이터 전송률이 높지만, 입출력 장치의 데이터 전송률은 낮다. 입출력 장치는 여러 개가 있고 각각마다 제조사마다 차이가 조금씩 있다. 따라서 다양한 입출력장치와 정보를 주고받는 방식을 규격화하기가 어렵다. 전송률이란 ..
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 1TB 하드 디스크 네 개로 RAID를 구성하면 4TB 하드 디스크 한 개의 성능과 안전성을 능가할 수 있다. RAID의 정의 우리가 글로벌 IT 기업의 서버를 관리하는 엔지니어라고 생각해 보자. 매일 수십, 수백 TB 데이터가 서버로 쏟아지고, 데이터에는 개인 정보, 결제 정보와 같이 민감한 정보도 포함되어 있다. 또한 보조기억장치에는 수명이 존재한다. 이런 정보를 안전하게 관리할 수 있는 방법 중 하나가 RAID이다. RAID(Redunadant Array of Independent Disks)는 주로 하드 디스크와 SSD를 사용하는 기술로, 데이터의 안전성 혹은 높..
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 보조기억장치에는 다양한 종류가 있다. 그중 가장 대중적인 보조기억장치는 하드 디스크와 플래시 메모리이다. 플래시 메모리는 보조기억장치에만 사용되는 것은 아니다. 하드 디스크(HDD : Hard Disk Drive) 하드디스크는 자기적인 성질(자성)으로 데이터를 저장하는 보조기억장치이다. 이 때문에 하드 디스크를 자기 디스크의 일종으로 지칭하기도 한다. 하드 디스크에서 실질적으로 데이터가 저장되는 곳은 위 그림속 동그란 원판(플래터)이다. 플래터(platter) : 자기 물질로 덮여 있어 수많은 N극과 S극을 저장한다. N극과 S극은 0과 1의 역할을 수행한다. 스핀들 :..
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. CPU가 메모리에 접근하는 시간은 CPU의 연산 속도보다 느리다. CPU가 연산을 빨리 한다 해도 메모리에 접근하는 시간이 느리기 때문에 빠른 연산 속도는 무용지물이 된다. 이를 극복하기 위한 저장 장치가 캐시메모리이다. 저장 장치 계층 구조 빠른 저장 장치와 용량이 큰 저장 장치는 양립하기가 힘들다. 양립할 수 있다 해도 비용이 매우 비쌀 것이다. 저장 장치는 일반적으로 아래와 같은 명제를 따른다. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다. 낮은 가격대의 대용량 저장 장치를 원한다면..
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 주소에는 두 가지 종류가 있다. 물리 주소 : 메모리 하드웨어가 사용하는 주소 논리 주소 : CPU와 실행 중인 프로그램이 사용하는 주소 물리 주소(physical address)와 논리 주소(logical address) CPU와 실행 중인 프로그램은 현재 메모리 몇 번지에 무엇이 저장되어 있는지 다 알 수 없다(메모리에 저장된 정보는 시시각각 변하기 때문) 물리 주소 : 메모리 입장에서 바라본 주소, 정보가 실제로 저장된 하드웨어 상의 주소를 의미 논리 주소 : CPU와 실행 중인 프로그램 입장에서 바라본 주소, 실행 중인 프로그램에게 부여된 0번지부터 시작되는 주소..
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. RAM의 특징 RAM에는 실행할 프로그램의 명령어와 데이터가 저장됨 비휘발성 저장장치이기 때문에 전원이 차단되면 저장된 내용이 모두 사라진다. CPU는 SRAM(캐시 메모리)을 먼저 참조하고 원하는 데이터가 없으면 DRAM(주기억장치)을 참조한다. CPU는 보조기억장치에 직접 접근하지 못하기에 DRAM(주기억장치)에 실행할 프로그램이나 데이터를 적재한다. 그중에서 자주 사용하는 프로그램이나 데이터를 SRAM(캐시 메모리)에 적재한다. RAM의 용량과 성능 RAM 용량이 작다면 CPU가 실행하고 싶은 프로그램이나 데이터를 보조기억장치에서 RAM에 적재하는 작업이 잦아질 것..
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 세상에는 수많은 CPU 제조사들이 있고, CPU마다 규격과 기능들이 모두 달라서 CPU가 이해하고 실행하는 명령어들은 모두 같지가 않다. 기본적인 명령어의 구조와 작동원리는 비슷하지만 명령어의 세세한 생김새, 주소 지정 방식등은 CPU마다 차이가 있다. CPU가 이해할 수 있는 명령어들의 모음을 명령어 집합(Instruction Set) 또는 명령어 집합 구조(ISA : Instruction Set Architecture)라고 한다. 즉, CPU마다 ISA가 다르다는 것이다. 인텔의 노트북 CPU는 x86 또는 x86-64 ISA를 이해하고, 애플의 아이폰 CPU는 AR..