[혼공학습단 9기] 혼공컴운 3주차

Pt J·2023년 1월 17일
0
post-thumbnail

학습 범위

컴퓨터의 네 가지 핵심 부품 중 메모리, 보조기억장치, 입출력장치에 대해 알아가는 시간이다.

메모리와 캐시 메모리

RAM의 특징과 종류

우리가 흔히 "메모리"라고 부르는 것은 주기억장치 RAM과 ROM 중 RAM을 의미한다.
RAM은 Random Access Memory의 약자로, 이곳에는 실행할 프로그램의 명령어와 데이터가 저장된다.

  • 비휘발성 저장 장치 non-volatile memory
    대표적으로 하드디스크, SSD, CD-ROM, USB 메모리 등의 보조기억장치
    보관할 대상 저장
  • 휘발성 저장 장치 volatile memory
    대표적으로 RAM
    실행할 대상 저장

실행하고자 하는 프로그램이 보조기억장치에 있다면 이를 RAM으로 복사하여 저장한 뒤 실행.
RAM 용량이 충분히 크다면 보조기억장치에서 더 많은 데이터를 가져와 저장해둘 수 있다.
따라서 RAM 용량이 클수록 데이터를 가져오는 통신 횟수를 줄일 수 있다.
다만, 필요 이상으로 커졌을 경우에는 더 늘려도 크게 달라지지 않는다.

RAM은 크게 네 가지 종류가 있다.

  • DRAM dynamic RAM
    저장된 데이터가 동적으로 변하는 RAM.
    시간이 지나면 저장된 데이터가 점차 사라진다
    데이터 소멸을 막기 위해 일정 주기로 데이터 재활성화 필요.
    우리가 일반적으로 사용하는 메모리
    소비 전력이 비교적 낮고 저렴하고 집적도가 높아 대용량으로 설계하기 용이.
  • SRAM static RAM
    저장된 데이터가 변하지 않는 RAM.
    시간이 지나도 저장된 데이터가 사라지지 않는다
    일반적으로 DRAM보다 빠른 속도.
    DRAM보다 집적도, 소비 전력, 가격 측면에서 뒤쳐진다
    캐시 메모리 등 대용량으로 만들 필요는 없지만 속도가 빨라야 하는 저장 장치에 사용.
  • SDRAM synchronomous dynamic RAM
    클럭 신호와 동기화된, 발전된 형태의 DRAM.
    클럭 타이밍에 맞춰 CPU와 정보 공유 가능.
  • DDR SDRAM double data rate SDRAM
    대역폭을 넓혀 속도를 빠르게 한 SDRAM.
    한 클럭에 주고 받을 수 있는 데이터 양이 SDRAM의 두 배.
    (이 관점에서 SDRAM을 SDR SDRAM single data rate SDRAM 이라고도 한다)
    이보다 두 배 더 늘린 것을 DDR2 SDRAM이라고 하며,
    DDR2 SDRAM보다 두 배 늘린 것을 DDR3 SDRAM이라고 한다.
    (두 배 늘어날 때마다 숫자가 1씩 커진다.)

더 알아보기

[컴퓨터 공학 기초 강의] 15강. RAM의 특성과 종류】

메모리의 주소 공간

프로그램이 새로 적재되고 또 삭제되는 과정에서 프로그램은 매번 다른 위치에 적재되며
메모리에 저장된 정보는 시시각각 변화한다.
이런 상황에서 CPU와 실행중인 프로그램은 무엇이 어디에 저장되어 있는지 알기 어려워
실제 메모리가 저장된 물리 주소 외에도 논리 주소라는 개념을 사용한다.

  • 물리 주소 physical address
    메모리 하드웨어가 사용하는 주소
    정보가 실제로 저장된 하드웨어상의 주소
  • 논리 주소 logical address
    CPU와 실행 중인 프로그램이 사용하는 주소
    실행 중인 프로그램 각각에 부여된 0번지부터 시작되는 주소
    다른 프로그램의 메모리 내용을 알 필요 없으니 자신만을 위한 장소 사용.

논리 주소와 물리 주소 간의 변환이 이루어져야 CPU와 메모리가 소통할 수 있다.
이에 필요한 것이 메모리 관리 장치(MMU) Memory Management Unit.
MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환.

  • 베이스 레지스터 | 프로그램의 첫 물리 주소.
  • 논리 주소 | 프로그램의 시작점으로부터 떨어진 거리.

그런데 만약 논리 주소가 프로그램이 차지하는 메모리 공간의 범위를 벗어난다면
다른 프로그램의 데이터를 훼손하는 결과가 발생할 것이다.
이를 방지하기 위해 한계 레지스터를 통해 논리 주소의 범위를 제한한다.

  • 한계 레지스터 | 논리 주소의 최대 크기.
    ⇒ 물리 주소의 범위는 (베이스 레지스터 값) ~ (베이스 레지스터 값 + 한계 레지스터 값)

CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터 값보다 작은지 항상 검사.
만약 한계 레지스터 값보다 큰 값에 접근하려고 한다면 인터럽트(트랩) 발생.

더 알아보기

[컴퓨터 공학 기초 강의] 16강. 메모리의 주소 공간-물리 주소와 논리 주소】

캐시 메모리

빠른 속도와 큰 용량은 양립하기 어렵다.
따라서 컴퓨터는 속도와 비용이 다른 다양한 저장 장치를 이용한다.

  • CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
  • 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.

컴퓨터의 저장장치를 CPU에 얼마나 가까운가를 기준으로 나타낸 것을
저장 장치 계층 구조 memory hierarchy 라고 하며, 다음과 같이 나타낼 수 있다.

CPU는 프로그램 실행 과정에서 메모리에 빈번하게 접근해야 하는데 메모리에 접근하는 속도가 느리다.
CPU 연산 속도보다 느린 메모리 접근 속도를 보완하기 위해 캐시 메모리 cache memory 를 사용할 수 있다.

  • CPU와 메모리 사이에 위치.
  • 메모리보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
  • CPU가 사용할 일부 데이터를 미리 가져와 활용하기 위한 공간
  • CPU 코어와 가까운 순서대로 계층 구성.
    가까운 순으로 L1 캐시 Level 1, L2 캐시 Level 2, L3 캐시 Level 3.
    이 역시 가까울수록 용량이 작고 속도가 빠르며 가격이 비싸다
    일반적으로 L1, L2 캐시는 코어 내부에, L3 캐시는 외부에 존재.
    CPU가 데이터가 필요하다고 판단하면 L1 캐시부터 검색하여 없다면 L2, L3 순서로 검색.
    멀티 코어 프로세서에서는 일반적으로 L1, L2 캐시는 코어마다 할당, L3 캐시는 여러 코어가 공유.
  • 저장 장치 계층 구조에는 레지스터와 메모리 사이에 위에서부터 L1, L2, L3 순서로 포함시킬 수 있다

때로는 L1 캐시를 명령어만 저장하는 L1I 캐시와 데이터만 저장하는 L1D 캐시로 분리하기도 하는데
이와 같은 캐시를 분리형 캐시 split cache 라고 한다.

캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장한다.

  • 캐시 히트 cache hit
    자주 사용될 것으로 예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용된 경우.
  • 캐시 미스 cache miss
    자주 사용될 것이라는 예측이 틀려 메모리에 필요한 데이터를 직접 가져와야 하는 경우.
    캐시 메모리의 이점을 활용할 수 없는 상황으로, 자주 발생하면 성능 저하 발생.
  • 캐시 적중률 cache rate
    캐시가 히트되는 비율.
    캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
    우리가 사용하는 컴퓨터의 캐시 적중률은 대략 85~95%

캐시 메모리는 참조 지역성의 원리 locality of reference, principle of locality 에 따라
가져올 메모리를 결정한다.

  • 시간 지역성 temporal locality
    CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다는 경험적 특성
    프로그래밍을 할 때 어떤 값을 변수에 저장해놓고 사용하는데,
    변수에 해당하는 값은 프로그램이 실행되는 동안 여러 번 사용된다.
  • 공간 지역성 spatial locality
    CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다는 경험적 특성
    한 프로그램을 위한 데이터끼리 한데 모여 있으며
    프로그램 내에서도 관련 있는 데이터들은 모여서 저장되는 경향이 있다.

더 알아보기

[컴퓨터 공학 기초 강의] 17강. 캐시 메모리】

보조기억장치

다양한 보조기억장치

하드 디스크 HDD; Hard Disk Drive 는 자기적인 방식으로 데이터를 저장하는 보조기억장치이다.
자기 디스크 magnetic disk 의 일종으로, 플래터, 스핀들, 헤드, 디스크 암으로 구성된다.

  • 플래터 platter
    하드디스크에서 실질적으로 정보가 저장되는 곳
    수많은 N극과 S극을 저장하며, N극과 S극이 0과 1의 역할을 수행.
    • 트랙 track
      플래터를 여러 동심원으로 나누었을 때 그 중 하나
    • 섹터 sector
      트랙을 방사형으로 쪼갠 조각
      하드 디스크의 가장 작은 전송 단위
      일반적으로 512byte 정도인데 하드 디스크에 따라 차이가 있다
    • 실린더 cylinder
      여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위
      연속된 정보는 보통 한 실린더에 저장하여 디스크 암의 이동을 최소화
  • 스핀들 spindle
    플래터를 회전시키는 구성 요소
    회전 속도는 분당 회전수, 즉 RPM Revolution Per Minute 단위로 표현.
  • 헤드 head
    플래터의 데이터를 읽고 쓰는 구성 요소
    플래터 위에 미세하게 떠 있는 채로 데이터를 읽고 쓰는, 바늘같이 생긴 부품
  • 디스크 암 disk arm
    헤드를 원하는 위치로 이동시키는 구성 요소
    일반적으로 플래터는 여러 겹으로 이루어져 있으며 양면을 모두 사용하는데
    이 때 디스크 암은 다 같이 이동한다
    (엄밀히 말하면 디스크 암은 한 곳에 모여 있고, 플래터가 동일한 속도로 다 같이 돌아간다)

하드 디스크가 저장된 데이터에 접근하는 시간은 크게 탐색 시간, 회전 지연, 전송 시간으로 나뉜다.

  • 탐색 시간 seek time
    접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
    단일 헤드 디스크(이동 헤드 디스크)의 경우에만 존재하고 다중 헤드 디스크(고정 헤드 디스크)의 경우 0.
  • 회전 지연 rotational latency
    헤드가 있는 곳으로 플래터를 회전시키는 시간
  • 전송 시간 transfer time
    하드 디스크와 컴퓨터 간의 데이터를 전송하는 시간

참조 지역성을 높이면 탐색 시간 및 회전 지연을 개선할 수 있다.

하드 디스크 외에도 플래시 메모리 flash memory 도 보조기억장치에 많이 사용된다.
플래시 메모리는 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반 저장 장치이다.
보조기억장치 외에도 다양한 곳에 널리 사용되며,
USB 메모리, SD 카드, SSD 등이 플래시 메모리에 포함된다.

기반 회로에 따라 NAND 플래시 메모리 또는 NOR 플래시 메모리로 구분되며,
보조기억장치로 사용되는 플래시 메모리는 NAND 플래시 메모리다.

플래시 메모리에 데이터를 저장하는 가장 작은 단위는 cell 이며
하나의 세에 몇 비트를 저장할 수 있느냐에 따라 플래시 메모리의 종류가 나뉜다.

  • SLC Single Level Cell 타입 플래시 메모리
    한 셀에 1비트를 저장할 수 있는 플래시 메모리
    비트의 빠른 입출력 가능
    상대적으로 수명이 길지만 용량 대비 가격이 높은 편
    기업에서 데이터 읽고 쓰기가 매우 많이 반복되며 고성능의 빠른 저장 장치가 필요한 경우에 사용
  • MLC Multiple Level Cell 타입 플래시 메모리
    한 셀에 2비트를 저장할 수 있는 플래시 메모리
    셀 하나로 네 개의 정보 표현 가능
    SLC 타입에 비해 속도와 수명은 떨어지지만 대용량화하기 유리
  • TLC Triple Level Cell 타입 플래시 메모리
    한 셀에 3비트를 저장할 수 있는 플래시 메모리
    셀 하나로 여덟 개의 정보 표현 가능
    시중에 사용되는 많은 플래시 메모리 저장 장치들은 MLC 타입 혹은 TLC 타입

셀들이 모이면 페이지 page,
페이지들이 모이면 블록 block,
블록들이 모이면 플레인 plane,
플레인들이 모이면 다이 die 가 된다.

플래시 메모리의 읽기/쓰기는 페이지 단위로 이루어지지만
삭제는 블록 단위로 이루어진다.

페이지는 세 가지 상태를 가질 수 있다.

  • Free 상태
    어떤 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
  • Valid 상태
    이미 유효한 데이터를 저장하고 있는 상태
    덮어쓰기가 불가능하여 이 상태인 페이지에 새 데이터 저장 불가
  • Invalid 상태
    유효하 않은 데이터를 저장하고 있는 상태

데이터를 수정하고자 할 땐 해당 데이터를 Invalid 상태로 만들고 수정된 데이터를 새로 저장한다.
이 때, Invalid 상태인 페이지는 쓸데없이 공간을 차지하고 있는데
가비지 컬렉션 garbage collection 기능을 통해
유효한 페이지만 새로운 블록으로 복사한 뒤 기존 블록을 삭제함으로써 공간을 정리할 수 있다.

더 알아보기

[컴퓨터 공학 기초 강의] 18강. 다양한 보조기억장치(하드 디스크와 플래시 메모리)】

RAID의 정의와 종류

정보량이 많고 민감한 정보도 많아 안전하게 관리할 필요가 있을 때
RAID Redundant Array of Independent Disks 를 사용할 수 있다.

RAID는 데이터의 안전성 혹은 높은 성능을 위해
여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술이다.
주로 하드 디스크와 SSD를 사용하여 구현한다.

RAID를 구성하는 방법을 RAID 레벨이라고 하며
대표적으로 RAID 0, 1, 4, 5, 6이 있고, 그로부터 파생된 RAID 10, RAID 50 등이 있다.
가장 대중적인 RAID 레벨 몇 가지를 알아보도록 하겠다.

  • RAID 0
    여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식
    저장되는 데이터를 하드 디스크 개수만큼 나누어 저장
    줄무늬처럼 분산되어 저장된 데이터를 스트라입 stripe,
    그리고 그렇게 분산하여 저장하는 것을 스트라이핑 striping 이라고 한다
    분산 저장된 하드 디스크 중 하나라도 문제가 생기면 모든 하드 디스크의 정보 읽기에 문제 발생
  • RAID 1
    RAID 0의 문제를 보완하기 위한 방식으로, 복사본을 만드는 구성 방식
    완전한 복사본을 만드는 구성이기에 미러링 mirroring 이라고도 한다
    같은 데이터를 두 군데 쓰기 때문에 쓰기 속도는 RAID 0에 비해 느리다
    문제 발생 시 복구가 수월지만 사용 가능한 용량이 줄어 많은 양의 하드 디스크가 필요하다
  • RAID 4
    완전한 복사본을 만드는 대신 오류 검출 및 복구를 위한 정보를 저장하는 장치를 두는 구성 방식
    오류 검출 및 복구를 위한 정보를 패리티 비트 parity bit 라고 한다
    RAID 1보다 적은 하드 디스크로 데이터를 안전하게 보관 가능
  • RAID 5
    RAID 4의 패리티를 저장하는 디스크에 병목 현상이 발생한다는 문제를 보완하기 위한 방식
    패리티 정보를 분산하여 저장하는 구성 방식
  • RAID 6
    기본적으로 RAID 5와 같으나 서로 다른 두 개의 패리티를 사용하여 보다 안전하게 만든 구성 방식
    쓰기 속도는 RAID 5보다 느리지만 데이터를 더욱 안전하게 보관하고자 할 때 사용

각 RAID 레벨마다 장단점이 있으므로 상황에 따라 최적의 RAID 레벨을 선택하여 사용한다.

더 알아보기

[컴퓨터 공학 기초 강의] 19강. RAID의 정의와 종류】

입출력장치

장치 컨트롤러와 장치 드라이버

입출력장치는 크게 두 가지 이유에서 CPU, 메모리보다 다루기 까다롭다.

  • 너무 많은 종류
    장치마다 속도, 데이터 전송 형식 등 다양
    입출력장치와 정보를 주고 받는 방식을 규격화하기 어렵다
  • 낮은 데이터 전송률
    같은 시간 동안 데이터를 조금씩만 주고 받을 수 있다
    전송률이 높은 CPU와 통신하기 어렵다
    경우에 따라서 CPU보다 데이터 전송률이 높은 장치도 있지만, 비슷한 값이 아니긴 마찬가지

따라서 입출력장치는 컴퓨터에 직접 연결되지 않고
장치 컨트롤러 device controller 라는 하드웨어를 통해 연결된다.
이것은 입출력 제어기 I/O controller, 입출력 모듈 I/O module 등으로도 불리며
다음과 같은 역할을 수행한다.

  • CPU와 입출력장치 간의 통신 중개
  • 오류 검출
  • 데이터 버퍼링
    이 역할을 통해 데이터를 버퍼 buffer 라는 임시 저장 공간에 모았다가 전송 속도를 조절

장치 컨트롤러 내부를 간략하게 도식화하면 다음과 같다.

  • 데이터 레지스터 data register
    CPU와 입출력장치 사이에 주고 받을 데이터가 담기는 레지스터
    버퍼 역할
    주고 받는 데이터가 많은 장치에서는 레지스터 대신 RAM 사용
  • 상태 레지스터 status register
    입출력 작업 준비/완료가 되었는지, 오류는 없는지 등 상태 정보 저장
  • 제어 레지스터 control register
    입출력장치가 수행할 내용에 대한 제어 정보와 명령 저장

경우에 따라서는 상태 레지스터와 제어 레지스터의 역할은 하나의 레지스터가 수행하기도 한다.

새로운 장치를 컴퓨터에 연결하면 장치 드라이버 device driver 를 설치해야 하는데,
이는 장치 컨트롤러의 동작을 감지하고 제어함으로써
장치 컨트롤러가 컴퓨터 내부와 정보를 주고 받을 수 있게 하는 프로그램이다.

더 알아보기

[컴퓨터 공학 기초 강의] 20강. 장치 컨트롤러와 장치 드라이버】

다양한 입출력 방법

장치 컨트롤러는 CPU와 정보ㄹ 주고 받기 위해
프로그램 입출력, 인터럽트 기반 입출력, DMA 입출력 등의 방법을 이용한다.

프로그램 입출력

프로그램 입출력 programmed I/O 은 기본적으로 프로그램 속 명령어로 입출력장치를 제어하는 방법이다.
프로그램 속 명령어를 실행하다 입출력 명령어를 만나면 장치 컨트롤러와 상호작용하며 입출력 작업 수행.

CPU가 장치 컨트롤러의 레지스터 값을 읽고 씀으로써 이루어진다.
장치 컨트롤러 속 레지스터를 사용하기 위해 사용하는 방식은 크게 두 가지가 있다.

  • 메모리 맵 입출력 memory-mapped I/O
    메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주.
    표현할 수 있는 주소의 일부는 메모리를 다른 일부는 장치 컨트롤러 레지스터를 표현.
    각각의 주소에 특정 장치 컨트롤러의 레지스터를 매핑하여 메모리 주소 다루듯이 사용.
  • 고립형 입출력 isolated I/O
    메모리를 위한 주소 공간과 입출력장치를 위한 주소 공간 분리.
    제어 버스에 "메모리 읽기/쓰기" 선과 별개로 "입출력장치 읽기/쓰기" 선 생성.
    "입출력장치 읽기/쓰기" 선이 활성화되었을 때 장치 컨트롤러에 접근.

인터럽트 기반 입출력

인터럽트 기반 입출력 interrupt-driven I/O 은 인터럽트를 기반으로 입출력을 수행하는 방법이다.

  • CPU가 장치 컨트롤러에 입출력 작업을 명령하고,
    장치 컨트롤러가 입출력 장치를 제어하며 입출력을 수행하는 동안 CPU는 다른 작업 수행.
  • 장치 컨트롤러가 입출력 작업을 끝낸 후 CPU에게 인터럽트 요청 신호를 보내면
    CPU는 하던 일을 잠시 백업하고 인터럽트 서비스 루틴 실행.

서로 다른 입출력장치로부터 인터럽트가 전달된다면 우선순위에 따라 처리한다.

  • 먼저 들어온 인터럽트가 우선순위가 더 높다면 그것을 완료한 후 다음 인터럽트 처리
  • 나중에 들어온 인터럽트가 우선순위가 더 높다면 나중에 들어온 것부터 처리하고 기존 것 처리

우선순위를 반영하여 다중 인터럽트를 처리하기 위해 많은 컴퓨터는
프로그래머블 인터럽트 컨트롤러(PIC) Programmable Interrupt Controller 를 사용하는데,
이것은 여러 장치 컨트롤러에 연결되어 하드웨어 인터럽트 요청들의 우선순위를 판별한 뒤
CPU에 지금 처리해야 할 하드웨어 인터럽트는 무엇인지 알려준다.
무시할 수 없는 인터럽트(NMI) Non-Maskable Interrupt 의 경우 우선순위가 가장 높아
우선순위 판별이 불필요하기 때문에 PIC를 거치지 않고 처리된다.

DMA 입출력

DMA Direct Memory Access 는 CPU 부담을 줄이기 위해
입출력장치와 메모리가 CPU를 거치지 않고 상호작용 할 수 있도록 하는 방법이다.
이를 위해 시스템 버스에 연결된 DMA 컨트롤러라는 하드웨어가 필요하다.

  • CPU는 DMA 컨트롤러에 입출력장치 주소, 수행할 연산, 메모리 주소 등의 정보로 입출력 작업 명령
  • DMA 컨트롤러는 CPU 대신 장치 컨트롤러와 상호작용하여 입출력 작업 수행
  • 입출력 작업이 끝나면 DMA 컨트롤러는 CPU에 인터럽트를 걸어 작업이 끝났음을 알림

그런데 시스템 버스는 공용이기에 CPU와 DMA 컨트롤러가 시스템 버스를 동시에 사용할 수 없다.
따라서 DMA 컨트롤러는 CPU가 시스템 버스를 이용하지 않을 때 조금씩 이용하거나
일시적으로 시스템 버스를 이용하지 않도록 허락을 구하고 집중적으로 이용한다.

DMA에 의해 CPU가 시스템 버스를 이용하지 못하는 문제를 완화하기 위해
DMA 컨트롤러와 장치 컨트롤러를 입출력 버스 I/O bus 라는 별도의 버스에 연결하기도 한다.

  • CPU에서 제어 신호를 받고 메모리에서 데이터를 읽어오는 것만 시스템 버스 이용
  • 장치 컨트롤러와의 데이터 전송에는 입출력 버스 이용

현대 대부분 컴퓨터에는 입출력 버스가 있으며,
입출력 버스에는 PCI Peripheral Component Inteconnect 버스, PCI Explress 버스 등이 있다.

더 알아보기

[컴퓨터 공학 기초 강의] 21강. 다양한 입출력 방법 】

미션 수행하기

이번 주 미션

  • 기본 미션 | p. 185의 확인 문제 3번, p. 205의 확인 문제 1번 풀고 인증하기
  • 선택 미션 | Ch.07(07-1) RAID의 정의와 종류를 간단히 정리해 보기

기본 미션

미션은 P.185의 3번 문제와 P.205의 1번 문제뿐이지만, 이왕 학습하고 확인 문제를 푸는 거 다 풀어보자.

P.184~185 [06-1 | RAM의 특징과 종류] 확인 문제

  1. RAM에 대한 설명 중 옳지 않은 것을 고르세요.
    ① RAM은 휘발성 저장 장치입니다.
    ② DRAM은 시간이 지나면 점차 데이터가 사라지는 RAM입니다.
    ③ SRAM은 흔히 주기억장치, 즉 메모리로 사용됩니다. → 메모리로 사용되는 건 DRAM, SRAM은 주로 캐시 메모리.
    ④ RAM이 크면 많은 프로그램을 동시에 빠르게 실행하는 데 유리합니다.
  1. 다음 보기에 있는 RAM의 종류를 옳게 짝지어 써 보세요.
    [보기| DRAM, SRAM, SDRAM, DDR SDRAM]
  • 대역폭을 두 배 넓힌 SDRAM [① DDR SDRAM ]
  • 시간이 지나도 저장된 데이터가 사라지지 않는 RAM [② SRAM ]
  • 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화해야 하는 RAM [③ DRAM ]
  • 클럭과 동기화된 DRAM [④ SDRAM ]
  1. 다음 설명을 읽고 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰세요.
    [보기| SRAM, DRAM]
  • 주로 캐시 메모리로 활용됩니다. [① SRAM ]
  • 주로 주기억장치로 활용됩니다. [② DRAM ]
  • 대용량화하기 유리합니다. [③ DRAM ]
  • 집적도가 상대적으로 낮습니다. [④ SRAM ]

(요것이 이번주 기본 미션!!)

(초판의 경우 문제가 조금 이상한데 저자 깃허브에서 수정된 문제를 확인할 수 있다.)

  1. 빈칸에 알맞은 말을 차례대로 써넣으세요.
    "DDR3 SDRAM은 DDR2 SDRAM에 비해 대역폭이 [① 2 ] 배 넓은 RAM입니다.
    DDR2 SDRAM은 DDR SDRAM에 비해 대역폭이 [① 2 ] 배 넓은 RAM입니다."

P.194~195 [06-2 | 메모리의 주소 공간] 확인 문제

  1. 주소와 관련된 설명으로 옳은 것을 고르세요.
    ① 실행되는 프로그램은 항상 같은 메모리 주소에 적재됩니다. → 적재할 때마다 달라진다.
    ② 논리 주소와 물리 주소의 구분은 의미가 없습니다. → 그 구분이 프로그램들을 독립적인 메모리를 가진 것처럼 사용하게 한다.
    ③ 프로그램이 실행될 때마다 다른 주소에 적재될 수 있습니다.
    ④ CPU가 이해하는 주소는 물리주소 입니다. → CPU가 이해하는 건 논리 주소.
  1. 논리 주소와 물리 주소에 대한 설명 중 옳지 않은 것을 고르세요.
    ① 실행되는 프로그램과 CPU는 메모리의 물리 주소를 알지 못합니다.
    ② MMU는 논리 주소를 물리 주소로 변환합니다.
    ③ 물리 주소는 모든 프로그램의 시작 주소를 0번지로 간주합니다. → 그건 논리 주소.
    ④ 명령어 속 주소는 논리 주소입니다.
  1. MMU에 대한 설명으로 옳은 것을 고르세요.
    ① MMU는 논리 주소를 물리 주소로 변환해 줍니다.
    ② MMU는 대용량 저장 장치 중 하나입니다. → 여기엔 아무것도 저장할 수 없다.
    ③ MMU 없이도 물리 주소와 논리 주소 간의 변환이 가능합니다. → 그랬다면 이 장치는 왜 있을까.
    ④ MMU는 컴퓨터가 부팅이 될 때 한 번만 사용됩니다. → 그 뒤로는 어떻게 변환하려고.
  1. 다음 그림은 논리 주소가 물리 주소로 변환되는 과정을 나타냅니다. 다음 빈칸에 알맞은 단어ㄹ 쓰세요.
    [보기| 한계 레지스터, 베이스 레지스터, 플래그 레지스터, 명령어 레지스터]

① 한계 레지스터
② 베이스 레지스터

P.205 [06-3 | 캐시 메모리] 확인 문제

  1. 다음 보기에 있는 저장 장치들로 저장 장치 계층 구조 도식도를 채우세요.
    [보기| 메모리, 보조기억장치, 캐시 메모리, 레지스터]

① 레지스터
② 캐시 메모리
③ 메모리
④ 보조기억장치

(요것이 이번주 기본 미션!!)

  1. 캐시 메모리와 관련된 설명 중 옳지 않은 것을 고르세요.
    ① 캐시 메모리는 CPU가 사용할 법한 데이터를 저장합니다.
    ② 캐시 메모리는 참조 지역성의 원리에 입각해 데이터를 가져와 저장합니다.
    ③ 캐시 메모리는 메모리와 CPU 사이에 위치합니다.
    ④ 캐시 적중률이 높으면 캐시 메모리의 성능이 떨어집니다. → 성능이 올라간다.

P.219 [07-1 | 다양한 보조기억장치] 확인 문제

  1. 보기는 하드 디스크의 구성 요소입니다. 다음 물음에 알맞은 답을 보기에서 골라 써 보세요.
    [보기| 플래터, 스핀들, 헤드, 디스크 암]
  • 하드 디스크에서 데이터는 어디에 저장되나요? [① 플래터 ]
  • 하드 디스크의 플래터를 돌리는 구성 요소는 무엇인가요? [② 스핀들 ]
  • 하드 디스크에 저장된 데이터를 읽고 쓰는 구성 요소는 무엇인가요? [③ 헤드 ]
  1. SLC, MLC, TLC 타입에 대해 옳지 않은 것을 고르세요.
    ① SLC 타입은 MLC 타입보다 읽고 쓰는 속도가 빠릅니다.
    ② TLC 타입은 MLC 타입보다 읽고 쓰는 속도가 빠릅니다. → 그 반대.
    ③ MLC 타입은 SLC 타입보다 가격이 저렴합니다.
    ④ TLC 타입은 MLC 타입보다 가격이 저렴합니다.

P.228~229 [07-2 | RAID의 정의와 종류] 확인 문제

  1. RAID에 대한 설명으로 옳지 않은 것을 고르세요.
    ① RAID는 여러 보조기억장치들을 마치 하나의 장치처럼 사용하는 기술입니다.
    ② RAID를 구성하지 않아도 보조기억장치는 영구히 사용할 수 있습니다. → 반대로 RAID를 구성해도 영구히 사용 불가.
    ③ RAID를 통해 보조기억장치들의 성능을 높일 수 있습니다.
    ④ RAID를 통해 데이터를 안전하게 보관할 수 있습니다.
  1. RAID 0과 관련한 설명으로 옳은 것을 고르세요.
    ① RAID 0은 하나의 물리적인 보조기억장치만을 사용하는 방식입니다.. → 그건 RAID가 아님.
    ② RAID 0은 안전한 백업이 가능한 RAID 구성 방식입니다. → 백업은 1부터 가능.
    ③ RAID 0은 데이터를 단순히 병렬적으로 분산하여 저장하는 방식입니다.
    ④ RAID 0은 CPU 구성 방식입니다. → 보조기억장치 구성 방식.
  1. 다음 그림과 같이 구성되는 RAID 레벨을 보기에서 고르세요.
    [보기| RAID 0, RAID 1, RAID 4, RAID 5, RAID 6]

RAID 6

P.238~239 [08-1 | 장치 컨트롤러와 장치 드라이버] 확인 문제

  1. 컴퓨터 내부와 정보를 주고받기 위해 입출력장치가 장치 컨트롤러를 이용하는 이유로 옳은 것을 두 가지 고르세요.
    ① 입출력장치는 종류가 많아 주고 받는 정보의 규격화가 어렵기 때문입니다.
    ② CPU는 모든 입출력장치가 사용하는 데이터 형식들을 알고 있기 때문입니다. → 다 알지 못한다.
    ③ 일반적으로 입출력장치와 CPU 간에 전송률의 차이가 크기 때문입니다.
    ④ CPU와 입출력장치 사이에는 중개자가 필요하지 않기 때문입니다. → 그럼 왜 쓰냐.
  1. 장치 컨트롤러의 기능으로 옳지 않은 것을 고르세요.
    ① CPU 또는 입출력장치 간의 통신을 중개합니다.
    ② 전원이 꺼져도 대용량의 데이터를 저장합니다. → 그건 보조기억장치.
    ③ 입출력장치의 오류를 검출합니다.
    ④ 데이터 버퍼링을 통해 전송률 차이를 완화해 줍니다.
  1. 장치 드라이버와 관련한 설명으로 빈칸에 알맞은 말을 보기에서 찾아 써 보세요.
    [보기| 메모리, 장치 컨트롤러, 프로그램, 하드웨어]
    "장치 드라이버는 [① 장치 컨트롤러 ]가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 [② 프로그램 ]입니다."
  1. 장치 드라이버와 관련한 설명 중 옳은 것을 고르세요.
    ① 운영체제가 기본적으로 제공하는 장치 드라이버는 없습니다. → 그런 것도 있다.
    ② 컴퓨터가 장치 드라이버를 인식하고 실행할 수 있다면 해당 입출력장치의 사용이 가능합니다.
    ③ 컴퓨터가 장치 드라이버를 인식하고 실행할 수 없어도 해당 입출력장치의 사용이 가능합니다. → 그럼 장치 드라이버가 왜 필요하냐.
    ④ 장치 드라이버는 하드웨어입니다. → 소프트웨어. 하드웨어는 장치 컨트롤러.

P.255~256 [08-2 | 다양한 입출력 방법] 확인 문제

  1. 메모리 맵 입출력과 고립형 입출력에 관한 설명 중 옳지 않은 것을 고르세요.
    ① 메모리 맵 입출력은 메모리를 위한 주소 공간과 입출력장치 접근하기 위한 주소 공간을 하나의 주소공간으로 간주하는 입출력 방식입니다.
    ② 고립형 입출력 방식은 메모리의 주소 공간을 축소시키는 방법입니다. → 그건 매모 맵 입출력. 고립형의 경우 축소하지 않는다.
    ③ 매모리 맵 입출력 방식은 메모리와 입출력장치에 동일한 명령어로써 접근합니다.
    ④ 고립형 입출력은 분리된 주소 공간으로 메모리와 입출력장치를 관리하는 방식입니다.
  1. 다음 문장에서 A와 B 중 올바른 것을 선택하세요.
    "인터럽트 A의 인터럽트 서비스 루틴을 실행하던 도중 우선순위가 더 높은 인터럽트 B가 발생했을 때 CPU는 인터럽트 [ A, B ]의 인터럽트 서비스 루틴을 잠시 멈추고, 인터럽트 [ A, B ]의 인터럽트 서비스 루틴을 실행합니다."
  1. DMA와 관련한 설명 중 옳지 않은 것을 고르세요.
    ① DMA 작업이 완료되면 DMA 컨트롤러는 CPU에게 인터럽트 요청을 보냅니다.
    ② DMA 컨트롤러와 CPU는 시스템 버스를 동시에 사용할 수 없습니다.
    ③ DMA 컨트롤러는 CPU를 거치고 메모리와 입출력장치 간의 데이터를 주고 받습니다. → 그럴 거면 DMA가 아니지.
    ④ DMA는 프로그램 입출력보다 CPU의 입출력 부담이 적습니다.
  1. 다음과 같이 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 입출력 방식을 무엇이라고 하나요?

메모리 맵 입출력

  1. 다음과 같이 메모리에 접근하기 위한 주소 공간과 입출력 장치에 접근하기 위한 주소 공간을 별도의 주소 공간으로 분리하는 입출력 방식을 무엇이라고 하나요?

고립형 입출력

선택 미션

RAID는 데이터의 안전성 혹은 높은 성능을 목적으로 사용하는,
여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술이다.

구성 방법에 따라 레벨을 나누며, 다음은 가장 대중적인 RAID 레벨과 그 특징이다.

RAID 레벨특징
RAID 0여러 개의 보조기억장치에 데이터를 단순히 나누어 저장; 오류 발생에 취약
RAID 1문제 발생 시 복구를 위해 완전한 복사본을 만드는 미러링 사용; 데이터 대비 많은 공간 필요
RAID 4오류 검출 및 복구를 위한 패리티로 보다 적은 공간으로 안전하게 보관; 패리티 저장하는 디스크 쓰기 빈번
RAID 5패리티 디스크의 병목 현상을 완화하기 위해 패리티 정보 분산 저장
RAID 6서로 다른 두 개의 패리티를 분산 저장하여 안전성 향상; 안전성을 더 높여야 할 때 사용

여담

확인 문제에서 "보기를" 언급할 때
어디에서는 아무것도 안붙이고 "보기"라고 하고
어디에서는 "〈보기〉"라고 한다는 것을 인지해버렸다.

일관성을 가지면 좋을텐데...라는 생각이 들지만 GitHub에 제보할 정도의 무언가는 아닌 것 같기도 하고.
교정/교열 외주에 대한 직업병으로서의 부작용인가...ㅋㅋ;;

이 글을 읽는 출판사 관계자 분들 중 교정/교열 의뢰를 맡기실 의향이 있으신 분은 제 메일ㄹ.....

해당 사항은 오탈자 제보하는 김에 같이 언급해두었다.

profile
Peter J Online Space - since July 2020

0개의 댓글