본문 바로가기

Dev/운영체제

쉽게 배우는 운영체제 2장 연습문제 풀이

혼자 푼 것이라 오답이 있을 수 있습니다. 발견하면 댓글 부탁드립니다^^

1. CPU의 구성에 대해 설명하시오.

 산술논리 연산장치, 제어장치, 레지스터로 구성되며, 이것들의 협업으로 작업을 처리한다.

- 산술논리 연산장치는 데이터의 산술 연산과 논리 연산을 수행한다.

- 제어장치는 CPU에서 작업을 지시하는 부분이다.

- 레지스터는 CPU 내에서 데이터를 임시로 보관하는 곳이다.

2. 폰노이만 구조의 가장 중요한 특징을 설명하시오.

 CPU, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 구조다. 하드웨어는 그대로 둔 채 작업을 위한 프로그램만 교체하여 메모리에 올리는 방식으로 컴퓨터로 다양한 작업을 할 수 있게 되었다. ‘모든 프로그램은 메모리에 올라와야 실행할 수 있다.’가 폰 노이만 구조의 가장 큰 특징이다.

3. 버스의 종류를 나열하시오.

- 제어 버스 : 다음에 어떤 작업을 할지 지시하는 제어 신호가 오고 간다. 신호가 CPU, 메모리, 주변장치와 양방향으로 오고 간다.

- 주소 버스 : 메모리의 데이터를 읽거나 쓸 때 어느 위치에서 작업할 것인지 알려주는 주소가 오고 간다. CPU에서 메모리나 주변장치로 나가는 주소 정보만 있다.(단방향)

- 데이터 버스 : 제어버스가 다음에 어떤 작업을 할지 신호를 보내고 주소 버스가 위치 정보를 전달하면 데이터가 데이터 버스에 실려 목적지까지 이동한다. 데이터 버스는 메모리 버퍼 레지스터와 연결되어 있으며 양방향이다.

4. 단방향 버스에 대해 설명하시오.

주소 버스는 단방향성이다. 주소를 표현하는 신호가 CPU로부터 다른 장치로 향하고 반대로의 전송이 필요하지 않기 때문이다.

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

프로그램 카운터(PC)

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

? 명령어 레지스터(IR) 은 현재 실행 중인 명령어를 저장한다.

7. 메모리 주소를 보관하는 레지스터는 무엇인가?

주소 레지스터 AR

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

데이터 레지스터 DR

9. 주소 버스와 연결되어 있는 레지스터는 무엇인가?

메모리 주소 레지스터 MAR

10. 데이터 버스와 연결되어 있는 레지스터는 무엇인가?

메모리 버퍼 레지스터 MBR

11. 프로그램을 보호하기 위해 사용하는 두 가지 레지스터는 무엇인가?

경계 레지스터, 한계 레지스터

메모리를 보호하기 위해 CPU는 현재 진행중인 작업의 메모리 시작 주소를 경계 레지스터에 저장한 후 작업을 한다. 또한 현재 진행중인 작업이 차지하고 잇는 메모리의 크기, 즉 마지막 주소까지의 차이를 한계 레지스터에 저장한다. 사용자의 작업이 진행되는 동안 이 두 레지스터의 주소 범위를 벗어나는지 하드웨어적으로 점검함으로써 메모리를 보호한다.

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

버퍼

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

스풀러

CPU와 입출력 장치가 독립적으로 동작하도록 고안된 소프트웨어적 버퍼로 대표적인 예는 프린터에 사용되는 스풀러이다.

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

부트스트랩 코드

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

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

저장장치의 계층 구조

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

인터럽트

 입출력관리자가 CPU에 보내는 완료 신호를 인터럽트라고 한다. CPU는 입출력 관리자에게 작업 지시를 내리고 다른 일을 하다가 완료 신호를 받으면 하던 일을 중단하고 옮겨진 데이터를 처리한다. 이처럼 하던 작업을 중단하고 처리해야 하는 신호라는 의미에서 인터럽트라고 불리게 되었다.

17. CPU의 도움 없이도 메모리를 사용할 수 있도록 입출력 관리자에게 주는 권한을 무엇이라고 하는가?

직접 메모리 접근

입출력이 필요할 때 CPU는 입출력 관리자에게 입출력 요청을 보내고 자신은 하던 일을 계속한다. 명령을 받은 입출력 관리자는 CPU가 요청한 데이터를 메모리에 가져다 놓아야 하는데 메모리는 CPU만 접근 권한을 가진 작업 공간이라 입출력 관리자는 접근이 불가하다. 따라서 입출력 관리자에게는 CPU의 허락 없이 메모리에 접근할 수 있는 권한이 필요한데, 이러한 권한을 직접 메모리 접근이라고 한다.

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

메모리 매핑 입출력.

직접 메모리 접근을 통해 들어온 데이터를 메모리에 아무렇게 둔다면 CPU가 사용하는 데이터와 섞여서 관리하기 어려울 것이다. CPU가 사용하는 메모리 공간과 직접 메모리 접근을 통해 들어오거나 나가는 데이터를 위한 공간을 분리한다. 메모리의 일정공간을 입출력에 할당하는 기법을 메모리 매핑 입출력이라고 한다.

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

VLIW 기법.

동시에 수행할 수 있는 명령어들을 컴파일러가 추출하고 하나의 명령어로 압축하여 실행한다. VLIW 기법은 CPU가 병렬 처리를 지원하지 않을 때 사용하는 방법이므로 앞의 병렬 처리 기법들에 비해 동시에 처리하는 명령어의 개수가 적다. 또한 앞의 병렬 처리 기법들은 명령어 실행 시 병렬 처리가 이루어지지만 VLIW 기법은 컴파일 시 병렬 처리가 이루어진다.