Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

미래학자

[운영체제] Operating System Concepts 9th 연습문제 - 2 본문

전산 지식

[운영체제] Operating System Concepts 9th 연습문제 - 2

미래학자 2016. 12. 20. 00:36

공룡 책으로 유명한 Operating System Concepts 7th 연습문제 풀이 입니다. 개인적인 목적을 위해 작성했으며 작성한 해답에 오류가 있을 가능성이

다분히 있습니다. 댓글로 의견을 주시면 고치도록 하겠습니다.


2.1 운영체제가 제공하는 서비스와 기능은 크게 두 범주로 나눌 수 있다. 두 범주를 간략히 설명하고 서로 어떻게 다른지 논의하라.

사용자 측면 / 시스템 측면

사용자 측면

  • 사용자 인터페이스
  • 사용자별 디렉토리 관리 / 권한 관리 (보호)
시스템 측면
  • 프로그램 수행
  • 입/출력 연산
  • 파일 시스템 조작
  • 통신
  • 오류 탐지
  • 보안
다수 사용자들 간에 컴퓨터 자원을 효율적으로 사용하기 위한 기능 제공
  • 자원 할당
  • 회계
  • 보호

2.2 운영체제에게 매개변수를 전달하는 일반적인 방법 3가지를 설명하라.


  • 레지스터 : 레지스터에 직접 매개변수를 전달
  • 레지스터(주소) : 매개 변수 크기가 클 경우 메모리에 저장한 후 레지스터로에 메모리에 주소를 전달
  • 스택 : 시스템 스택에 연산에 필요한 매개변수를 push, 운영체제는 pop 연산으로 매개변수를 읽음


2.3 프로그램이 각 코드의 다른 영역에서 보낸 시간에 대한 통계 자료를 어떻게 얻을 수 있을지 설명하라. 이러한 자료를 얻는 것의 중요성에 대해 논의하라.




2.4 파일 관리에 관련된 운영체제의 다섯 가지 중요한 활동은 무엇인가?

  • 프로세스 생성과 제거
  • 프로세스 일시 중지 및 재수행
  • 프로세스 동기화
  • 프로세스 통신
  • 교착상태 처리



2.5 파일과 장치를 조작할 때 동일한 시스템 호출 인터페이스를 사용하는 것의 장점과 단점은 무엇인가?


파일을 다루는 방법과 비슷하게 장치를 다룰 수 있다. 여러 종류의 장치를 파일의 형태로 이해하기 해야 하는데 조금은 비효율적일 수 있다.




2.6 운영체제가 제공하는 시스템 호출 인터페이스를 사용하여 사용자가 새로운 명령어 해석기를 개발하는 것은 가능한가?


가능하다. 시스템 프로그램을 이용하면 사용자가 새로운 명령어를 확장할 수 있다.



2.7 프로세스간 통신의 두 가지 모델은 무엇인가? 두 접근 방법의 강점과 약점은 무엇인가?


공유 메모리 방식 : 빠름, 프로세스가 작업하고 있을 때, 다른 프로세스가 변경하지 못하도록 제어가 필요.(동기화 필요)

메시지 전달 방식 : 간단히 구현 가능. 상대적으로 속도가 느리다.



2.8 메카니즘과 정책의 분리는 어떤 이유로 바람직한 속성이라 할 수 있는가?


메카니즘과 정책을 분리하면 메카니즘을 그대로 사용하고 정책을 바꿈으로써 다양하고 유연한 운영체제를 만들 수 있다.



2.9 운영체제의 두 구성 요소가 서로 종속적인 경우 계층적 구조를 가지도록 하는 것이 어렵다. 제공하는 기능을 위해 밀접한 결합을 필요로 하는 두 시스템 구성 요소를 두 계층으로 분리하는 것이 불분명한 시나리오를 제시하라.


예비 저장 장소 드라이버는 드라이버가 입/출력을 위해 기다려야 하고, CPU가 재스케줄링 할 수 있기 때문에  CPU 스케줄러 위에 있어야 한다.

그러나 스와핑을 위해 예비 저장 장소 드라이버는 CPU 스케줄러 아래 놓어야 한다. 이 두가지가 상충된다.



2.10 시스템 설계 시 마이크로커널 접근 방법의 주요 장점은 무엇인가? 이 접근 방법에서 사용자 프로그램과 시스템 서비스는 어떻게 상호 작용을 하는가? 이 접근 방법을 사용하는 단점은 무엇인가?


핵심적인 기능만 담았기 때문에 가볍고 빠르다. 제거된 부분은 사용자 프로그램 또는 시스템 프로그램으로 구현된다.

시스템 서비스와 사용자 프로그램은 직접적으로 상호작용하지 않고, 마이크로 커널의 메시지 전달 방식을 통한 간접적으로 상호 작용한다.

장점은 운영체제에 확장에 용이한 형태인 것이다. 단점으로는 오버헤드로 인한 성능 하락이다.



2.11 적재가능 커널 모듈을 사용하는 장점은 무엇인가?


핵심 기능을 기본 커널에 유지하면서 필요한 기능을 제공하는 모듈을 적재하는 방식. 확장성에 유리하고 다른 모듈과의 통신 방법을 알기 때문에 통신을 위해 메시지 호출할 필요가 없음. 더 유연함.


2.12 iOS와 Android의 유사점과 차이점을 설명하시오.




2.13 Android 시스템에서 실행되는 Java 프로그램이 표준 Java API와 가상머신을 사용하지 않는 이유에 대해 설명하시오.



2.14 실험적인 신더시스(Synthesis) 운영체제는 커널 안에 어셈블러가 합해져 있다. 시스템 호출 성능을 최적화할 수 있도록 커널은 시스템 호출이 커널 내에서 반드시 지나가야 할 경로를 최소화하기 위해 커널 공간 내의 루틴이 조립한다. 이러한 접근 방법은 계층적 접근 방법과는 대립되며, 계층적 접근 방법에서는 운영체제 구축을 쉽게 하기 위해 커널 내에서 지나가야 할 경로가 연장된다. 커널 설계 시 시스템 성능을 최적화시키기 위한 신더시스 접근 방법의 장단점을 논하라.




--------- 7th edition 문제


2.10 왜 Java는 Java 프로그램으로부터, 이를테면 C 또는 C++로 쓰여진 고유 메소드를 호출하는 능력을 제공하는가? 고유의 메소드가 유용한 예를 들어보라.




2.13 모듈화 커널 방식은 계층적인 방식과 어떤 점이 유사한가? 또 어떤 점이 다른가?



2.14 운영체제 설계자가 가상 기계 구조를 사용하는 것의 주요 장점은 무엇인가? 사용자를 위한 주된 장점은 무엇인가?


현재 시스템이 동작과 독립적으로 가상 운영체제를 이용하여 개발 할 수 있다. 한 기기로 다양한 운영체제 시스템을 사용할 수 있다. 또는 다른 가상의 하드웨어처럼 사용할 수 있다.


2.15 왜 just-in-time 컴파일러가 Java 프로그램을 수행하기 위해 유용한가?


2.16 VMware와 같은 시스템에서 게스트 운영체제와 호스트 운영체제의 관계는 무엇인가? 호스트 운영체제를 선택하기 위해서는 어떤 점들이 고려되어야 하는가?



2.2 사용자가 컴퓨터 시스템을 더 편하게 사용하도록 설계된 운영체제의 다섯 가지 서비스를 열거하시오. 어떤 경우에 사용자 수준 프로그램이 이러한 서비스를 제공하는 것이 불가능한지 설명하라.


프로세스 관리, 파일 시스템, 보호 및 보안, 인터페이스, 입/출력 관리

Comments