ecsimsw

Interrupt 본문

Interrupt

JinHwan Kim 2019. 9. 23. 15:41

Internal Interrupt

 

- program check : 오버플로우, 언더플로우나 Division by zero가 일어날 때 발생.


- Page Fault : 무효한 페이지를 참조할 때 발생.


- Trace : 디버그 시 프로그램을 한 명령씩 실행.


- Superviser Call : 시스템 콜을 실행.

 

 

External Interrupt

 

- power fail : 전원에 이상이 생길 경우 발생.


- hardware check : 주변 기기의 장애가 발생했을 경우 OS에게 알리기 위한 인터럽트 발생.


- Timer : 일정 시간마다 하드웨어에서 발생.


- I/O : 입출력 장치에서 동작을 처리하는 등 상태 변화가 일어났을 때 발생.


- console : 사용자가 키보드와 같은 입출력 장치를 조작할 때 발생.

 

 

Interrupt based system

 

Process that click and call program to main memory

   1. Mouse : 인터럽트 발생 

   

   2. Cpu : 하던 일을 중단하고 Main memory의 OS로 이동

 

      OS : os안의 mouse interrupt severvice routine 실행. 

 

   3. 프로그램 실행 시, 하드디스크의 해당 프로그램 위치를 읽음

 

   (OS안에는 하드디스크를 읽는 코드 역시 개별적으로 존재)

 

   4. 해당 프로그램을 메모리에 올려 process화.

 

 

Dual mode

 

   - 다중 사용자 환경에서는 고의/ 실수에 의한 명령이 다른 사용자에게 영향을 미치지 않도록 System mode(Kernel mode)와 User mode를 만들어 OS의 사용 권한을 분리한다.

 

   - regester에 flag bit (mode bit)을 1bit 추가하는 것으로 사용자와 관리자를 구분한다.

 

   - 사용자 모드에서 프로그램이 실행되다가 hardware을 사용해야 한다면 관리자 모드로 OS를 사용해 hardware 작업을 처리하고, 작업이 끝나면 다시 사용자 모드로 돌아가는 식으로, 운영체제 사용 권한에 따라 상태 모드 변경을 반복한다.

 

   ( 권한이 없는 사용자가 접근할 경우, 명령을 무시할 뿐 아니라 해당 인터럽트를 발생하여 무한히 대기 중일 사용자에게 이 사실을 알려줘야한다.)

 

 

Protection

 

   다중 사용자가 hardware / memory / cpu 를 공유하고 있는 상황에서 이를 OS가 어떻게 분배하여 혼합을 막고 데이터를 보호하는지 알아보자.

 

   1. I/O device : 다른 사용자가 사용하고 있을지 모를 I/O device를 제약없이 사용하면 혼잡이 생길 것이다.

 

       - user mode에서는 hard ware를 직접 처리하지 못하도록 한다. OS에게 software interrupt를 부탁하여 처리하고, OS는 해당 명령의 정당성과 현재 사용중인 I/O device 상황을 확인하여 작업을 수행한다.

 

Protection

    2. Memory : 메인 메모리를 User가 직접 할당할 경우 OS나 다른 USER의 영역을 침범할 수 있다.

 

        - Cpu와 main memory 사이의 Bus에 MMU를 둬서 사용자의 주소 범위에 벗어나는 영역 Access 시 이를 무시하고 interrupt 발생시킨다. (MMU : Memory management unit)

 

 

     3. CPU : while(true) 와 같이 고의/ 실수로 한 사용자가 cpu를 독점할 수 있는 현상이 발생할 수 있다.

 

         - TIMER를 사용하여 cpu가 한 user에만 묶여있는 것을 방지한다. 

 

 

System call

 

   - 일반 프로세스가 OS에 서비스를 요청하는 것

 

   - process / memory / File / Device / information / communication

'Computer Science > Operating system' 카테고리의 다른 글

Cpu scheduling  (0) 2019.09.24
Process Management / job queue  (0) 2019.09.23
Introduction  (0) 2019.09.23
Operating System Concepts - Abraham Silberschatz  (0) 2019.09.23
Segmentation  (0) 2019.02.20
Comments