1. 컴퓨터 시스템에서 주소를 발생시킬 수 있는 하드웨어를 있는 대로 골라라
① CPU
② 메모리
③ 캐시 메모리
④ 디스크
2. CPU의 주소 선이 총 24개 있다면 이 CPU가 액세스할 수 있는 메모리의 최대 크기는?
① 1MB
② 16MB
③ 1GB
④ 2GB
3. 캐시 메모리가 있는 컴퓨터에서 CPU가 실행할 명령어와 코드가 반드시 있어야 하는 곳은?
① 캐시 메모리
② 메모리
③ 하드디스크
④ USB 메모리
4. 다음 CPU 레지스터 속에 저장된 값의 의미는 무엇인가?
1). PC 레지스터 : 다음에 실행될 명령이 저장된 메모리의 주소
2). IR 레지스터 : 메모리에서 읽어온, 실행 할 명령
3). SP 레지스터 : 메모리의 스택 영역의 최상단을 가리키는 주소
5. 현재 실행 중인 프로그램에 관한 일체의 실행 상황 정보를 무엇이라고 하는가?
① 스택
② 커널
③ 프로세스
④ 컨텍스트
6. 컨텍스트 스위칭이란?
① 현재 실행중인 프로그램을 중단시키고 CPU에게 다른 프로그램을 실행시키는 행위
② 메모리에 적재된 사용중이지 않는 코드나 데이터를 하드디스크로 이동시키는 행위
③ 메모리에 있는 코드나 데이터를 캐시 메모리로 복사하는 행위
④ 프로그램의 실행 모드를 사용자 모드에서 커널 모드로 변경하는 행위
7. 운영체제가 지원하는 서비스를 응용프로그램이 활용할 수 있도록 해주는 소프트웨어 인터페이스를 무엇이라고 부르는가?
① 시스템 호출
② 인터럽트
③ 이벤트
④ 동기화
8. 다음 중 운영체제의 목적이 아닌 것은?
① 사용자가 컴퓨터 하드웨어에 대해 잘 알지 못해도 컴퓨터를 사용할 수 있게 한다.
② 자원을 독점적으로 관리하여 여러 응용프로그램이 자원을 사용하고자 할 때 충돌을 방지한다.
③ 컴퓨터에 장착된 여러 개의 CPU를 다 활용하지 않고 최소 개수의 CPU로 프로그램들을 실행시켜 CPU를 아껴 사용할 수 있도록 한다.
④ 자원을 효율적으로 관리하여 컴퓨터 시스템의 처리율을 높인다.
9. 운영체제를 구성하는 요소가 아닌 것은?
① 커널 코드
② 도구 소프트웨어
③ 디바이스 드라이버
④ 컴파일러
10. 디바이스 드라이버에 대한 설명 중 틀린 것은?
① 디바이스 드라이버는 호환성이 뛰어나서 Windows에서 작성된 마우스 드라이버를 리눅스에서도 사용할 수 있다.
② 디바이스 드라이버는 하드웨어 장치들을 직접 제어하므로 일반적으로 커널 모드에서 작동한다.
③ 디바이스 드라이버는 장치 제작자들에 의해 배포되는 것이 일반적이다.
④ 디바이스 드라이버는 커널 코드가 입출력 장치들의 하드웨어 구조에 무난하게 작성되도록 한다.
11. 메모리 공간을 사용자 공간과 커널 공간으로 나누는 이유는?
① 응용프로그램이 적재되는 공간과 커널 코드와 데이터가 적재되는 공간을 분리하여 커널 공간에 대한 응용프로그램의 직접 접근을 막아 보호하기 위해
② 메모리를 늘릴 때 사용자 공간을 늘릴지 커널 공간을 늘릴지 선택하기 쉽도록 하기 위해
③ 작은 메모리에서도 여러 응용프로그램을 실행시키기 위해
④ 높은 우선순위의 응용프로그램을 커널 공간에서 실행시키기 위해
12. 사용자 공간과 커널 공간에 대해 말한 것 중 틀린 것은?
① 사용자 공간은 응용프로그램의 코드가 실행되는 메모리의 주소 공간이다.
② 커널 코드는 커널 공간에만 탑재한다.
③ 대부분의 경우 디바이스 드라이버는 커널 공간에 탑재된다.
④ 응용프로그램이 커널 공간에 쓰는 것은 금지되지만 읽는 것은 혀용된다.
13. 응용프로그램이 커널에 작성된 코드를 활용할 수 있는 방법은 무엇인가?
① 시스템 호출
② 인터럽트
③ 표준 라이브러리 함수 호출
④ 방법이 없다
14. 사용자 모드와 커널 모드에 대한 설명 중 틀린 것은?
① 시스템 호출이 발생하면 사용자 모드에서 커널 모드로 바뀐다
② 사용자 모드와 커널 모드의 구분은 본질적으로 CPU에 의해 이루어진다
③ 사용자 모드에서는 커널 코드 중 허용된 부분의 코드만 액세스할 수 있다
④ 커널 모드에서는 메모리 공간 전체를 액세스할 수 있다
15. 다음은 무엇에 대한 설명인가?
입출력 장치나 타이머, 인터럽트 처리, 시스템 중단 등 사용자 모드에서는ㄴ 사용할 수 없고 커널 모드에서 사용할 수 있는 특별한 CPU 기계 명령 |
① 커널 명령
② 시스템 호출 명령
③ 특권 명령
④ 시스템 제어 명령
16. 특권 명령이 사용되는 경우가 아닌 것은?
① CPU작동을 중지시키는 Halt 명령
② 타이머를 설정하는 명령
③ CPU에 컨텍스트를 저장하는 명령
④ 시스템 호출 명령
17. 다음 중 같지 않은 용어는?
① 시스템 호출
② 감독자 호출
③ 커널 호출
④ 트랩
18. C 프로글램에서 printf("hello")의 실행에 대해 잘못 설명한 것은?
① printf()는 표준 라이브러리 함수이다.
② printf()는 디스플레이에 hello를 출력해줄 커널의 도움을 받기 위해 결국 시스템 호출을 할 것이다.
③ printf()는 직접 디스플레이에 출력하는 함수이다.
④ printf()에 의해 디스플레이에 hello가 출력되었다는 것은 시스템 호출이 불려졌다는 의미이다.
19. 인터럽트에 대한 설명 중 틀린 것은?
① 인터럽트가 발생하면 CPU의 실행 모드를 굳이 커널 모드로 변경할 필요 없이 현재 모드에서 인터럽트 서비스 루틴이 실행된다.
② 인터럽트는 입출력 장치들이 입출력 작업을 끝냈을 때, 커널에게 알리는 방법으로 사용된다.
③ 인 터럽트 서비스 루틴의 주소가 기록된 테이블을 인터럽트 벡터 테이블이라고 하며 커널 공간에 저장된다.
④ 응용프로그램 개발자는 인터럽트 서비스 루틴을 작성하여 커널에 등록할 수 없다.
20. 운영체제의 커널 코드를 장치와 무관하게 개발할 수 있도록 하는 것은 어느 요소의 역할인가?
① 시스템 호출
② 메모리 관리 기능
③ 디바이스 드라이버
④ 인터럽트
21. 응용프로그램을 운영체제와 무관하게 작성할 수 있도록 하는 것은 어느 요소의 역할인가?
① 표준 라이브러리
② 시스템 호출 라이브러리
③ 디바이스 드라이버
④ 인터럽트
22. 시스템 호출에 대해 잘못 설명한 것은?
① 시스템 호출은 기계 명령에 의해 CPU에 의해 진행된다.
② 시스템 호출을 일으키는 기계 명령이 실행되면 CPU는 사용자 모드에서 커널 모드로 바꾼다.
③ 응용프로그램은 시스템 호출을 통해 커널 프로세스에게 커널 코드를 실행해 줄 것을 요청한다.
④ 시스템 호출을 일으키는 기계 명령은 CPU마다 다르다.
23. 시스템 호출에 대해 잘못 설명한 것은?
① 모놀리식 운영체제에서 커널 코드는 함수들의 집합이다.
② 커널에는 시스템 호출이 일어나면 실행될 함수가 미리 정해져 있다.
③ 응용프로그램이 시스템 호출을 요청할 떄, 시스템 호출 번호를 넘겨주는데 이 번호는 커널 내 함수들의 주소가 담긴 테이블의 인덱스이다.
④ 시스템 호출은 커널 코드를 실행시키기 때문에 응용프로그램 개발자의 입장에서 프로그램의 실행 속도를 높이는 매우 좋은 방법이다.
24. 표준 라이브러리 함수와 시스템 호출 함수들에 대한 설명으로 틀린 것은?
① 표준 라이브러리 함수는 컴파일러나 운영체제에 따라 다르지 않아 호환성이 높다.
② 시스템 호출 함수는 운영체제에 따라 이름이나 호출 방법이 달라 호환성이 부족하다.
③ 표준 라이브러리 함수는 필요에 따라 시스템 호출 라이브러리의 시스템 호출 함수를 호출하기도 한다.
④ 응용프로그램 개발 시 표준 라이브러리 함수보다 시스템 호출 함수를 사용하면 응용프로그램의 실행 속도를 높일 수 있다.
'명품 운영체제 > 연습문제' 카테고리의 다른 글
명품 운영체제 연습문제 3장 (0) | 2024.04.09 |
---|---|
명품 운영체제 연습문제 1장 (0) | 2024.04.08 |