인터럽트(비동기적)
프로그램을 실행 중 입출력 하드웨어 등의 장치같은 곳에서 예외상황이 발생하여 처리가 필요할 경우에
CPU에게 알려 예외 처리를 할 수 있도록 하는 기법이다.
프로그램 외부 상황에 따라 발생 시점이 일정하지 않다.
종류
SVC(SuperVisor Call) : 새 프로그램 실행시 발생 - 오퍼레이터(사용자)의 대화시도
입출력 인터럽트 : HW적 인터럽트로 입출력과 관련된 중단인터럽트
외부 인터럽트 : CPU를 사용하기 위한 시간 간격(timeslice) 시간할당량이 있고 OS가 관리하는
인터럽트 시계에 의해서 프로세스가 종료됨
재시작 인터럽트 : Reset 버튼이나 Kill을 했을 때 발생
프로그램 검사 인터럽트 : 실행중인 프로그램에서 오버플로우나 언더플로우 , 분모가 0인 나눗셈을
처리하는 경우 발생
기계검사 인터럽트 : 컴퓨터 시스템 고장으로 발생
발생
인터럽트 주소 저장하는 곳은 CPU 레지스터에 PC(Program Counter)다.
인터럽트 처리는 스택메모리에서 하고 , 스택에 있는 인터럽트 자료를 PC(계수기)에 옮기고 실행한다.
발생 조건은 연산오류나 메모리 보호 구역 접근 , 입출력 완료 됬을 때이다.
트랩(동기적)
항상 프로그램의 고정된 영역에서 발생한다.
예시로 프로그램 실행 시 "분모 0이 되면 이 루틴을 수행한다" 와 같은 특별한 조건을 부여하는 것이다.
유형
에러트랩 : 복원루틴 제공
디버깅트랩 : 현 프로그램 중지 후 상태 분석
'OS-서버' 카테고리의 다른 글
VMware 가상머신을 다른 컴퓨터로 옮기기 (0) | 2020.04.30 |
---|---|
병행성 제어 , 스케줄링 마인드맵 (0) | 2019.06.11 |
프로세스란 (0) | 2019.06.10 |
윈도우와 리눅스 파일 시스템 종류 (0) | 2019.06.04 |
CPU 가상코어(스레드) (0) | 2019.04.17 |