상세 컨텐츠

본문 제목

[운영체제] Silberschatz 1장 연습문제 풀이

자료실/컴퓨터 공부

by 깔깔앵무 2020. 6. 13. 14:50

본문

반응형

이번 포스트에선 운영체제 Silberschatz(일명 공룡책) 10판의 1장 문제풀이를 할 것이다.

 

답안지가 없는 이상 이하 풀이내용은 필자가 직접 작성한 것이니 틀린 것을 지적해주신다면 감사하겠습니다.

 


 

1.1 운영체제의 세 가지 주요 목적은 무엇인가?

 

풀이 및 정답 : 

(1) 사용자 관점에서의 편의성 추구

(2) 자원 할당자로서 자원 활용의 효율성 추구

(3) 다양한 IO(입출력)장치의 운영 및 제어의 일관성 추구

 


1.2 컴퓨팅 하드웨어를 효율적으로 사용하려면 운영체제가 필요하다고 강조하였다. 운영체제가 이 원칙을 버리고 자원을 낭비하는 것이 적절한 때는 언제인가? 그러한 시스템이 실제로 낭비하는 것이 아닌 이유는 무엇인가?

 

풀이 및 정답 :

 

사용자 관점에서의 편의성을 추구할 때이다.  많은 소프트웨어를 자원에 할당하면 자원 활용의 효율성은 떨어지지만, 사용자의 편의성이 증대된다. 이는 운영체제가 추구하는 목적(사용자의 편의성 증대)에 부합하기 때문에 실제로 낭비하는 것이 아니게 된다.

 


1.3 실시간 환경을 위해 운영체제를 작성할 때 프로그래머가 극복해야하는 주요 어려움은 무엇인가?

 

풀이 및 정답 : 

 

멀티테스킹 문제이다. CPU는 한 번에 하나의 프로세스만을 처리할 수 있으므로 실시간 환경을 위해선 자원의 낭비를 최대한 줄이고, CPU 시간에 많은 프로그램을 전환시켜야한다. 인터럽트, CPU 스케줄링을 통해 여러 프로그램을 동시에 수행하는 것 처럼 보이도록 운영체제를 작성해야한다.

 


1.4 운영체제의 다양한 정의를 염두에 두고 운영체제에 웹 브라우저 및 메일 프로그램과 같은 응용프로그램이 포함되어야 하는지 생각해 보라. 포함시킨다와 포함시키지 않는다는 주장 모두의 입장에서 논증하라.

 

풀이 및 정답 : 

 

(1) 포함시킨다 측 : 운영체제란, 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 웹 브라우저 및 메일 프로그램은 사용자와 인터넷 송수신 시스템 서비스 간의 중재 역할을 한다고도 볼 수 있다. 사용자에게 웹 브라우저 혹은 메일 프로그램을 조작하기 위한 사용자 인터페이스를 제공하며, 사용자는 이를 통해 송수신 서비스에 접근할 수 있게 되는것이다. 대표적 예시로 구글 크롬 OS가 있다. 고로 운영체제에 웹 브라우저 및 메일 프로그램과 같은 응용 프로그램이 포함되어야한다.

 

(2) 포함 시키지 않는다 측 : '운영체제'란 응용 프로그램과 사용자 사이의 중재 역할을 하는 컴퓨터 시스템을 의미한다. 따라서 웹 브라우저 및 메일 프로그램 과 같은 프로그램도 결국 사용자가 이용하고자 하는 응용 프로그램이므로 운영체제의 범주에 넣어서는 안 된다.

 


 

1.5 커널 모드와 사용자 모드의 구별은 기본적인 형태의 보호(보안)로서 어떤 기능을 하는가?

 

 

풀이 및 정답 : 자원 공유 환경에서는 한 응용 프로그램의 오동작이 다른 프로그램의 오동작을 야기한다. 그래서 기본적으로 네임 메모리를 사용자 프로그램이 탑재되는 사용자 공간과 커널 프로그램이 탑재되는 커널 공간으로 나눔으로서 오동작, 즉 충돌 방지의 역할을 한다. 

 

이를 통해 불법 IO(입출력)을 차단하고, 불법 메모리 접근(운영체제나 타 프로그램 주소 접근)을 차단하고, 무한루프를 방지하여 CPU 독점을 방지할 수 있다.

(※ 여기서 불법이라함은 정상적이지 않은 접근, 오동작을 의미한다.)

 

 


 

1.6 다음 중 특권 명령이어야 하는 명령어는 무엇인가?

 

a. 타이머 설정      b. 클록 읽기     c. 메모리 내용 삭제       d. 트랩 명령의 실행

e. 인터럽트 끄기          f. 장치 상태 테이블의 항목 수정      g. 사용자에서 커널 모드로 전환      h. I/O 장치 액세스

 

 

풀이 및 정답 :

특권 명령은 보안이 필요한 명령으로 커널 모드에서만 수행될 수 있는 명령을 의미한다. 커널은 OS의 핵심부분으로서 메모리에 상주하는 부분으로, 주로 장치(타이머, 입출력 장치 등), 자원 관리 및 자원 사용(인터럽트)에 관한 서비스를 제공한다.

 

그래서 특권 명령에는 타이머 관리, 인터럽트 관리, I/O 제어, 사용자에서 커널모드로 전환하는 명령, 프로세스 관리, 명령어 수행 오류 발생시 발생하는 트랩 처리, 사용자 프로그램의 시스템 호출, 레지스터의 적재 명령, halt(강제 종료) 명령 등이 있다.

 

따라서, a, b, c, d, e, f, g, h 모두가 정답이다.

 

 


1.7 일부 초기 컴퓨터는 운영체제를 사용자 작업이나 운영체제 자체에서 수정할 수 없는 메모리 파티션에 배치하여 운영체제를 보호하였다. 이러한 기법에서 발생할 수 있다고 생각되는 두가지 어려움을 설명하라

 

풀이 및 정답 :

(1) 운영체제 유지보수가 어렵다. 어떤 형태로든 운영체제에 접근할 수 없으므로 

(2) 새로운 응용 프로그램을 설치하기가 어렵다. 운영체제에서 새롭게 설치하려는 응용프로그램의 시스템 호출 함수가 없으므로 새로운 응용 프로그램을 설치하기 위해선 그에 맞는 운영체제를 또 만들어야한다.

 

 


1.8 일부 CPU는 세 개 이상의 작동 모드를 제공한다. 이 다중 모드를 사용할 수 있는 두 가지 경우는 무엇인가?

 

 

풀이 및 정답 : 

1. 가상화를 지원할 때(가상머신, VMM)

2. 이중 모드 전환을 보호할 때(Intel 프로세서의 보호링)

 


1.9 타이머는 현재 시간을 계산하는 데 사용될 수 있다. 어떻게 계산이 가능한지 간단하게 설명하라.

 

 

풀이 및 정답 : 타이머는 지정된 시간 후 컴퓨터를 인터럽트 하도록 설정할 수 있다. 가령 1초마다 인터럽트하도록 설정한다면, 인터럽트마다 현재시각에 1초를 증가시키면 된다. 이렇게 함으로써 설정한 현재시각으로부터 얼마나 시간이 흘렀는지 계산할 수 있다.

 

 


1.10 캐시가 유용한 두 가지 이유를 제시하라. 어떤 문제를 해결할 수 있는가? 어떤 문제를 야기하는가? 캐시의 크기를 캐싱하는 장치만큼 크게 만들 수 있다면(예: 디스크의 크기와 같은 캐시) 캐시의 용량을 늘린 후 원래 장치를 제거하지 않는 이유는 무엇인가?

 

풀이 및 정답 : 

 

캐시를 이용하면 알고리즘 여부에 따라서는 캐시에서 데이터를 가지고 있을 확률(Hit Ratio)을 90% 이상 개선 가능하여 레지스터와 메모리 사이에 접근시간 또는 데이터 이동속도의 심한 격차를 완화시킬 수 있다. 이를 통해 빠른 속도로 메인 메모리의 용량을 사용할 수 있는 효과를 만들어 낸다.

 

다중 처리기 환경하에서는 여러 개의 CPU가 모두 동시에 실행될 수 있으므로 한 캐시에 있는 A값이 갱신 될 경우 A가 존재하는 모든 캐시에 즉각적으로 반영하여야 한다. 분산 환경에서도 일어날 수 있으며, 이런 캐시 일관성 문제가 발생할 수 있다.

 

캐시의 크기를 캐싱하는 장치만큼 크게 만들수 있다면 캐시의 요량을 늘린 후 원래 장치를 제거하지 않는 이유는 다음과 같다. 캐시는 기본적으로 휘발성이 있어 전원이 꺼지면 메모리가 모두 날아가기에 비휘발성 기억장치를 따로 사용해야한다.

 

 

 


1.11 분산 시스템의 클라이언트-서버 시스템과 피어 간 모델의 차이를 설명하라.

 

풀이 및 정답 :

 

 

 

 

 

 

 

 

 

 

 

 

반응형

관련글 더보기