🌱 ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [그림으로 배우는 구조와 원리 운영체제] 1강 연습문제 풀이
    Computer-Science/OS 2022. 8. 13. 04:09

    Chapter 01 컴퓨터 시스템의 소개

    01. 컴퓨터 내부에서 프로세서 메모리 사이의 정보 전송에 사용하는 통로는?

    ① 버스

    ② 레지스터

    ③ 블록

     보조기억장치

    시스템 버스는 하드웨어를 물리적으로 연결하여 서로 데이터를 주고받을 수 있게 하는 통로이다.
    컴퓨터 내부의 다양한 신호(데이터 입출력, 프로세스 상태, 인터럽트 요구, 클록 등)를 시스템 버스로 전달한다.

    레지스터는 프로세서 내부에 있으며, 프로세서가 사용할 데이터를 보관하는 가장 빠른 메모리이다.
    블록은  메모리와 디스크 간 전송 단위이다.
    보조기억장치는 주변장치 중 프로그램과 데이터를 저장하는 하드웨어.

     

    02. 프로세서에서 사용하는 버스 형태가 아닌 것은?

    ① 주소 버스

    ② 제어 버스

    ③ 데이터 버스

    ④ 시스템 버스

     

    프로세서에서 사용하는 데이터는 기능에 따라 
    데이터 버스 (프로세서, 메인 메모리, 주변장치 사이에서 데이터를 전송)
    주소 버스 (프로세서가 시스템의 구성 요소를 식별하는 주소 정보를 전송)
    제어 버스 (프로세서가 시스템의 구성 요소를 제어하는 데 사용)
    로 구분한다.

     

    03. 목적이 특수한 값 하나를 저장하거나 연산을 처리하다가 중간 값을 저장하는 프로세서에 위치하는 고속 메모리는?

    ① 버스

    ② 레지스터

    ③ 메인 메모리

     캐시

     

    프로세서에 위치하는 고속 메모리는 레지스터이며, 모두 레지스터의 특징이다.

    버스는 데이터를 주고 받을 수 있게 하는 통로이다.
    메인 메모리는 프로세서 외부에 있으며, 프로세서에서 즉각적으로 수행할 프로그램/데이터를 저장하거나 프로세서에서 처리한 결과를 메인 메모리에 저장한다.
    캐시는 프로세서 내부나 외부에 있으며, 처리 속도가 빠른 프로세서와 상대적으로 느린 메인 메모리의 속도 차이를 보완하는 고속 버퍼이다.

     

    04. 프로그램 수행을 제어하는 명령어 실행 순서, 즉 다음에 실행할 명령어의 주소를 저장하는 것은?

    ① 프로그램 카운터(PC)

    ② 주소 레지스터(AR)

    ③ 누산기(AC)

    명령어 레지스터(IR)

     

    프로그램 카운터(Program Counter, PC)는 다음에 실행할 명령어의 주소를 보관하는 레지스터이다.

    주소 레지스터(Address Register, AR)는 주소나 유효 주소를 계산하는 데 필요한 주소의 일부분을 저장한다.
    누산기(ACCumulator, ACC)는 데이터를 일시적으로 저장하는 레지스터이다.
    명령어 레지스터(Instruction Register, IR)는 현재 실행하는 명령어를 보관하는 레지스터이다.

     

    05. 캐시는 메인 메모리의 접근시간과 프로세서의 어떤 것 사이의 차이를 줄이는 데 사용하는가?

    ① 지연시간

    ② 설정 시간

    ③ 구조

    ④ 속도

     

    06. 다음 중 OPcode의 기능이 아닌 것은?

    ① 주소 지정

    ② 함수 연산

    ③ 전달

     제어

     

    연산 부호(OPeration code, OPcode)는 프로세서가 실행할 동작인 연산을 지정한다.
    함수 연산(산술 연산, 논리 연산), 시프트, 보수 등 연산을 정의한다.

    그 외에 주기억 장치와 CPU간의 자료 전달, 프로그램 실행순서를 변경하는 제어, 입출력 기능을 담당한다.

     

    07. 인터럽트가 발생할 때 운영체제가 가장 먼저 하는 일은?

    ① 인터럽트 처리

    ② 인터럽트 발생 지점으로 복귀

    ③ 인터럽트 서비스 루틴으로 제어 이동

    ④ 현재까지 모든 프로그램 상태 저장

     

    인터럽트가 발생하면 실행 중인 프로그램을 메모리에 저장하고, 인터럽트 처리 프로그램으로 분기한다. 그리고 인터럽트 처리 프로그램을 완료하면 인터럽트를 발생시킨 프로그램에 제어를 돌려준다. 

     

    08. 인터럽트를 처리하는 순서를 올바르게 나열한 것은?

    a. 운영체제가 제어권을 받는다.
    b. 인터럽트 처리 루틴이 인터럽트를 처리한다.
    c. 인터럽트를 받은 프로세스의 상태를 저장한다.
    d. 인터럽트에 걸린 프로세스의 상태를 복구한다.

    ① a-c-b-d

    ② b-c-a-d

    ③ c-b-d-a

    c-b-a-d

     

     인터럽트는 제어권을 받고 프로세스 상태를 저장 후, 인터럽트 처리 루틴이 결과를 처리하도록 한다. 처리를 한 후 중단했던 프로그램을 다시 복구 후 실행한다.

    1. CPU에게 인터럽트 요청
    2. 현재 작업중인 프로세스 상태 저장 (STACK)
    3. 인터럽트 처리 루틴 작동
    4. 인터럽트 처리 루틴 완료 후 리턴주소를 이용해 원상태 이전 작업으로 복귀

     

    09. 인터럽트를 잘못 설명한 것은?

    ① 프로세서가 명령어를 수행하고 있을 때 다른 작업을 처리하려고 수행을 강제로 중단시키는 사건이다.

    ② 인터럽트가 발생하면 복귀 주소는 시스템 큐에 저장한다.

    ③ 인터럽트가 발생하면 해당 인터럽트 처리 루틴으로 가서 해당 루틴을 처리한 후 중단됐던 프로그램의 원래 지점으로 되돌아온다.

    입출력 하드웨어가 입출력 인터럽트를 발생시킨다.

     

    인터럽트가 발생하면 복귀 주소는 스택에 저장한다.

     

    10. 프로세서가 명령어를 수행하는 순서는?

    ㄱ. 인터럽트 조사
    ㄴ. 명령어 해석
    ㄷ. 명령어 인출
    ㄹ. 피연산자 인출
    ㅁ. 명령어 실행

    ① ㄷ-ㄱ-ㄴ-ㄹ-ㅁ

    ② ㄷ-ㄴ-ㄹ-ㅁ-ㄱ

    ③ ㄴ-ㄷ-ㄹ-ㅁ-ㄱ

    ㄹ-ㄷ-ㄴ-ㅁ-ㄱ

     

    명령어를 수행하는 순서
    1. 명령어 레지스터에 저장된 다음 명령어를 인출한다.
    2. 인출한 명령어를 해석하고 PC를 변경한다.
    3. 피연산자를 인출한다.
    4. 명령어를 실행한다.
    5. 결과를 저장한다.
    6. 인터럽트 요구를 확인, 없으면 다음 명령어로 이동한다. 

     

    11. 명령어 실행 주기(사이클)에 해당하지 않는 것은?

    ① 인출 사이클

    ② 간접 사이클

    ③ 해석 사이클

    실행 사이클

     

    명령어 실행 사이클은 인출 사이클, 실행 사이클, 간접 사이클, 인터럽트 사이클로 이루어진다.

     

    12. 하드웨어로 실현되는 서브루틴의 호출이라고 볼 수 있는 것은?

    ① 인출 사이클

    ② 간접 사이클

    ③ 실행 사이클

    ④ 인터럽트 사이클

     

     서브루틴은 반복적으로 사용되는 코드를 별도의 프로그램으로 작성하여 필요할 때 호출할 수 있도록 만들어진 프로그램이다. 인터럽트 사이클은 정상적인 순서로 작업을 하던 중 잠시 다른 작업을 수행한 후 다시 돌아오기에 서브루틴의 호출이라고 할 수 있다. 

    인출, 간접, 실행 사이클은 명령어 실행 사이클이다.

     

    13. 인출 사이클의 첫 레지스터 동작은?

    ① MAR <- PC

    ② AC <- AC + MBR

    ③ MAR <- MBR

    IR <- MBR

     

    인출 사이클은
    1. PC -> MAR (PC에 저장된 주소를 프로세서 내부 버스를 이용하여  MAR에 전달)
    2. Memory(MAR) -> MBR (MAR에 저장된 주소에 해당하는 메모리 위치에서 명령어 인출 후 이 명령어를 MBR에 저장, 제어 신호 발생)
     PC+1 -> PC (다음 명령어를 인출하려고 PC 증가)
    3. MBR -> IR (MBR에 저장된 내용을 IR에 전달)
    로 이루어진다.

     

    14. 메모리에서 명령어를 읽어 프로세서로 가져오는 상태는?

    ① 인터럽트 상태

    ② 간접 상태

    ③ 실행 상태

    ④ 인출 상태

     

    명령어 인출으로 명령어를 읽어 프로세서에 가져온 후, 명령어 실행 주기를 거치게 된다. 

     

    15. 프로그램의 명령어 수행 중에 산술 및 논리 연산의 결과를 일시적으로 기억하는 레지스터는?

    ① 프로그램 카운터(PC)

    ② 주소 레지스터(AR)

    ③ 누산기(AC)

    명령어 레지스터(IR)

     

     누산기는 메모리에서 읽은 피연산자를 레지스터에 저장된 데이터와 연산할 때 사용하는 프로세서의 레지스터이다. 프로그램의 명령어 수행 중에 산술/논리 연산의 결과를 일시적으로 저장한다. 

     

    16. 인터럽트 우선순위를 결정하는 polling 방법에 대한 설명으로 옳지 않은 것은?

    ① 많은 인터럽트가 발생할 때 처리 시간 및 반응시간이 매우 빠르다.

    ② S/W적으로 CPU가 각 장치를 하나씩 차례로 조사하는 방법이다.

    ③ 조사 순위가 우선순위가 된다.

    모든 인터럽트의 공통 서비스 루틴이 있다.

     

     프로세서는 폴링으로 각 장치의 상태 비트 중 준비가 된 장치를 검사하는데, 하드웨어를 추가할 필요가 없어 회로가 간단하나 검사할 때 CPU 자원이 필요하여 반응 속도가 느리다는 단점이 있다.

    댓글

🍀 Y0ungZ dev blog.
스크롤 버튼