DNF LOVE

[OS] Computer-System Organization(컴퓨터 시스템 구성) 본문

Computer Science/운영체제

[OS] Computer-System Organization(컴퓨터 시스템 구성)

botho 2019. 9. 14. 21:47
반응형

1. 컴퓨터 시스템 연산(Computer-System Operation)

  • 현대 컴퓨터 시스템은 하나 이상의 CPU와 여러 장치 제어가를 공용 버스(하드웨어를 제어하는 흐름)로 연결된다.
    • 공유 메모리에 접근할 수 있도록 공통 버스로 연결한다
  • CPU와 장치는 병행 수행하기 때문에 메모리를 사용하기 위해 경쟁을 한다.(그래서 OS가 이를 관리한다.)
    • 공유 메모리에 대한 질서 있는 접근을 보장하기 위해 메모리 제어기가 메모리 접근을 동기화 시킨다.
  • 컴퓨터가 시작하기 위해서 실행시킬 초기 프로그램을 가지고 있어야 한다. 이를 Booststrap Program이라 한다.
    • 전형적으로 ROM(Read-only Memory - 비휘발성, 한번 쓰면 수정이 안된다.) 또는 EPROM(Electrically erasable programmable ROM - 요즘 사용하는 메모리, Update가능함)가 컴퓨터 내의 읽기 전용 메모리에 저장되는 펌웨어이다.
    • 부트스트랩 프로그램의 실행 순서
      • 시스템의 모든 구성요소를 초기화한다.
      • 운영체제 커널을 메모리에 적재 시킨 후, 커널을 실행한다.
      • 시스템은 완전히 부트된 상태에서 Event(=Interrupt)발생 되기 까지 대기(Wating)한다.

2. 인터럽트(Interrupt) : 인터럽트는 정상적인 CPU의 프로그램 실행에 방해되었다는 뜻으로 인터럽트 서비스 루틴을 통해 해결할 수 있다.

사건의 발생 여부는 하드웨어나 또는 소프트웨어로부터 발생한 인터럽드에 의해 전달받는다.

하드웨어는 어느 때든지 시스템 버스를 통해 CPU에 신호를 보내 인터럽트를 발생시킬 수 있다.

  • 하드웨어에 의한 인터럽트
    • CPU외부의 디스크 컨트롤러나 주변장치로부터 요구되는 인터럽트이다.
    • 운영체제의 처리를 요하는 상황을 알리기 위해 전기적인 신호를 사용한다.
    • 1. 기계검사 인터럽트 : 프로그램을 실행하는 도중 갑작스런 정전이나 컴퓨터 자체 내에서 기계적인 문제가 발생한 경우
    • 2. 외부 인터럽트 : 오퍼레이터나 타이머(Time out -> Program종료)에 의해 의도적으로 프로그램이 중단된 경우
    • 3. 입출력 인터럽트 : 입출력 종료나 입출력의 오류에 의해 CPU의 기능이 요청되는 경우
    • 4. 프로그램 검사 인터럽트 : 프로그램 실행 중 보호된 기억공간 내에 접근하거나 불법적인 명령 수행과 같은 프로그램의 문제가 발생한 경우.
  • 소프트웨어에 의한 인터럽트
    • 프로그램 실행 중 프로그램 상의 처리 불가능한 오류나 이벤트를 알리기 위한 경우 발생된다.
    • 트랩(Trap) 또는 예외(Exception)라 부른다.(논리 오류 / Time out - 실행 오류, Runtime Error)
      • 존재하지 않는 메모리 주소에 접근할 때 (포인터 초기화의 중요성)
      • 나눗셈에서 0으로 나누고자 하는 경우 등

 

  • 인터럽트는 인터럽트 서비스 루틴에게 제어권을 넘긴다.
    • 인터럽트 서비스 루틴은 인터럽트를 해결하는 방법들을 정의해둔 함수라 생각하면 된다.
    • 종류별로 서비스 루틴이 다르다.
    • 모든 서비스 루틴의 주소를 저장하고 있는 자료구조를 인터럽트 백터라고 한다.
  • 인터럽트 아키텍처는 반드시 인터럽트된 명령어의 주소를 저장해야 한다.
    • 복귀 주소, 복귀 전의 CPU상태를 복원해야 한다.
    • 인터럽트를 서비스 한 후, 저장되어 있는 복귀 주소를 프로그램 카운터(PC)에 적재하고 인터럽트에 의해 중단되었던 연산이 인터럽트가 발생되지 않았던 것처럼 다시 시작된다.
  • 운영체제는 인터럽트가 발생해야 작동을 시작하는 방식을 갖는다.
    • Interrupt Driven(=Event Driven)
반응형