본문 바로가기
🖥️ Computer Science

[쉽게 배우는 운영체제] ch.2 컴퓨터의 구조와 성능 - 연습 & 심화 문제

by GroovyArea 2022. 11. 1.

연습 문제

1. CPU의 구성?

  • 명령어를 해석하고 실행하는 장치
  • 산술논리 연상 장치
  • 제어 장치
  • 레지스터

 

2. 폰노이만 구조의 가장 중요한 특징

  • 모든 프로그램이 메모리에 올라와야 실행이 가능하다는 점

 

3. 버스의 종류

  • 제어 버스
    • 제어장치와 연결된 버스
    • 주로 제어 명령을 전달
    • 양방향으로 작업 완료, 오류 신호 등등
  • 주소 버스
    • 메모리 주소 레지스터와 연결
    • 위치 정보(주소)를 전달
    • 단방향
  • 데이터 버스
    • 메모리 버퍼 레지스터와 연결
    • 양방향

 

4. 단방향 버스

  • 한 방향으로만 신호를 전송할 수 있는 버스
  • 신호를 "줄" 경우에 사용

 

5. 다음 실행할 명령어의 주소를 가지고 있는 레지스터

  • 프로그램 카운터 (PC)
    • 실행할 명령어의 주소를 기억하고 있다가 제어장치에 알려줌
    • 주소를 카리키므로 명령어 포인터(Instruction Pointer 라고도 불리움.

 

6. 다음에 실행할 명령어를 보관하는 레지스터

  • 명령어 레지스터 (IR)
    • 현재 실행 중인 명령어를 저장

 

7. 메모리 주소를 보관하는 레지스터

  • 메모리 주소 레지스터 (MAR)
    • 메모리에서 데이터를 가져오거나 보낼 때 주소를 지정하기 위함

 

8. 메모리에 저장할 데이터나 메모리에서 가져온 데이터를 임시로 보관하는 레지스터

  • 메모리 버퍼 레지스터 (MBR)
    • 항상 메모리 주소 레지스터 (MAR)와 같이 동작

 

9. 주소 버스와 연결되어 있는 레지스터

  • 메모리 주소 레지스터 (MAR)

 

10. 데이터 버스와 연결되어 있는 레지스터

  • 메모리 버퍼 레지스터 (MBR)

 

11. 프로그램을 보호하기 위해 사용하는 레지스터

  • 경계 레지스터
    • CPU는 현재 진행 중인 작업의 메모리 시작 주소를 저장 후 작업
  • 한계 레지스터
    • 작업이 차지하는 마지막 주소까지의 차이를 저장

 

12.속도 차이나는 두 장치에서 속도를 완화하는 장치

버퍼 (Buffer)

  • 한 번에 많은 양의 데이터를 보낼 수 있어 효과적
  • 하드디스크에는 메모리버퍼
  • 동영상 스트리밍에도 사용
  • 프로그램 간에 공유

 

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

스풀러 (Spooler)

  • 인쇄할 내용을 순차적으로 출력하는 소프트웨어
  • 출력 명령을 내린 프로그램과 독립적으로 동작
  • 인쇄물 관련 작업이므로 프로그램 간에 배타적

 

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

부트스트랩 (Bootstrap)

  • 운영체제를 실행하기 위한 코드
  • 부트스트랩 코드는 운영체제를 메모리로 가져와 실행하는 역할을 하는 작은 프로그램

 

15. 속도가 빠르고 값이 비싼 저장장치를 CPU 가까운 쪽에 두고, 값이 싸고 용량이 큰 저장장치를 반대쪽에 배열하는 방식

저장장치 계층 구조

  • (반대쪽) 레지스터 -> 캐시 -> 메모리 -> 저장장치 (CPU)
  • 데이터의 일관성을 유지하는 것이 단점

 

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

인터럽트 (Interrupt)

  • 주방 보조를 두는 것과 같다. 본인은 요리하고 보조에게 시키고 싶은 것을 시키는 것.

 

17. CPU의 도움 없이도 메모리를 사용할 수 있도록 입출력 관리자에게 주는 권한

  • 직접 메모리 접근(DMA)

 

18. CPU와 입출력 관리자가 서로 다른 메모리 영역을 사용하는 기법

  • 메모리 매핑 입출력(MMIO)

 

19. CPU가 병렬 처리를 지원하지 않을 때 소프트웨어적으로 병렬 처리를 하는 기법

  • VLIW (Very Long Instruction Word) 기법
  • 동시에 수행할 수 있는 명령어들을 컴파일러가 추출하고 하나의 명령어로 압축하여 실행

 

심화 문제

1. 클록의 역할

  • CPU의 속도와 관련된 단위
  • CPU가 작업을 할 때 필요한 일정한 박자를 만든다.

 

2. 프로그램 카운터 레지스터의 역할

  • 실행할 명령어의 위치 정보(주소)를 저장하고 있다.
  • 제어장치에게 알려주는 역할.

 

3. 제어 버스, 주소 버스, 데이터 버스

제어 버스

  • 제어 장치와 연결된 버스
  • CPU가 주변장치와 메모리에 제어 신호를 보냄 (양방향)

주소 버스

  • 메모리 주소 레지스터와 연결된 버스
  • 메모리나 주변장치의 데이터를 읽거나 쓸 때 위치 정보를 보냄 (단방향)

데이터 버스

  • 메모리 버퍼 레지스터와 연결된 버스
  • 제어 버스가 다음에 할 작업의 신호를 보내고 주소 버스가 해당 위치 정보를 전송하면 데이터가 데이터 버스에 실려 목적지까지 이동 (양방향)

4. 휘발성 메모리와 비휘발성 메모리

휘발성 메모리

  • 전력이 끊기면 데이터가 사라짐
  • DRAM(동적 램)
    • 일정 시간 경과 후 데이터가 사라져 주기적으로 재생시켜줘야 함.
  • SRAM(정적 램)
    • 전력이 공급되는 동안 데이터를 보관 가능

비휘발성 메모리

  • 전력이 끊겨도 데이터를 보관함
  • MP3, 디지털 카메라 등에 사용되는 플래시 메모리, FRAM, PRAM

 

5. DDR SDRAM

  • SDRAM은 CPU와 메인보드 간 속도 차이가 심해 작업 속도를 떨어뜨리는 단점이 있다.
  • DDR SDRAM은 SDRAM의 대역폭을 늘려 데이터 입출력 속도를 빠르게 하여 문제점을 보완했다.

 

6. 스풀

  • CPU와 입출력 장치가 독립적으로 동작하도록 고안된 소프트웨어적 버퍼.

 

7. 즉시 쓰기 방식의 캐시와 지연 쓰기 방식의 캐시를 비교하여 설명

즉시 쓰기 방식

  • 캐시에 있는 데이터가 변경될 경우 즉시 메모리에 반영지연 쓰기 방식
  • 캐시의 변경사항들을 모아 주기적으로 반영

 

8. 인터럽트 번호를 사용하는 이유

  • 입출력 관리자가 CPU에 보내는 완료 신호
  • 다양한 입출력 장치 중 어떤 장치의 작업이 끝났는지 알려주기 위해 인터럽트 번호를 사용한다.

 

9. 메모리 직접 접근(DMA)

  • 입출력 관리자는 CPU가 요청한 데이터를 메모리에 올려놓음
    • 하지만 메모리의 접근 권한은 CPU가 가짐
  • 권한 없이 직접 메모리에 접근하는 것

 

10. 메모리 매핑 입출력

  • 메모리의 일정 공간을 입출력 공간에 할당하는 기법.
반응형