티스토리 뷰
일반 학생이 푼 문제로 정답이 아닐 수 있습니다. (명품 운영체제 수정판)
개념체크
- 컴퓨터 시스템에서 주소를 발생시킬 수 있는 하드웨어를 있는 대로 골라라?
① CPU
해설: 주소를 발생시키는 것은 CPU가 유일하며, 나머지는 발생된 주소에 대한 응답을 한다. (p.67)
- CPU의 주소 선이 총 24개 있다면 이 CPU가 액세스할 수 있는 메모리의 최대 크기는?
② 16MB
해설: 2^24 Byte = 2^4*2^20 Byte = 2^4 MB = 16 MB
- 캐시 메모리가 있는 컴퓨터에서 CPU가 실행할 명령어와 코드가 반드시 있어야 하는 곳은?
① 캐시 메모리
해설: 캐시메모리에 값이 없다면 캐시로 불러와야 한다. 없는 경우엔 캐시 미스를 발생시킨다.
- 다음 CPU 레지스터 속에 저장된 값의 의미는 무엇인가?
(1) PC 레지스터: 다음에 실행할 기계 명령의 메모리 주소
(2) IR 레지스터: 메모리에서 읽어온 명령들이 저장된 레지스터
(3) SR 레지스터: 스택 영역의 꼬대기 주소를 가르킨다.
해설: p.73
- 현재 실행 중인 프로그램에관한 일체의 실행 상황 정보를 무엇이라고 하는가?
④ 컨텍스트
해설: p.76
①: 후입선출의 자료구조이다. 운영체제와는 관련없으며 스택 공간이라는 개념이 존재한다.
②: 부운영체제의 핵심적인 기능을 실행하는 코드와 이들을 관리하기 위해 필요한 여러 자료 구조의 집합
③: 디스크에 저장된 프로그램이 메모리에 적재되어 실행된 것
- 컨텍스트 스위칭이란?
① 현재 실행중인 프로그램을 중단시키고 CPU에게 다른 프로그램을 실행시키는 행위
해설: p.77
- 운영체제가 지원하는 서비스를 응용프로그램이 활용할 수 있도록 해주는 소프르웨어 인터페이스를 무엇이라고 부르는가?
① 시스템 호출
해설: p.104
- 다음 중 운영체제의 목적이 아닌 것은?
③ 컴퓨터에 장착된 여러 개의 CPU를 다 활용하지 않고 최소 개수의 CPU로 프로그램을 실행시켜 CPU를 아껴 사용할 수 있다.
해설: 운영체제 자체가 자원을 최대한 효율적으로 사용하기 위함인데(최상위 목표는 아닐 수 있다.), 최소 개수 CPU를 이용하여 자원을 낭비할 필요가 없다.
- 운영체제를 구성하는 요소가 아닌 것은?
④ 컴파일러
해설: 컴파일러는 응용프로그램이다.
- 디바이스 드라이버에 대한 설명 중 틀린 것은?
① 디바이스 드라이버는 호환성이 뛰어나서 Windows에서 작성된 마우스 드라이버를 리눅스에도 사용할 수 있다.
해설: 디바이스 드라이버는 컴퓨터의 입출력에 관여하기에 운영체제의 종류마다 모두 다르게 작성된다.(호환성이 낮다.)
- 메모리 공간을 사용자 공간과 커널 공간으로 나누는 이유는?
① 응용프로그램이 적재되는 공간과 커널 코드와 데이터가 적재되는 공간을 분리하여 커널 공간에 대한 응용 프로그램의 직접 접근을 막아 보호하기 위해
해설:
②: 사용자 공간과 커널 공간은 고정되어있다.
③: 관련없다.
④: 관련없다.
- 사용자 공간과 커널 공간에 대해 말한 것 중 틀린 것은?
④ 응용프로그램이 커널 공간에 쓰는 것은 금지되지만 읽는 것은 허용된다.
해설: 공간을 분리한 이유는 사용자 응용프로그램이 실수로 혹은 악의적인 개발자가 고의적으로 커널 코드와 데이터를 훔쳐보거나 훼손하는 것을 막기 위해서이다.
- 응용프로그램이 커널에 작성된 코드를 활용할 수 있는 방법은 무엇인가?
① 시스템 호출
해설: 응용프로그램은 시스템 호출로만 응용프로그램을 접근할 수 있다. 다른 방법은 존재하지 않다.
- 사용자 모드와 커널 모드에 대한 설명 중 틀린 것은?
③ 사용자 모드에서는 커널 코드 중 허용된 부분의 코드만 액세스 할 수 있다.
해설: 사용자 모드에서 프로그램은 사용자 공간만 접근할 수 있고 커널 공간은 접근할 수 없다.
- 다음은 무엇에 대한 설명인가?
입출력 장치나 타이머, 인터럽트 처리, 시스템 중단 등 사용자 모드에서는 사용할 수 없고 커널 모드에서 사용할 수 있는 특별한 CPU 기계 명령
③ 특권 명령
해설: p.95
- 특권 명령이 사용되는 경우가 아닌 것은?
④ 시스템 호출 명령
해설: 시스템 호출을 일으키는 명령은 특권 명령이 아니다. (p.95)
- 다음 중 같지 않는 용어는?
② 감독자 호출
해설: Superviesor Call Instruction이 존재하긴 하나, ②의 용어가 같지 않음
- C 프로그램에서 printf("hello")의 실행에 대해 잘못 설명한 것은?
③ printf()는 직접 디스플레이에 출력하는 함수이다.
해설: 직접 디스플레이에 출력하는 것은 특권명령의 역할이다. printf()는 시스템 호출 라이브러리의 write()에 시스템 호출을 요청하며, 이 조차 디스플레이에 직접 출력하지는 않는다.
- 인터럽트에 대한 설명중 틀린 것은?
① 인터럽트가 발생하면 CPU의 실행 모드를 굳이 커널 모드로 변경할 필요 없이 현재 모드에서 인터럽트 서비스 루틴이 실행된다.
해설: 인터럽트가 발생하면 CPU의 실행모드는 커널모드로 변경된다.
- 운영체제의 커널 코드를 장치와 무관하게 개발할 수 있도록 하는 것은 어느 요소의 역할인가?
③ 디바이스 드라이버
해설: p.86
- 응용프로그램을 운영체제와 무관하게 작성할 수 있도록 하는 것은 어느 요소의 역할인가?
① 표준 라이브러리
해설: p.100
② 시스템 호출 라이브러리는 운영체제를 만든 제조사에서 제공해주는 라이브러리다.
- 시스템 호출에 대해 잘못 설명한 것은?
③ 응용프로그램은 시스템 호출을 통해 커널 프로세스에게 커널 코드를 실행해 줄 것을 요청한다.
해설: 커널은 프로세스가 아닌 여러 실행 코드와 자료구조의 집합니다.
- 시스템 호출에 대해 잘못 설명한 것은?
④ 시스템 호출은 커널 코드를 실행시키기 때문에 응용프로그램 개발자의 입장에서 프로그램의 실행 속도를 높이는 매우 좋은 방법이다.
해설: 함수 호출에 비해 시스템 호출은 진입하는데 추가적인 시간 비용이 존재하기에 프로그램의 실행 속도를 높이기 위해선 최대한 적게 사용해야 한다.
- 표준 라이브러리 함수와 시스템 호출 함수들에 대한 설명으로 틀린 것은?
④ 응용프로그램 개발 시 표준 라이브러리 함수보다 시스템 호출 함수를 사용하면 응용프로그램의 실행 속도를 높일 수 있다.
해설: 표준 라이브러리 함수는 시스템 호출 함수 사용을 최대한 지연 시키기 때문에 응용프로그램의 실행 속도를 높일 수 있다.
'명품 운영체제 문제풀이' 카테고리의 다른 글
명품 운영체제 6장 연습문제 정답 (수정 중) (1) | 2024.05.01 |
---|---|
명품 운영체제 5장 연습문제 정답 (1) | 2024.04.19 |
명품 운영체제 4장 연습문제 정답 (0) | 2024.04.18 |
명품 운영체제 3장 연습문제 정답 (2) | 2024.04.18 |
명품 운영체제 1장 연습문제 정답 (1) | 2024.04.18 |