본문 바로가기

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

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

1.1  컴퓨터의 네 가지 구성 요소를 나열하고 간단하게 설명하라.

 

  1. Processor : 컴퓨터의 동작을 제어하고 데이터를 처리한다. 처리기가 하나만 있는 경우에는 일반적으로 중앙처리장치(CPU)라고 부른다.
  2. Main memory : 데이터와 프로그램을 저장한다. 전형적으로 휘발성이기 때문에, 컴퓨터가 shutdown 될경우 메모리의 내용이 없어지게 된다. 대조적으로, 디스크 메모리의 내용은 컴퓨터가  shutdown 되더라도 유지된다. Main memory는 real memory 혹은 primary memory라고도 불린다.
  3. I/O module : 컴퓨터와 외부 환경 간의 데이터 이동을 담당한다. 외부 환경은 보조기억장치, 통신장비, 그리고 단말기를 포함한 다양한 외부 장치로 구성된다.
  4. System bus : 처리기, 주기억장치, 그리고 입출력 모듈 간의 통신을 제공한다.

 

1.2  처리기 레지스터의 두 가지 기본 종류를 정의하라.

 

  • User Visible Registers : 사용자가 직접 사용이 가능한 레지스터
  • control and status register (제어 및 상태 레지스터) : CPU의 연산에 사용되는 레지스터

 

1.3  일반적으로 기계 명령어가 명시할 수 있는 네 가지 구분되는 작업은 무엇인가?

  • 처리기 – 메모리
  • 처리기 – 입출력
  • 데이터 처리
  • 제어

 

1.4  어떻게 우선순위를 설정하여 다중 인터럽트를 서비스하는가?

우선 인터럽트 우선 순위는 다음과 같다.  

  • 1. 전원이상
  • 2. 기계 착오
  • 3. 외부신호
  • 4. 입출력
  • 5. 명령어 오류
  • 6. 프로그램
  • 7. SVC(SuperVisor Check)

소프트웨어적인 방법으론 Polling 기법이 있는데 인터럽트 발생 시 높은 우선순위의 인터럽트 자원부터 인터럽트 요청 플래그를 검사하여, 우선순위가 가장 높은 인터럽트 자원을 찾아내 루틴을 수행하는 기법이다. 다음과 같은 특징이 있다.

  • 많은 인터럽트가 있을 경우, 모두 조사하는데에 시간이 걸려 처리 속도가 느림.
  • 회로가 간단함
  • 융통성이 있음
  • 별도의 하드웨어가 필요없어 경제적

하드웨어적인 방법으로는 Vectored Interrupt가 있다. CPU와 인터럽트를 요청할 수 있는 장치 사이에 장치번호에 해당하는 버스를 직렬이나 병렬로 연결하여 요청 장치의 번호를 CPU에게 알리는 방식이다. 인터럽트 벡터란, 인터럽트를 발생한 장치가 프로세서에게 분기할 곳에 대한 정보를 제공하는 것이다. 다음과 같은 특징이 있다.

  • 장치 판별을 위한 별도의 프로그램 루틴이 없어 응답 속도가 빠름
  • 회로가 복잡함
  • 융통성이 없음
  • 추가적인 하드웨어가 필요하므로 비경제적

하드웨어적인 방법 중 직렬 우선순위 부여 방식을 Daisy-chain 이라고 한다.

 

 

1.5  인터럽트 구동 I/O(interrupt-driven I/O)가 어떻게 작동하는지 간단하게 설명하라.

  • CPU가 I/O 제어기에게 명령을 전송하고, CPU는 다른 작업을 수행
  • 제어기는 I/O 장치를 제어하여 I/O 명령을 수행
  • I/O 명령 수행이 완료되면, 제어기는 CPU로 인터럽트 신호를 전송
  • CPU는 인터럽트 신호를 받는 즉시 원래의 프로그램으로 복귀하여 수행을 계속

 

1.6  메모리 계층 구조에서 위로 올라갈수록 어떤 특징이 나타나는가?

비트당 가격이 높아지고 접근시간이 짧아지며 용량이 작아진다.

 

 

1.7  캐시 메모리의 크기를 결정할 때 트레이드오프(tradeoff)는 무엇인가?

  • 접근시간이 짧을수록 비트당 가격이 높아진다.
  • 용량이 클수록 비트당 비용이 낮아진다.
  • 용량이 클수록 접근시간이 길어진다.

 

1.8  멀티 프로세서와 멀티코어 시스템의 차이점은 무엇인가?

  • 멀티 프로세서는 운영체제의 행동 양식을 일컫는 용어로써 소프트웨어적인 용어고
  • 멀티코어 시스템은 코어라고 불리는 두 개 이상의 프로세서가 다이라고 불리는 단일 실리콘 조각에 결합된 것으로써 하드웨어적인 용어다.

 

1.9  캐시 쓰기 정책은 무엇인가?(Cache Write Policy)

데이터 변경 시 캐시 메모리와 메인 메모리에 데이터 저장 위치에 관한 정책이다.

 

 

1.10  일반적으로, 공간 지역성과 시간 지역성을 활용하기 위한 전략은 무엇인가?

  • 공간 지역성(spatial locality) : 어떠한 메모리 위치가 참조 되면 그 주변의 위치를 다시 엑세스 하려는 경향
  • 시간 지역성(temporal locality) : 최근에 사용되었던 메모리 위치를 다시 엑세스하려는 경향

캐시메모리는 속도가 빠른 장치와 느린 장치간의 속도 차에 따른 병목 현상을 줄이기 위한 범용 메모리이다.

이러한 역할을 수행하기 위해선 CPU가 어떤 데이터를 원할 것인가를 어느 정도 예측할 수 있어야 한다. (캐시의 성능은 작은 용량의 캐시 메모리에 CPU가 이후에 참조할 쓸모있는 정보가 얼마나 들었느냐에 좌우되기 때문)

이때, 적중률(cache hit rate)을 극대화 시키기 위해서 데이터 지역성(Locality)의 원리를 사용

Locality의 전제 조건 : 프로그램은 모든 코드나 데이터를 균등하게 access하지 않는다. (어느 한 순간에 특정 부분을 집중적으로 참조하는 특성)