코학다식

[OS] 운영체제의 정의와 Interrupt 본문

Fundamentals/OS

[OS] 운영체제의 정의와 Interrupt

copeng 2019. 9. 8. 01:52

Operating System

chapter 1-2 (1)

 

 

운영체제란 무엇일까?


 

  • 운영체제란 컴퓨터의 사용자와 컴퓨터 하드웨어 사이의 중개인 역할을 하는 프로그램을 말한다.

 

 

운영체제의 정의(1)


 

  • 사용자 관점

    • 운영체제는 쉬운 사용과 수행을 위한 프로그램이다.
  • 시스템 관점
    • 운영체제는 자원 할당과 제어를 위한 프로그램이다.
      • 모든 자원을 관리한다.
      • 효율적이고 공정한 자원 사용을 위해 충돌하는 요구들 사이에서 결정을 내린다.
      • 에러와 부적절한 컴퓨터의 사용을 예방하기 위해 프로그램의 실행을 제어한다.

 

 

운영체제의 정의(2)


 

  • 보편적으로 받아들여지는 정의는 없고, "운영체제를 구매할 때 판매자가 제공하는 모든 것"이라고 생각하는 게 좋은 추정이다. (하지만 판매자마다 차이가 존재한다.)
  • 모바일 운영체제는 핵심 커널(작은 의미의 운영체제)뿐 아니라 미들웨어-데이터베이스, 멀티미디어 등을 포함한 추가적인 서비스를 제공하는 소프트웨어 프레임워크의 집합-를 포함한다. 그래서 모바일 운영체제는 '플랫폼'이라고 불리기도 한다.
  • "컴퓨터에서 항상 돌아가는 한 프로그램"은 커널이다. 다른 것은 운영체제에서 돌아가는 시스템 프로그램이거나 응용 프로그램이다.

 

 

컴퓨터 시스템 조직


 

  • 컴퓨터 시스템 작동
    • 하나 이상의 CPU와 device controller들은 공유된 메모리의 접근을 제공하는 버스를 통해 연결된다.
    • CPU들과 device들의 동시 실행은 메모리 사이클을 두고 경쟁한다. (arbitration으로 순서를 조정)
  • 컴퓨터 시스템의 작동 상세; I/O device와 CPU간 데이터 주고받기는 운영체제의 중요한 일 중 하나!

    • I/O device와 CPU는 비동기적으로 실행될 수 있다. 즉, 동시에 실행될 수 있다.

      비동기적으로 실행된다는 것은 어떤 작업을 요청했을 때 작업이 종료될 때까지 기다리지 않고 다른 작업을 하고 있다가, 요청했던 작업이 종료되면 그에 대한 추가 작업을 수행하는 방식으로 실행됨을 의미한다.

  • 각각의 device controller는 특정 device 타입을 담당한다.

  • 각각의 device controller는 로컬 버퍼를 가진다.

  • CPU는 메인 메모리에서 로컬 버퍼로 데이터를 보내거나 로컬 버퍼에서 메인 메모리로 데이터를 가져온다.

  • I/O는 device로부터 controller의 로컬 버퍼까지이다.

  • Device controller는 interrupt를 발생시키며 CPU에게 작업이 끝났음을 알린다.

 

 

Interrupt Handling (HW 관점)


 

  • Interrupt Handling(x86)

    • I/O device들은 IRQ 라인들을 가진다.

    • IRQ들은 PIC(Programmable Interruptible Controller)에 의해 매핑되어 CPU에게 interrupt를 발생시킨다.

    • 80386 코어는 INTR(Interrupt) 라인 하나와 INTA(Interrupt Acknowledge) 라인 하나를 가진다.

      INTR와 INTA는 CPU에 전송되는 시그널의 이름이다.

https://alex.dzyoba.com/blog/os-interrupts/

 

 

Interrupt Handling (SW 관점)


 

  • Hardware interrupt의 경우
    • Interrupt는 컨트롤을 interrupt service routine(또는 interrupt handler)에 전송하는데, interrupt vector를 사용한다.
    • Interrupt vector는 일반적으로 운영체제의 일부분이다.
    • Interrupt vector는 운영체제 메모리의 가장 상단에 위치하고 모든 서비스 루틴의 주소를 포함한다.
    • Interrupt service routine은 결국 interrupt vector table에 저장된 주소에 존재하는 코드이다.
    • 또한, Interrupt architecture는 interrupt된 명령의 주소를 저장하고 있어야만 한다.
  • Software interrupt의 경우
    • Trap(또는 exception)은 에러나 사용자의 요청에 의해-사용자가 기능 구현하기 위해(e.g. system call)-발생되는 software-generated interrupt이다.

https://www.sciencedirect.com/topics/engineering/interrupt-handling

 

 

Interrupt의 종류


 

  • 프로그램(Trap 또는 Software interrupt)

    • arithmetic overflow
    • 0으로 나누기
    • illegal instruction 실행
    • 사용자의 메모리 공간 이외의 reference
    • 사용자의 요청(e.g. system call 또는 monitor call)
  • Hardware

    • Timer
    • I/O
    • Hardware failure

 

 

스토리지 구조(Storage Structure)


 

  • 메인 메모리(Main memory)

    • CPU가 직접 접근할 수 있는 유일한 거대 스토리지
    • 프로그램이 동작할 때 사용되며 일시적인 결과를 저장하는 레지스터보다 크기가 크다.
    • 랜덤 액세스
    • 대부분 volatile
  • Secondary storage

    • 거대한 non-volatile 스토리지 용량을 제공하며 메인 메모리의 확장
    • 하드디스크
      • rigid metal or glass platters covered with magnetic recording material
      • 표면은 논리적으로 트랙(tracks)으로 나뉘고, 트랙은 섹터(sectors)로 나뉜다.
      • disk controller는 device와 컴퓨터 사이의 논리적 상호작용을 결정한다.
    • SSD(Solid-state disk)
      • 하드디스크보다 빠르다.
      • 다양한 기술이 사용되며 점점 인기를 얻는 추세
Comments