[운영체제]Interrupt

정태규·2023년 4월 12일
0

운영체제

목록 보기
1/20

OS는 시스템 resource를 virtualize 한다.

일반적인 OS의 abstraction

  • processors -> processes,threads
  • Memory -> virtual memory address spaces
  • storage -> volumes,directories,files
  • I/O devices -> files
  • networks ->files(sockets,pipes,...)

어떻게 컴퓨터 시스템이 일할까?

컴퓨터 구조

기본적으로 컴퓨터 시스템의 구조는 폰 노이만 구조를 따른다.
폰 노이만 구조를 통해 데이터 뿐 아니라 프로그램도 메모리에 저장 할 수 있게 되었다.

CPU

  • processor라고 불린다.
  • 대부분 시스템은 일반적인 processor를 사용한다.
    일반적인 문제를 풀기에 유연성을 가진다.
  • 특별한 목적의 processors도 있을수 있다.
  • hardware accelators라고 불린다.
  • device 업무에 특화된 processor 장치
    GPU(Graphic Processing Unit), 머신러닝에서 쓰는 TPU(Tensor Processing Unit)
  • 한 시스템에서 여러 프로세서를 사용할 수도 있다.
    multiprocessor,multicore

Computer System Organization

  • device controller들은 bus(물리적으로 전선이라고 봐도됨)로 연결되어 있다.
    이 bus들은 위 그림처럼 공유하고 있는 메모리를 접근할수 있도록 해준다.
  • cpu가 controller에게 명령하면(신호를 주면) 신호에 따라 device들이 메모리에서 정보를 읽어오던가 쓰던가 한다.
  • bus를 장치들이 동시에 접근할 수는 없고, 한 장치가 bus를 사용하고 놓으면 다른 장치가 bus를 사용하는 식이다.
  • controller에는 buffer가 있다. 예를들면, 키보드를 입력했을때, 한글자 한글자 memory로 전송하는게 아니라, buffer에 글자들을 저장했다가 한번에 memory에 저장하는 식이다.
  • cpu는 메모리만 읽을 수 있다.

computer System Operation

  • Device controller들은 interrupt가 발생하면 CPU에게 알려준다.
  • cpu에 장치하나당 하나의 interrupt 선이 있다 가정
  • CPU는 interrupt를 감지하고 그에따라 처리한다.

Interrupt 기능

  • CPU는 interrupt를 감지했을때, 기능을 실행하기 위해서 구현되어 있다.

    interrupt service routine,interrupt handler routine,interrupt handler

  • Interrupt vector나 Interrupt Descriptor Table(IDT)는 service routines의 주소를 포함한다.
  • interrupt가 발생하면, CPU는 일치하는 interrupt handler를 찾기위해 interrupt number/ID로 IDT를 찾는다.
  • CPU는 현재하고 있는 일을 저장하고 interrupt 신호가 무엇인지 찾아보고 가서 처리하고 나와서 하던일을 마저한다.
  • interrupt handler: 실제로 어떻게 처리해야할지 소프트웨어로 만들어진것
  • IDT내에 있는 주소들은 IDT handler를 가리킨다.

  • 위 그림을 보면 CPU가 동작하다가 I/O interrupt가 발생했을때 cpu가 하던일을 잠깐 저장하고 I/O device controller에 신호를 줘서 interrupt를 처리하는 것을 볼 수 있다.
  • system은 현재 cpu 상태를 보존한다.
  • interrupt가 발생하면 cpu는 자신이 처리하던 명령어의 주소를 cpu 내부에 레지스터나 스택에 저장한다.
  • interrupt handler가 끝나면 최근 실행하고 있었던 명령어의 주소로 돌아간다.
  • interrupt선으로는 data를 이동시키지는 못하고 신호만 줄 수 있다.
    신호를 통해 IDT에 있는 interrupt handler 주소를 찾아서 해당 interrupt handler를 수행한다. 이때, cpu가 연산하게 한다.
    만약, Interrupt 선에 동시에 신호가 오면 우선순위에 따라 처리한다.
  • masking : interrupt선에 신호가 오지 못하도록 차단하는것

I/O structure

  • Device driver들은 device controller들로 의사소통할 수 있게 OS를 도와준다.
  • Device driver들은 device controller(DCs)를 추상화시킨다.
  • I/O 작업을 시작 하기위해 device driver는 DC내에 레지스터를 설정한다.
  • DC는 레지스터 설정을 기본으로 동작을 수행한다.
  • DC는 data를 device에서 해당 device의 buffer로 이동시킨다.
  • DC는 I/O transfer가 끝나면 device driver에게 알려준다.

storage structure

  • Main memory

    • CPU가 바로 접근할 수있는 매체만 저장한다.
    • Random access, byte 단위로 접근이 가능
    • 휘발성이다, 컴퓨터 끄면 메모리 날라감
  • Secondary storage

    • 비휘발성 저장고이다.
    • block addresable(block 주소 단위)

0개의 댓글