본문 바로가기
운영체제

OPERATING SYSTEM CONCEPTS 에센셜 연습문제 1장 #1

by 핫동경 2022. 3. 26.
반응형

오답이 있을 시 댓글로 남겨주시면 감사하겠습니다

 

 

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

      ○ 사용자와 하드웨어 사이의 중개자 역활

      ○ 자원을 할당해주고 프로그램을 제어하기 위한 목적

      ○ 자원을 효율적으로 사용,관리하기 위해서


1.2 우리는 운영체제가 컴퓨팅 하드웨어를 효율적으로 사용해야 한다고 강조하였다.      어느 경우에 운영체제가 이 원칙을 포기하고 자원을 낭비하는 것이 더 타당한가? 그렇게 하는 것이 실제로는 자원을 낭비하지 않게 되는 이유는 무엇인가?

     ○ 사용자를 위해서 사용자의 편의성을 위해 설계될 때

         이러한 시스템은 한 사용자가 자원을 독점하도록 설계되었으며 목표는 사용자가 수행하는 작업

         을 최대하는 것이다. 사용자의 편의성을 최대화하기 때문에 이 원칙을 포기하고 자원의 이용에

         신경을 쓰지 않는 것이 더 바람직하다.


1.3 실시간 환경을 대상으로 하는 운영체제를 개발할 때 프로그래머가 해결해야 할 주요 어려운 점은 무엇인가?

    ○ 실시간 운영체제는 엄격한 시간 제약이 있을 때 사용된다. 예를들어 스마트 홈 시스템, 실시간 제어 시스템, 가전기기 제어기 등 실시간 시스템을 사용할 때 실시간 환경이 사용되는데 여기서 가장 중요한 것은 응답 시간이다. 때문에 프로그래머는 프로그램내에서 어떤 요청이 들어왔을 때 정의된 제한 시간 내에 처리가 반드시 이루어지게 프로그래밍해야 한다. 정의된 제한 시간 안에 처리가 되지 않을 경우 시스템은 실패하게 된다.


1.4 운영체제의 다양한 정의를 생각하여, 운영체제에 웹 브라우저나 메일 프로그램과 같은 응용프로그램을 포함시켜야 하는지 여부를 생각해 보시오. 포함시켜야 하는지 포함 시키지 말아야 하는지 선택하고 여러분의 결정을 논의하시오

   ○ 포함시켜야 한다 : 운영체제에 포함시킴으로서 사용자 인터페이스를 제공받을 수 있고 커널의 기능이 되는 것이기 때문에 커널 외부에서 실행되는 외부 애플리케이션을 사용할 때 성능상의 이점이 있다.

 

   ○ 포함시키지 말아야한다: 커널은 운영체제의 일부로서 응용프로그램과 하드웨어 사이의 중개자 역활을하기 때문에 응용프로그램은 응용프로그램일 뿐 운영체제의 일부가 될 수 없다.


1.5 커널 모드와 사용자 모드의 구분을 보호(보안) 시스템의 기초적인 형태로 사용할 수있는 방법은 무엇인가?

○ 하드웨어가 이중 모드를 지원하지 않을 경우 운영체제에 심각한 문제를 야기할 수 있고 한 응용 프로그  램이 다른 응용프로그램의 실행에 영향을 미칠 수 있다. 때문에 커널 모드와 사용자 모드로 나눔으로서 응용프로그램은 운영체제에 영향을 미칠 수 없고 응용프로그램간 영향을 미칠 수 없게 된다. 또한 커널 모드에서만이 하드웨어의 자원에 접근할 수 있기 때문에 사용자 모드에서의 응용프로그램은 자원에 접근할 수 없도록 보호된다


1.6 다음 중 어느 명령어를 특권 명령어로 지정해야 하는가?

     a. 타이머 읽기 | b.클록 읽기 | c.메모리 내용 지우기 |  d.트랩 명령어 시작 

     e.인터럽트 끄기 | f.장치-상태 테이블의 항목 변경  | g. 사용자 모드에서 커널 모드로 변환 | h.입출력 장치 접근

 

    a, c, e, g, h

         나머지는 소프트웨어로 실행이 가능하다


1.7 몇몇 초창기 컴퓨터는 운영체제를 사용자 작업 또는 운영체제 자신도 변경할 수 없는 메모리 분할 영역에 적재하여 보호하였다. 이러한 방식을 사용했을 때 발생할 수 있는 두가지 문제점을 설명하시오

 ○ 새로운 응용프로그램을 설치할 수 없다. 응용프로그램을 설치하려면 응용프로그램이 하드웨어

   자원에 접글할 수 있게 시스템 콜을(함수 호출) 할 수 있어야 하는데 호출할 함수를 설치할 수 없다.

        

   운영체제를 업그레이드할 수 없으며 유지보수가 어렵다


1.8 몇몇 CPU는 두 개 이상의 모드를 제공한다. 이러한 다중 모드를 활용할 수 있는 두가지 방법은 무엇인가?

     ○ 가상화를 지원할 때

     ○ 두 개 이상의 모드보다 더 세분화된 보안 정책이 필요할 때


1.9 타이머를 사용하여 현재 시간을 계산할 수 있다. 현재 시간을 계산하는 방법에 대해간략하게 설명하시오.

     ○ 타이머는 지정된 시간 후 컴퓨터를 인터럽트 하도록 설정할 수 있다. 이 지정된 시간은 가변적일 수 있다. 가변 타이머는 고정률의 클락과 계수기로 구현하는데 클락이 똑딱 할 때마다 계수기가 감소한다. 운영체제는 계수기의 값을 설정할 수 있고 계수기가 0이 되면 인터럽트가 발생한다. 계수기의 값을 설정해 1초마다 인터럽트를 발생시키게 설정하고 설정된 현재시간에서 몇번의 인터럽트가 발생되었는지 확인하면 얼마나 시간이 지났는지 확인할 수 있다.


1.10 캐시가 유용한 두가지 이유를 제시하고 캐시를 씀으로서 해결할 수 있는 문제는    무엇인가? 캐시 때문에 발생할 수 있는 문제는 무엇인가? 캐시를 자신이 캐싱하는 장치의 용량만큼 크게 만들 수 있다면(예를 들어, 디스크 용량 크기의 캐시), 그러 한 캐시를 만들고 아예 장치를 제거할 수 없는 이유는 무엇인가?

     ○ 유용한 이유 : 캐시에는 높은 캐시 히트율을 갖는 데이터들이 있기 때문에 CPU가 다음 명령을 인출할 시간을 줄여준다. 또한 고속으로 데이터에 접근할 수 있다 메인 메모리보다 빠르다.

 

     ○ 발생할 수 있는 문제 : 다중 처리기 시스템이나 분산시스템에서는 여러개의 CPU가 있다. 각CPU 마다 캐쉬를 가지고 있을 수 있을 때 문제가 발생한다. 하나의 자원을 공유하는데 한 개의 CPU의 캐쉬에서 어느 값이 변경되었다. 이 때 나머지 CPU 의 캐쉬의 값도 같이 변경되어야 하는 문제점이 있는데 이러한 상황을 캐시 일관성 문제라고한다.

 

      ○ 캐쉬를 크게 못만드는 이유 : 그러한데는 다 이유가 있다라는 말이 있다. 우선 캐쉬의 비용이 

                                               크다는 문제도 있지만 캐쉬가 빠른 이유는 무엇일까? 작기 때문이다.

                                               작기 때문에 데이터를 빠르게 찾을 수 있다. 만약 캐쉬의 용량이 엄청

                                               크다면 속도는 느려질 것이다


나머지 1.11~1.20은 다음 글에서 다루겠다.

2022.03.26 - [분류 전체보기] - OPERATING SYSTEM CONCEPTS 에센셜 연습문제 1장 #2

 

OPERATING SYSTEM CONCEPTS 에센셜 연습문제 1장 #2

오답이 있을 시 댓글로 남겨주시면 감사하겠습니다 1.11 분산 시스템의 클라이언트-서버 모델과 피어 간 모델의 차이점을 설명하시오 ○ 클라이언트-서버 : 클라이언트와 서버로 역활이 나뉜다.

dongkyung.tistory.com

 

반응형

댓글