Skip to content

Latest commit

 

History

History
319 lines (184 loc) · 16.7 KB

3장__컴퓨터_시스템_동작원리_2.md

File metadata and controls

319 lines (184 loc) · 16.7 KB

3장 컴퓨터 시스템 동작원리_2


3-7 🍂 저장장치의 구조 secho

  1. 보기를 보고 빈칸을 채워주세요

비휘발성, 휘발성, 휘성, 느린, , 당장 필요하지 않은, 당장 필요한, 낮추며, 높이며, 스왑영역, 블랙스완영역, ROM, RAM, BAAM

컴퓨터 시스템 저장장치는 주, 보조기억장치로 나뉜다. 주기억장치는 보통 메모리라고 부르며 ___의 RAM을 매체로 사용한다.

보조기억장치는 메모리공간이 부족한 경우가 발생할 경우에 대비해 메모리의 연장공간인 ____용으로 사용한다.

  • 저장장치는 빠른 저장장치부터 느린 저장장치까지 단계적인 계층 구조로 이루어져있다. 빠른 저장장치__용량을 사용하며, _____정보를 넣어두어 수행 속도를 ___ 그렇지 않은 정보는 상대적으로 __저장장치에 보관한다.

2번. 컴퓨터 시스템 저장장치 계층구조의 상위에 존재하는 휘발성 저장장치 3가지를 작성해주시고 전원이 나가면 휘발성 메모리에 있는 내용은 어떻게 될까요?


3번. 캐싱기법에 대해 설명해주세요.

📄 답지

1.보기를 보고 빈칸을 채워주세요.

비휘발성, 휘발성, 휘성, 느린, , 당장 필요하지 않은, 당장 필요한, 낮추며, 높이며, 스왑영역, 블랙스완영역, ROM, RAM, BAAM

컴퓨터 시스템 저장장치는 주, 보조기억장치로 나뉜다. 주기억장치는 보통 메모리라고 부르며 휘발성RAM을 매체로 사용한다.

보조기억장치는 메모리공간이 부족한 경우가 발생할 경우에 대비해 메모리의 연장공간인 ``용으로 사용한다.

  • 저장장치는 빠른 저장장치부터 느린 저장장치까지 단계적인 계층 구조로 이루어져있다. 빠른 저장장치적은용량을 사용하며, 당장 필요한정보를 넣어두어 수행 속도를 높이고 그렇지 않은 정보는 상대적으로 느린저장장치에 보관한다.

2번. 컴퓨터 시스템 저장장치 계층구조의 상위에 존재하는 휘발성 저장장치 3가지를 작성해주시고 전원이 나가면 휘발성 메모리에 있는 내용은 어떻게 될까요?

  • 레지스터, 캐시 메모리, 메인 메모리
  • 지워지게됨

3번. 캐싱기법에 대해 설명해주세요.

  • 느린 저장장치의 내용중 빈번히 사용될 정보를 빠른 저장장치, 캐시메모리에 선별적으로 저장함으로써 성능을 향상시킬 수 있는 기법


3-8 🍂 저장장치의 계층 구조  jehong

  1. _______ 저장장치는 단위 공간당 가격이 높고 이 때문에 적은 용량을 사용한다.

  2. _______ 저장장치는 가격이 저렴대용량을 사용하는 반면 접근 속도가 느리다.

  3. 다음 중 저장장치 계층의 상위에 속하는 휘발성 저장장치는? (중복가능)

    a. 레지스터

    b. 캐시 메모리

    c. 메인 메모리

    e. 광디스크

    f. 마그네틱 테이프

  4. 많은 횟수를 반복하는 코드 A한 번 수행되고 끝나는 코드 B가 있습니다. 캐싱 기법을 활용해 전체 시스템 평균 성능을 향상시키려면 어떻게 해야할까요? (서술형)

📄 답지
  1. 빠른 저장장치는 단위 공간당 가격이 높고 이 때문에 적은 용량을 사용한다.

    빠른

  2. 느린 저장장치는 가격이 저렴해 대용량을 사용하는 반면 접근 속도가 느리다.

    느린

  3. 다음 중 휘발성 저장장치인 것은? (중복가능)

    a. 레지스터

    b. 캐시 메모리

    c. 메인 메모리

    e. 광디스크

    f. 마그네틱 테이프

    a, b, c

  4. 많은 횟수를 반복하는 코드 A와 한 번 수행되고 끝나는 코드 B가 있습니다. 캐싱 기법을 활용해 전체 시스템 평균 성능을 향상시키려면 어떻게 해야할까요? (서술형)

    반복코드 A를 빠른 저장장치에 올리면 적은 저장공간만으로 대부분의 경우 수행 속도가 빨라져 전체 시스템의 평균적인 성능을 향상시킬 수 있습니다.



3-9 🍂 하드웨어의 보안  taelee

  1. 운영체제는 하드웨어적인 보안을 유지하기 위해서 기본적으로 _____모드와 _____모드를 지원한다.

  2. 중요한 정보에 접근해 위험한 상황을 초래할 수 있는 연산은 ____모드에서만 실행된다.

  3. 사용자 프로그램이 CPU를 점유하고 있는동안은 운영체제가 자신의 코드를 실행하지 못하므로 사용자 프로그램을 감시할 방법이 없다. 이를 하드웨어적인 방법으로 해결하기 위해 _____을 두어 사용자 프로그램을 감시한다.

  4. ____비트가 0일 때는 커널모드 1일때는 사용자 모드이다.

  5. 시스템의 보안과 관련된 명령들을 _____명령이라 지칭하며, 이 명령은 모드비트가 0일 때에만 수행할 수 있다.

  6. 다음은 사용자 프로그램에서 입출력 기능이 필요할 때 이뤄지는 과정이다. 알맞은 순서를 찾아주세요

보기
가. 사용자 프로그램은 입출력된 결과를 바탕으로 이후 명령을 실행한다.
나. 요청된 입출력이 완료되면 CPU제어권을 사용자 프로그램에게 다시 넘겨준다.
다. 운영체제는 올바른 요청인지 확인하고 입출력을 실행한다.
라. 입출력은 특권명령으로 시스템콜로 운영체제에게 요청한다.
a. 사용자프로그램이 실행중이다.

b. 입출력 기능이 필요하다

c. _______________________________________________________________________________

d. 운영체제가 CPU를 할당받고 인터럽트가 발생된다.

e. 이때 인터럽트가 모드비트를 0으로 세팅하여 운영체제가 입출력을 할 수 있게 한다.

f. _______________________________________________________________________________

g. _______________________________________________________________________________

h. _______________________________________________________________________________
📄 답지
  1. 운영체제는 하드웨어적인 보안을 유지하기 위해서 기본적으로 __커널___모드와 __사용자__모드를 지원한다.

  2. 중요한 정보에 접근해 위험한 상황을 초래할 수 있는 연산은 __커널__모드에서만 실행된다.

  3. 사용자 프로그램이 CPU를 점유하고 있는동안은 운영체제가 자신의 코드를 실행하지 못하므로 사용자 프로그램을 감시할 방법이 없다. 이를 하드웨어적인 방법으로 해결하기 위해 __모드 비트__을 두어 사용자 프로그램을 감시한다.

  4. __모드 비트__비트가 0일 때는 커널모드 1일때는 사용자 모드이다.

  5. 시스템의 보안과 관련된 명령들을 __특권__명령이라 지칭하며, 이 명령은 모드비트가 0일 때에만 수행할 수 있다.

  6. 다음은 사용자 프로그램에서 입출력 기능이 필요할 때 이뤄지는 과정이다. 알맞은 순서를 찾아주세요

a. 사용자프로그램이 실행중이다.

b. 입출력 기능이 필요하다

c. 입출력은 특권명령으로 시스템콜로 운영체제에게 요청한다.

d. 운영체제가 CPU를 할당받고 인터럽트가 발생된다.

e. 이때 인터럽트가 모드비트를 0으로 세팅하여 운영체제가 입출력을 할 수 있게 한다.

f. 운영체제는 올바른 요청인지 확인하고 입출력을 실행한다.

g. 요청된 입출력이 완료되면 CPU제어권을 사용자 프로그램에게 다시 넘겨준다.

h. 사용자 프로그램은 입출력된 결과를 바탕으로 이후 명령을 실행한다.



3-10 🍂 메모리 보안  yeosong

  1. C언어 사용에 서툰 yeosong이 포인터 연산을 하다가 그만 실수로 커널 영역을 참조하라고 지시해버렸다! 이에 운영체제는 어떻게 대응할까요?

  2. 운영체제는 위와 같은 침범을 막기 위해 각 프로세스가 독립된 메모리 공간을 가지도록 2개의 레지스터를 사용해 보호해두었다. 이에 대한 설명을 완성해보세요.

  • 기준(base) 레지스터에는 이 프로세스가 사용할 수 있는 합법적인 가장 작은 / 큰 물리적 / 상대적 메모리 주소의 값, 즉 시작 주소가 저장되어 있고,
  • 한계(limit) 레지스터에는 이 프로세스에 주어진 영역의 크기가 저장되어 있다.
  • 기준 레지스터 값이 10000이고, 한계 레지스터 값이 3400이라면 프로그램은 _____ 에서 _____까지의 모든 주소에 접근할 수 있다.
  1. 메모리 접근 연산이 특권명령(privileged instruction)일까요?

  2. 기준 레지스터한계 레지스터특권명령(privileged instruction)을 사용하는 운영체제에서만 적재(load)될까요?

📄 답지
  1. C언어 사용에 서툰 yeosong이 포인터 연산을 하다가 그만 실수로 커널 영역을 참조하라고 지시해버렸다! 이에 운영체제는 어떻게 대응할까요?
  • 예외상황(exception)으로 간주, 이를 발생시킨 프로그램을 강제종료 시킨다.
  • 오류로 간주하고 trap을 발생시킨다. 모두 정답 처리~
  1. 운영체제는 위와 같은 침범을 막기 위해 각 프로세스가 독립된 메모리 공간을 가지도록 2개의 레지스터를 사용해 보호해두었다. 이에 대한 설명을 완성해보세요.
  • 기준(base)레지스터에는 이 프로세스가 사용할 수 있는 합법적인 가장 작은 물리적 메모리 주소의 값, 즉 시작 주소가 저장되어 있고,
  • 한계(limit)레지스터에는 이 프로세스에 주어진 영역의 크기가 저장되어 있다.
  • 기준 레지스터 값이 10000이고, 한계 레지스터 값이 3400이라면 프로그램은 10000 에서 13400까지의 모든 주소에 접근할 수 있다.
  1. 메모리 접근 연산이 특권명령(privileged instruction)일까요?

아니오. 그냥 합법 공간 내인지 체크만 하는 것입니다.

  1. 기준 레지스터한계 레지스터특권명령(privileged instruction)을 사용하는 운영체제에서만 적재(load)될까요?

네. 그래야 사용자 프로그램으로부터 운영체제의 인터럽트 처리 루틴, 커널 영역 같은 중요한 부분들을 보호할 수 있겠죠? 공룡책 387p



3-11 🍂 CPU 보호  kukim

  1. 운영체제는 타이머(timer)라는 하드웨어를 사용한다. 이때 타이머(timer)는 어떤 역할을 하는가?

  2. CPU는 각 시간마다 어떤 프로세스를 실행할까요? 아래의 링크로 들어가 문제를 풀어주세요

프로세스 처리 순서 1 -> 2 -> 3
로드 타이머 값 = 10ms 
(wait) = 데이터 파일 로드 인터럽트

https://i.ibb.co/mthVt0y/3-11-CPU-kukim.png

📄 답지
  1. 운영체제는 타이머(timer)라는 하드웨어를 사용한다. 이때 타이머(timer)는 어떤 역할을 하는가?

    • 정답 : 정해진 시간마다 인터럽트를 발생시켜 운영체제가 CPU의 제어권을 획득할 수 있도록 해준다. 예를 들어 CPU는 A와 B라는 프로세스를 처리해야 하는데 A가 먼저 실행되었다. A 프로세스가 끝나지 않고 계속 실행되고 있다, 타이머는 일정 시간이 지나면 A프로세스의 CPU 제어권을 빼앗고 운영체제로 돌려준다. 이때 운영체제는 B 프로세스가 실행되게 만들어 준다. (선점형 OS)
  2. CPU는 각 시간마다 어떤 프로세스를 실행할까요? 아래의 링크로 들어가 문제를 풀어주세요

프로세스 처리 순서 1 -> 2 -> 3
로드 타이머 값 = 10ms 
(wait) = 데이터 파일 로드 인터럽트

https://i.ibb.co/mthVt0y/3-11-CPU-kukim.png



3-12 🍂 시스템 콜을 이용한 입출력 수행  gaekim

  1. 시스템 콜(system call)소프트웨어적인 인터럽트로, 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것을 말한다.

  2. 사용자 프로그램이 디스크의 파일에 데이터를 읽거나 쓰는 행위, 키보드로부터 입력을 받거나 결과를 화면에 출력하는 행위 등은 특권명령입출력 / 인터럽트 명령에 해당한다. 이러한 입출력 / 인터럽트 명령은 운영체제 / 인터럽트 라인 / 디스크 코드에 구현되어 있다.

  3. 사용자 프로그램을 실행 중에는 mode bit이 1 / 0이어서 운영체제나 I/O 장치에 직접 접근할 수 없다. 이 때문에 사용자 프로그램은 I/O 요청이 들어오면 운영체제 / 왕🤴 건희에게 소프트웨어 / 하드웨어적인 인터럽트를 걸어 서비스 대행을 요청한다.

    ※ mode bit이란 컴퓨터의 하드웨어에 추가되어 사용자 모드 또는 모니터 모드를 나타내는 것으로, 다른 프로그램 및 운영체제를 보호하는 보안 목적을 갖는다.

  4. I/O 작업을 수행하기 위해서는 2가지의 인터럽트가 걸린다. 이는 사용자 프로그램이 I/O 요청을 위해 운영체제에게 시스템 콜을 거는 ___웨어 인터럽트와 요청한 I/O 작업이 끝나면 디바이스 컨트롤러가 CPU에게 작업이 완료되었음을 알리는 ___웨어 인터럽트를 말한다.

📄 답지
  1. 시스템 콜(system call)소프트웨어적인 인터럽트로, 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것을 말한다.

    사용자 프로그램이 I/O 요청을 위해 직접 인터럽트 라인(Interrupt line)을 셋팅하는 명령(Instruction)을 실행하는데, 이것이 바로 시스템 콜에 해당한다.

  2. 사용자 프로그램이 디스크의 파일에 데이터를 쓰거나, 디스크의 파일로부터 데이터를 읽어오는 행위, 키보드로부터 입력을 받거나 수행 결과를 화면에 출력하는 행위 등은 특권명령입출력 명령에 해당한다. 이러한 입출력 명령은 운영체제 코드에 구현되어 있다.

    운영체제 코드는 정확히 말해서 운영체제 커널 내의 인터럽트 처리루틴[=인터럽트 핸들러]에 정의된 것을 말한다.

  3. 사용자 프로그램을 실행 중에는 mode bit이 1이어서 운영체제나 I/O 장치에 직접 접근할 수 없다. 이 때문에 사용자 프로그램은 I/O 요청이 들어오면 운영체제에게 소프트웨어적인 인터럽트를 걸어 서비스 대행을 요청한다.

    ※ mode bit이란 컴퓨터의 하드웨어에 추가되어 사용자 모드 또는 모니터 모드를 나타내는 것으로, 다른 프로그램 및 운영체제를 보호하는 보안 상의 목적을 갖는다.
    mode bit 1: 사용자 모드 -> 사용자 프로그램이 CPU를 할당받은 상태이며 제한된 명령(Instruction)만 수행할 수 있다.
    mode bit 0: 모니터 모드[=커널 모드, 시스템 모드] -> 운영체제가 CPU를 할당받은 상태이며 메모리 접근, I/O 장치 접근 등을 할 수 있다.

  4. I/O 작업을 수행하기 위해서는 2가지의 인터럽트가 걸린다. 이는 사용자 프로그램이 I/O 요청을 위해 운영체제에게 시스템 콜을 거는 소프트웨어 인터럽트와 요청한 I/O 작업이 끝나면 디바이스 컨트롤러가 CPU에게 작업이 완료되었음을 알리는 하드웨어 인터럽트를 말한다.

    소프트웨어: 사용자 프로그램
    하드웨어: I/O 디바이스 컨트롤러