내 잡다한 노트
챕터4. 인터럽트 처리 본문
인터럽트는 여러가지 이유로 발생한다. 프로세스가 입출력때문에 대기상태로 가서 완료가 되면 인터럽트 신호를
보낼 수도 있고 컴퓨터에 오류가 발생해 오류 처리하라고 인터럽트 신호를 보낼 수도 있다.
동기적 인터럽트
프로세스가 실행 중인 명령어로 인해 발생한다. 사용자 인터럽트라고도 한다.
사용자가 실행하다가 발생하는 인터럽트이다.
비동기적 인터럽트
하드웨어의 오류로 발생하는 인터럽트를 뜻한다.
인터럽트는 각각의 번호가 있고 번호마다 인터럽트가 발생 시 핸들링하는 함수들이 존재한다.
인터럽트를 처리할 땐 인터럽트 벡터라는 자료구조가 존재해 벡터에서 한꺼번에 인터럽트를 묶어서 처리한다.
이 벡터에는 여러개의 인터럽트가 번호와 핸들링되는 함수를 가진채로 존재하고 해당 번호의 인터럽트가 발생하면
1을 증가시키는 방식으로 인터럽트가 발생했다는 것을 나타낸다.
여러개의 인터럽트가 동시에 발생했다면 우선순위를 고려하여 중요한 인터럽트부터 처리하도록 순서를 결정한다.
이중모드
프로세스는 크게 커널 프로세스와 사용자 프로세스로 나뉜다.
운영체제와 관련된 커널프로세스가 실행되는 상태를 커널 모드, 사용자 프로세스가 실행되는 상태를 사용자모드라고 한다.
사용자 프로세스가 커널의 기능을 사용하려면 시스템 호출을 이용해 커널 프로세스에 작업을 요청해야한다.
사용자 프로세스는 요청한 후 대기 상태로 전환되고 커널 프로세스는 이를 처리한다. 이렇게 운영체제가
두 모드를 전환하며 일 처리를 하는 것을 이중모드라고 한다.
이건 자원을 보호하기 위해 사용하는 기법이다.
오로지 커널을 통해서만 자원에 접근할 수 있어야 문제가 생기지 않는다.
'운영체제' 카테고리의 다른 글
챕터5. 공유 자원과 임계구역 (0) | 2022.08.29 |
---|---|
챕터5. 프로세스 동기화. 프로세스 간 통신 (0) | 2022.08.29 |
챕터4. 다중큐 (0) | 2022.07.26 |
챕터4. 스케줄링 시 고려 사항 (0) | 2022.07.26 |
챕터4. 스케줄링의 개요 (0) | 2022.07.26 |