본문 바로가기

컴퓨터와 보안/OS(운영체제)

william stallings OS(운영체제) Chapter 2 문제풀이

2.1 운영체제 설계의 세 가지 목표는 무엇인가?

  • 편리성: 운영체제는 컴퓨터를 보다 편리하게 사용할 수 있게 해준다.
  • 효율성: 운영체제는 컴퓨터 시스템 자원을 효율적으로 사용할 수 있게 해준다.
  • 발전성: 운영체제는 효과적인 개발과 시험이 가능해야 하고, 서비스를 방해하지 않고 새로운 시스템 기능을 도입할 수 있도록 구축되어야 한다.

2.2 운영체제의 이중 동작 모드(Dual Mode Operation)은 무엇인가?

이중 동작 모드(Dual Mode Operation)은 OS가 Application faults로 인해 잘못 동작하거나 망가지지 않게 하는 아주 중요한 핵심 동작 원리이다.

 

'듀얼'이라는 말처럼 OS는 User mode와 Kernel mode 두 가지 모드를 두고 동작하는데 user mode 에서는 어플리케이션이 동작하고 사용자가 컴퓨터와 상호작용하는 등의 일이 이루어진다. 반면, Kernel mode 에서는 드라이버, CPU, 메모리 등에 접근하고 명령을 내리며 이러한 작업들이 이루어지기 위한 근본적인 작업들을 처리한다.

 

2.3 순차 처리에 비해 멀티프로그래밍이 갖는 장점은 무엇인가?

하나의 작업이 CPU를 사용하다가 입출력 처리 등으로 CPU를 사용하지 않는 동안, 다른 작업에 CPU를 할당하여 CPU의 효율을 극대화한다. 동시에 여러 프로그램을 실행할 수 있어 처리 능력이 좋다.

 

2.4 프로세스는 무엇인가?

실행중인 프로그램, 비동기적 행위를 일으키는 주체, 프로시저에 생명을 불어넣는 것.

 

2.5 프로세스의 문맥(context)는 운영체제에 의해 어떻게 사용되는가?

Context는 운영체제가 프로세스를 관리하고 처리기가 프로세스를 정확히 수행하는데 필요한 모든 필수 정보를 포함하고 있다. 따라서 문맥에는 프로그램 카운터나 데이터 레지스터 같은 다양한 처리기 레지스터들의 내용이 포함된다. 또한 프로세스의 우선순위와 프로세스가 어떤 입출력 사건이 완료되기를 기다리고 있는지 등 운영체제가 프로세스를 처리하는데 유용한 정보도 저장하고 있다.

 

2.6 전형적 운영체제의 다섯 가지 저장소 관리 책임을 열거하고 간단히 설명하라.

  • 프로세스 분리(isolation): 운영체제는 관계없는 프로세스들이 서로의 데이터나 메모리 영역을 침범하지 못하도록 분리하는 기법을 제공해야 한다.
  • 자동 할당 및 관리: 프로그램이 사용하는 메모리 영역은 필요할 때마다 메모리 계층구조를 따라 동적으로 할당되어야 하며, 이러한 할당은 사용자 개입 없이 자동으로 이루어져야 한다. 운영체제는 필요할 때에만 작업에게 메모리를 할당하여 메모리 이용 효율성을 높일 수 있다.
  • 모듈식 프로그래밍 지원: 프로그래머는 프로그램 모듈을 정의, 작성, 삭제할 수 있어야 한다.
  • 보호 및 접근 제어: 메모리 계층의 어느 레벨에서든지 메모리가 공유되면 한 프로그램이 다른 프로그램의 메모리 주소 공간을 참조할 수 있게 되는데, 때때로 이런 행동에 대해 접근 제어를 통해 무결성을 지켜야 한다.
  • 장기 저장: 컴퓨터 전원이 꺼진 후까지도 유지되는 정보 저장 수단이 있어야한다.

2.7 시간 분할(time slicing)이란 무엇인가?

preemptive(점유하고 있는 것을 빼는) 방식의 멀티태스킹 CPU에서 프로세스가 실행되도록 할당되는 시간이다. 따라서 정해진 일정 시간 간격으로 현재 수행중인 사용자는 선점되고(preempted) 다른 사용자가 적재된다.

 

2.8 라운드로빈 스케줄링 기법에 대해 설명하라.

라운드 로빈 스케줄링은 시분할 시스템을 위해 설계된 선점형(preemptive) 스케줄링의 하나로서, 프로세스들 사이에 우선순위를 두지 않고, 순서대로 시간단위로 CPU를 할당하는 방식의 CPU 스케줄링 알고리즘이다.

 

2.9 단일체 커널과 마이크로 커널의 차이점을 설명하라.

보통 단일체 커널은 하나의 프로세스 형태로 구현되는데 커널 내의 모든 요소들은 같은 주소 공간을 공유한다. 마이크로커널 구조는 주소 공간, 프로세스간 통신(IPC), 기본적인 스케줄링을 포함한 몇몇 소수의 핵심 기능만을 커널에 포함시킨다. 그 밖의 운영체제 서비스들은 서버라 불리는 프로세스에 의해 제공된다.

 

2.10 멀티쓰레딩이란 무엇인가?

하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상시키는 것을 멀티쓰레딩이라고 한다. 즉 하나의 프로그램에 동시에 여러 개의 일을 수행할 수 있도록 해주는 것이다.

 

2.11 분산 운영체제에 관해 이해하고 있는 바는 무엇인가?

각 호스트에 고유한 운영체제가 있는 것이 아니라 전체 네트워크에 공통적으로 단일 운영체제가 실행되는 시스템으로 원격에 있는 자원을 마치 지역 자원인 것처럼 쉽게 접근해 사용할 수 있는 방식이다.

분산 운영체제의 목적으로는

  1. 자원 공유의 증대성: 각 시스템이 통신망을 통해 연결되어 있으므로 유용한 자원을 공유해 사용할 수 있다.
  2. 계산 속도의 향상: 하나의 일을 여러 시스템에 분산해 처리하기 때문에 연산속도가 향상된다.
  3. 신뢰성 향상: 하나의 시스템에 오류가 발생하더라도, 다른 시스템은 계속 작업을 수행할 수 있기 때문에 신뢰도가 향상된다.