인터럽트

CS지식

사용자 모드(User mode)와 커널 모드(kernel mode)란?

CPU는 사용자 모드와 커널 모드, 둘 중 하나로 설정된다. 응용프로그램 코드는 사용자 모드에서 실행되며, 커널 코드는 커널 모드에서 실행된다. 이 말은 운영체제가 응용프로그램을 실행시킬 때는 사용자 모드로 설정되고, 응용프로그램이 커널 함수를 실행시키기 위해 시스템 호출을 하면 그 때 커널모드로 전환되며 커널 코드가 실행된다. 사용자 모드인지 커널 모드인지 구별하는 방법은 CPU에 내장되어 있는 모드 레지스터를 통해서 알 수 있다. 사용자 모드 사용자 모드일 때, 응용프로그램은 메모리 안에 존재하는 사용자 영역에 액세스 할 수 있으며 커널 영역에 접근 시 시스템 예외가 발생하고 응용프로그램을 종료시킨다. 커널 모드 커널 모드일 때, CPU는 모든 메모리 공간을 액세스할 수 있으며 특권 명령을 실행할 수..

CS지식

하드웨어 인터럽트란?

(하드웨어)인터럽트란? 하드웨어 장치들이 CPU에게 하드웨어 신호(인터럽트 신호)를 물리적으로 발생시켜 입출력 완료나 타이머 완료 등을 CPU에게 알려주는 방법입니다. 또 인터럽트는 비동기적 사건을 CPU에게 알려주는 행위입니다. CPU에서 인터럽트 신호를 받게되면 CPU는 하던 일을 멈추고 인터럽트 요청을 처리하는 코드를 실행시킵니다. 이 코드를 인터럽트 서비스 루틴이라고 부르며, 커널 코드나 디바이스 드라이버내에 작성됩니다. 예를 들어 하드웨어 장치(키보드)가 입력을 하면, CPU에 인터럽트 신호가 발생하고 CPU는 하던을 멈추고 인터럽트 신호를 처리하기 위해 인터럽트 서비스 루틴을 실행합니다. 인터럽트 서비스 루틴 코드가 키 값을 읽어 커널 영역에 있는 키 입력 버퍼나 키 입력을 기다리는 응용프로그..

simun
'인터럽트' 태그의 글 목록