본문 바로가기

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

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

3.1 명령 궤적(trace)란 무엇인가?

프로세스를 위해 수행되는 일련의 명령어 리스트

 

3.2 프로세스의 개념을 설명하고, 프로그램과의 차이점에 대해 기술하라.

개념: 수행 중인 프로그램, 컴퓨터 상에 수행 중인 프로그램의 인스턴스, 비동기적 행위를 일으키는 주체, 프로시저에 생명을 불어넣는 것.

 

차이점: 프로그램과의 차이는 프로그램은 파일 시스템에 존재하는 실행파일 그 자체이고 프로세스는 그 프로그램을 실행 시키는 인스턴스이다.

 

3.3 그림 3.6의 처리 모델에서, 각 상태를 간단하게 정의하라.

  • 수행(Running): 현재 수행 중인 프로세스, 이 장에서는 단일 처리기로 이루어진 컴퓨터를 가정하고 있으므로, 임의 시점에 단지 하나의 프로세스만이 수행 상태일 수 있다.
  • 준비(Ready): 기회가 주어지면 수행될 준비가 되어 있는 프로세스
  • 블록/대기(Blocked/Wating): 입출력 연산 완료 등과 같은 어떤 이벤트가 발생할 때까지 수행될 수 없는 프로세스
  • 생성(New, 시작): 지금 막 생성되었지만, 운영체제에 의해 수행 가능한 프로세스 풀(pool)로의 진입이 아직 허용되지 않은 프로세스. 전형적으로, 새로운 프로세스는 자신의 프로세스 제어블록이 생성되었다 할지라도 그 당시까지 주기억장치에 적재되지 않는다.
  • 종료(Exit): 프로세스 수행이 중지(halt)되거나 어떤 이유로 중단(abort)되었기 때문에 운영체제에 의해 수행가능 프로세스 풀에서 방출된 프로세스

 

3.4 어떤 프로세스를 선점한다는 것의 의미는 무엇인가?

이미 실행되고 있는 프로세스를 인터럽트 하여 우선순위가 높은 프로세스를 수행했을 때 이미 실행되고 있었던 프로세스를 선점(preemption)했다고 한다.

 

3.5 프로세스 생성(process spawning)이란?

운영체제가 어떤 프로세스의 명시적인(explicit) 요청에 의해 새로운 프로세스를 생성할 수 있는데, 이것을 프로세스 생성(process spawning)이라고 한다.

 

3.6 그림 3.9b에서 두 개의 블록 상태가 존재하는 이유는 무엇인가?

멀티 프로그래밍 환경에서 처리기의 유휴 상태를 줄이기 위해 스와핑(swapping)이라는 해결책이 있는데 스와핑을 사용하려면, 보류상태(Suspend state)가 프로세스 행위 모델에 추가되어야 하기 때문이다.

 

3.7 보류 상태에 있는 프로세스의 네 가지 특징을 나열하라.

  • 프로세스가 어떤 사건이 일어나기를 기다리고 있는 상태
  • 처리 속도가 느림 I/O(입출력) 작업 중인 상태
  • 외부적인 사건이 생길 때까지 실행할 수 없는 상태
  • 주기억장치에서 디스크로 이동된 상태

3.8 관리 목적을 위해 운영체제는 어떤 유형의 개체에 대한 정보 테이블을 유지하는가?

Process image와 PCB에 대한 정보 테이블을 유지한다.

 

3.9 프로세스 이미지(image)의 구성요소들은 무엇인가?

  • 사용자 데이터 
  • 사용자 프로그램
  • 시스템 스택
  • 프로세스 제어블록

 

3.10 두 가지 모드(사용자 모드와 커널 모드)가 필요한 이유는 무엇인가?

사용자 프로그램의 간섭으로부터 운영체제 및 PCB와 같은 주요 운영체제 테이블을 보호할 필요가 있기 때문이다.

 

3.11 어떤 상황들에서, 부모 프로세스는 자식 프로세스 수행을 종료시킬 수 있나?

  • 자식이 할당 자원의 한계치를 넘어설 때
  • 자식에게 할당된 task가 더 이상 필요하지 않을 때
  • 부모가 종료(exit)해야하는 경우

3.12 인터럽트와 트랩의 차이점은 무엇인가?

인터럽트는 현재 수행 중인 프로세스와는 독립적으로 외부에서 유발되는 여러 종류의 사건에 의해 발생한다. 트랩은 불법적인 파일 접근 시도처럼, 현재 수행되고 있는 프로세스에서 생성되는 오류나 예외 조건 때문에 발생된다.

 

3.13 '프로세스 기반 운영체제'의 장점은 무엇인가?

운영체제를 모듈화함으로써, 프로그램 설계 원칙에 충실할 수 있다.

운영체제의 기능 중 중요하지 않은 몇 가지는 개별적인 프로세스로 쉽게 구현될 수 있다.

다중 처리기나 멀티 컴퓨터 환경에서 유용하다.

 

3.14 모드 전환과 프로세스 교환의 차이점은 무엇인가?

모드 전환은 현재 수행 상태에 있는 프로세스의 상태를 바꾸지 않고 수행될 수 있다. 이 경우, 문맥을 저장하거나 나중에 복구할 때 생기는 오버헤드는 거의 없다. 하지만 현재 수행 상태인 프로세스가 다른 상태(준비 상태나 블록 상태 등)로 전이되면, 운영체제는 그 환경을 크게 변경시켜야 한다.