쉽게 배우는 운영체제_ch2_컴퓨터의 구조와 성능 향상

shon4bw·2021년 9월 29일
0

📝Quick Study

목록 보기
8/12
post-thumbnail

연습 문제

01

CPU의 구성에 대해 설명하시오
CPU는 명령어를 해석하여 실행하는 장치로, 인간으로 치면 두뇌에 해당
산술논리 연산장치, 제어장치, 레지스터로 구성되며, 이것들의 협업으로 작업을 처리한다.

  • 산술논리 연산장치
    CPU에서 데이터를 연산하는 장치(Arithmetic and Logic Unit,ALU)
    데이터의 덧셈, 뺄셈, 곱셈, 나눗셈과 같은 산술 연산과 AND, OR 같은 논리 연산을 수행
  • 제어장치
    CPU에서 작업을 지시하는 부분(Control Unit)
  • 레지스터
    요리할 때 재료를 필요한 만큼 쥐고 있는 것처럼 CPU 내에 데이터를 임시로 보관하는 곳(Register)

02

폰노이만 구조의 가장 중요한 특징은
CPU, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 폰노이만 구조에서는 모든 프로그램이 메모리에 올라와야 실행이 가능하다.

오늘날의 컴퓨터는 대부분 von Neumann architecture를 따름
폰노이만 구조가 등장하기 전의 컴퓨터는 전선을 연결하여 회로를 구성하는 하드와이어링 형태였기 때문에 다른 용도로 사용하려면 전선의 연결을 바꿔야 했다.
이를 해결하기 위해 존 폰노이만은 메모리를 이용하여 프로그래밍이 가능한 컴퓨터 구조, 즉 하드웨어는 그대로 둔 채 작업을 위한 프로그램만 교체하여 메모리에 올리는 방식을 제안
폰노이만 구조 덕분에 오늘날에 프로그래밍 기술을 이용하여 컴퓨터로 다양한 작업이 가능하게 됨

03

버스의 종류
제어 버스, 주소 버스, 데이터 버스

버스는 하드웨어 사양 관련 용어 中 하나.
CPU와 메모리, 주변장치 간에 데이터를 주고받을 때 사용.

  • 제어 버스(control bus): 다음 작업을 지시하는 제어 신호가 오고 간다. 제어 장치와 연결된 버스. CPU가 메모리와 주변장치에 제어 신호를 보내기 위해 사용. 메모리와 주변장치에서도 작업이 완료되거나 오류가 발생하면 제어 신호를 보내기 때문에 양방향.
  • 주소 버스(address bus): 메모리의 데이터를 읽거나 쓸 때 어느 위치에서 작업할 것인지를 알려주는 위치 정보(주소)가 오고 감. 하드디스크의 어느 위치에서 데이터를 읽어올지, 어느 위치에 저장할지에 대한 위치 정보가 전달됨. 메모리 주소 레지스터와 연결되어 있으며 단방향.
  • 데이터 버스(data bus): 제어 버스가 다음에 어떤 작업을 할지 신호를 보내고 주소 버스가 위치 정보를 전달하면, 데이터가 데이터 버스에 실려 목적지까지 이동한다. 메모리 버퍼 레지스터와 연결되어 있으며 양방향이다.

04

단방향 버스에 대해 설명하시오
자료가 한 방향으로 전달하는 버스 ex 주소 버스

05

다음에 실행할 명령어의 주소를 가지고 있는 레지스터는?
프로그램 카운터(PC)

06

다음에 실행할 명령어를 보관하는 레지스터는?
명령어 레지스터(IR)

07

메모리 주소를 보관하는 레지스터는?
메모리 주소 레지스터(MAR)

08

메모리에 저장할 데이터나 메모리에서 가져온 데이터를 임시 보관하는 레지스터는?
메모리 버퍼 레지스터(MBR)

09

주소 버스와 연결되어 잇는 레지스터는?
메모리 주소 레지스터(MAR)

10

데이터 버스와 연결되어 있는 레지스터는?
메모리 버퍼 레지스터(MBR)

11

프래그램을 보호하기 위해 사용하는 두 가지 레지스터는?
경계 레지스터, 한계 레지스터

12

속도 차이가 나는 두 장치 사이에서 속도를 완화하는 장치를 무엇이라고 통칭하는가?
버퍼

13

응용 프로그램과 프린터 사이에서 속도 차이를 완화하는 소프트웨어는?
스풀러

SPOOL(Simultaneous Peripheral Operation On-Line)
CPU와 입출력장치가 독립적으로 동작하도록 고안된 소프트웨어적인 버퍼로, 대표적인 예는 프린터에 사용되는 Spooler이다. 스풀러는 인쇄할 내용을 순차적으로 출력하는 소프트웨어로 출력 명령을 내린 프로그램과 독립적으로 동작한다. 스풀러를 사용하면 인쇄할 내용을 하드디스크의 스풀러 공간에 저장하고 워드 프로세서는 다른 작업을 할 수 있다. 문서 작업과 프린터 출력 작업이 독립적으로 진행되는 것이다.

14

부팅 시 운영체제를 메모리로 가져오기 위해 사용하는 작은 프로그램은?
부트 스트랩

15

속도가 빠르고 값이 비싼 저장장치를 CPU 가까운 쪽에 두고, 값이 싸고 용량이 큰 저장장치를 반대쪽에 배열하는 방식은?
저장장치의 계층 구조

16

작업의 효율성을 높이기 위해 CPU가 입출력 관리자에게 입출력 작업을 요청하면 작업을 마친 입출력 관리자는 CPU에 무엇을 보내는가?
인터럽트

인터럽트 번호를 사용하는 이유
인터럽트는 입출력 관리자가 CPU에 보내는 완료 신호이다. 컴퓨터에는 하드디스크뿐 아니라 마우스, 키보드 등 다양한 입출력장치가 있다. 인터럽트 방식에는 많은 주변장치 중 어떤 것의 작업이 끝났는지를 CPU에 알려주기 위해 Interrupt Number를 사용한다.

17

CPU의 도움 없이도 메모리를 사용할 수 있도록 입출력 관리자에게 주는 권한은?
직접 메모리 접근(Direct Memory Access, DMA)

원래 메모리 접근은 CPI만 접근 권한을 가진 작업 공간이라 입출력 관리자는 접근이 불가능하기 때문에 입출력 관리자에게 CPU 허락없이 메모리에 접근할 수 있는 권한을 주는 것이다. 데이터 전송을 지시받은 입출력 관리자는 직접 메모리 접근 권한이 있어야 CPU의 관여없이 작업을 완료할 수 있다.

18

CPU와 입출력 관리자가 서로 다른 메모리 영역을 사용하는 기법은?
메모리 매핑 입출력(Memory Mapped I/O, MMIO)

MMIO는 CPU가 사용하는 메모리 공간과 직접 메모리 접근을 통해 들어오거나 나가는 데이터를 위한 공간을 분리한다. 즉, 메모리의 일정 곤가을 입출력 공간에 할당하는 기법이다.

19

CPU가 병렬 처리를 지원하지 않을 때 소프트웨어적으로 병렬 처리를 하는 기법은?
VLIW 기법(Very Long Instruction Word)

심화 문제

생략된 문제들 = 연습 문제 추가 설명 참고

01

컴퓨터에서 클록이 하는 역할
클록 = CPU의 속도와 관련된 단위, CPU가 작업할 때 일정한 박자를 만들어낸다.
CPU가 작업할 때 클록이 일정한 가격으로 Tick을 만들며 거기에 맞춰 CPU 안의 모든 구성 부품이 작업을 한다.
메인 보드의 클록이 틱을 보낼 때마다 데이터를 주고 받는다.

02

프로그램 카운터 레지스터의 역할
다음에 실행할 명령어의 주소를 기억하고 있다가 제어장치에 알려준다.
다음에 실행할 명령어의 주소를 가리키기 때문에 프로그램 카운터를 Instruction Pointer(명령어 포인터)라고도 한다.

04

휘발성 메모리와 비휘발성 메모리를 비교하시오.
램= 휘발성 메모리(전력이 끊기면 데이터가 사라짐), 비휘발성 메모리(전력이 끊겨도 데이터 보관 가능)

i) Volatility Memory

  • DRAM(Dynamic RAM, 동적 램)
  • SRAM(Static, RAM, 정적 램)
    : DRAM은 저장된 0과 1의 데이터가 일정 시간이 지나면 사라지므로 일정시간마다 다시 재생시켜야 한다. Dynamic은 시간이 지나면 데이터가 사라지기 대문에 재생이 필요하다는 의미이다.
    SRAM은 전력이 공급되는 동안에는 데이터를 보관할 수 있어 재생할 필요가 없다. SDRAM은 클로틱이 발생할 때마다 데이터를 저장하는 동기 DRAM이다.

ii) Non-Volatility Memory

  • Flash Memory, FRAM(Ferroelectric RAM), PRAM(Phrase change RAM) 등
    : 전력이 끊겨도 데이터가 남기 때문에 편리할 수 있지만, 데이터를 보관해야 하므로 메모리 내부가 복잡하고 속도가 느리며 가격이 비싸다.

05

DDR SDRAM에 대해 설명하시오.
Double Data Rate SDRAM은 SDRAM이 메인보드의 시스템 버스와 같은 속도로 느리게 작동하여 전반적인 작업 속도를 떨어뜨리는 문제를 완화하기 위해 SDRAM의 대역폭을 늘려 데이터 입출력 속도를 빠르게 한 것이다.

07

즉시 쓰기 방식의 캐시와 지연 쓰기 방식의 캐시를 비교하시오.
캐시의 변경된 데이터를 메모리에 반영하는 방법 : 즉시 쓰기 방식, 지연 쓰기 방식
Write Through는 캐시에 있는 데이터가 변경되면 이를 즉시 메모리에 반영한다. 메모리와의 빈번한 데이터 전송으로 인해 성능이 느려진다는 단점이 있지만, 메모리의 최신 값이 항상 유지되기 때문에 급작스러운 정전에도 데이터를 잃어버리지 않는다.
Write Back은 캐시에 있는 데이터가 변경되면 이를 즉시 메모리에 반영하는 것이 아니라 변경된 내용을 모아서 주기적으로 반영하는 방식이다. Copy Back이라고도 한다. 메모리와의 데이터 전송 횟수가 줄어들어 시스템의 성능을 향상시킬 수 있으나 메모리와 캐시된 데이터 사이의 불일치가 발생할 수도 있다는 것이 단점이다.

profile
cut_the_mustard

0개의 댓글