연습 문제
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. 메모리 매핑 입출력
- 메모리의 일정 공간을 입출력 공간에 할당하는 기법.
반응형
'🖥️ Computer Science' 카테고리의 다른 글
[쉽게 배우는 운영체제] ch.7 물리 메모리 관리 - 연습 & 심화 문제 (1) | 2022.11.06 |
---|---|
[쉽게 배우는 운영체제] ch.6 프로세스 동기화 - 연습 & 심화 문제 (0) | 2022.11.06 |
[쉽게 배우는 운영체제] ch.5 프로세스 동기화 - 연습 & 심화 문제 (0) | 2022.11.04 |
[쉽게 배우는 운영체제] ch.4 CPU 스케줄링 - 연습 & 심화 문제 (0) | 2022.11.04 |
[쉽게 배우는 운영체제] ch.3 프로세스와 스레드 - 연습 & 심화 문제 (0) | 2022.11.02 |