Operating System : 운영체제

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

(1) Interrupt Operation - Interrupt H/W (i)

@ 이 때까지는 우선 개념적으로 공부를 했습니다.

    // 그렇다면 이 Interrupt를 실제로는 어떻게 구현하는지 알아보도록 하겠습니다.

 

@ 먼저 Interrupt 구현을 공부하기 전에 Interrupt 개념을 조금 더 구체화 시켜서,

    // Interrupt Mechanism의 각 세부 Operation을 먼저 보도록 하겠습니다.

 

@ H/W Interrupt를 먼저 살펴보겠습니다.

    // micro process에 Interrupt signal을 받아들일 수 있는 핀(pin)이 있어야 합니다.

        > 그리고 그 핀에는 Interrupt Source(Interrupt를 날리는)가 물려 있어야 합니다.

            .. 이 Interrupt Source의 경우는 I/O Controller나 DMA Controller가 될 수 있을 것입니다.

    // 여기에서 interrupt를 받게 되면, CPU는 interrupt를 받아들인 것을 인지하게 됩니다.

        > 이 상황에서 CPU는 현재 수행중이던 프로그램을 중단합니다.

            .. (아래에서 자세히)

 

@ 프로그램을 수행중일 때, Interrupt 처리 과정은 어떻게 되는 것일까요?

    // 현 Instruction까지는 완료합니다.

    // 마이크로 프로세서인 PC(Program Counter) 값을 안전한 곳에 저장합니다. (대피)

        > 아무 조치 없이 종료를 시키면 Interrupt 수행 후에 돌아왔을 때, 문제가 생깁니다.

    // 현재 수행 중인 프로그램을 중단합니다.

    // Interrupt Source 중에 어떤 것이 Interrupt를 주었는지 확인합니다.

        > Interrupt Request Number(IRQ 번호)를 통해 Interrupt Source를 확인합니다.

            .. 이걸 확인하고 나면 어떤 함수를 불러야 하는지 알 수 있게 됩니다.

        > Interrupt Vector Table(IVT)을 검색해서 Interrupt Service Routine(ISR)의 주소를 확인하고 수행합니다.

            .. IRQ 번호를 index로 사용하여, 

            .. Handler(Interrupt Service Routine)의 주소를 얻어오고, 

            .. 거기로 Jump를 하게 됩니다.

 

ISR이 끝나고 나면 어떻게 해야할까요?

    // 저장된 Interrupt 된 프로그램의 시작 주소로 다시 복귀하게 됩니다.

 

@ 위에서 살펴본 일들이 Interrupt의 기본적인 매커니즘이 되겠습니다.

댓글

댓글 본문
버전 관리
박천명
현재 버전
선택 버전
graphittie 자세히 보기