티스토리 뷰

인터럽트

  인터럽트는 CPU가 프로세스를 실행하고 있을 때 이벤트가 발생하여 처리가 필요한 경우 CPU에게 알리는 것을

  의미한다. 

프로세스 교환을 유발하는 인터럽트와 트랩

  CPU에서 실행중인 프로세스가 교체되는 이유는 다음과 같다.

  1. Clock(Timer) 인터럽트 : CPU에서 프로세스당 최대 허용 실행 시간이 정해져있는데 해당 시간이 지나가게 되면 프로세스가 교체된다. 실행중이던 프로세스는 다시 준비 큐에 들어가게 된다.
  2. I/O 인터럽트 : 실행중인 프로세스가 입출력을 요청하면 프로세스는 블록상태가 된다. 입출력 요청이 끝나면 블록상태에 있던 프로세스는 다시 준비 큐로 들어가 실행될 준비를 한다.
  3. 메모리 폴트 (페이지 부재) : 실행중인 프로세스는 주기억장치에 로드되지 않은 주소를 요청할 경우 메모리 폴트가 발생한다. 메모리 폴트가 발생하면 실행중인 프로세스는 블록상태로 바뀌고 운영체제에 의해 하드디스크에 저장된 페이지를 찾아 메모리로 복원하는 작업을 한다. 
  4. 트랩 : 소프트웨어 실행 중 소프트웨어 내부에서 발생하는 사건을 의미한다. 프로그램 내부에서 시스템 콜을 사용하여 OS 자원을 요청하거나 0으로 나누거나 예외가 발생한 경우 복구 불가능한 상황이 되어 프로세스가 종료될 수 있다. 
  5. 슈퍼바이저 호출 : FILE OPEN과 같은 명령을 사용자 프로그램에서 작성한 경우를 의미한다. 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함