티스토리 뷰
인터럽트
인터럽트는 CPU가 프로세스를 실행하고 있을 때 이벤트가 발생하여 처리가 필요한 경우 CPU에게 알리는 것을
의미한다.
프로세스 교환을 유발하는 인터럽트와 트랩
CPU에서 실행중인 프로세스가 교체되는 이유는 다음과 같다.
- Clock(Timer) 인터럽트 : CPU에서 프로세스당 최대 허용 실행 시간이 정해져있는데 해당 시간이 지나가게 되면 프로세스가 교체된다. 실행중이던 프로세스는 다시 준비 큐에 들어가게 된다.
- I/O 인터럽트 : 실행중인 프로세스가 입출력을 요청하면 프로세스는 블록상태가 된다. 입출력 요청이 끝나면 블록상태에 있던 프로세스는 다시 준비 큐로 들어가 실행될 준비를 한다.
- 메모리 폴트 (페이지 부재) : 실행중인 프로세스는 주기억장치에 로드되지 않은 주소를 요청할 경우 메모리 폴트가 발생한다. 메모리 폴트가 발생하면 실행중인 프로세스는 블록상태로 바뀌고 운영체제에 의해 하드디스크에 저장된 페이지를 찾아 메모리로 복원하는 작업을 한다.
- 트랩 : 소프트웨어 실행 중 소프트웨어 내부에서 발생하는 사건을 의미한다. 프로그램 내부에서 시스템 콜을 사용하여 OS 자원을 요청하거나 0으로 나누거나 예외가 발생한 경우 복구 불가능한 상황이 되어 프로세스가 종료될 수 있다.
- 슈퍼바이저 호출 : FILE OPEN과 같은 명령을 사용자 프로그램에서 작성한 경우를 의미한다.
'TIL' 카테고리의 다른 글
데이터베이스 트랜잭션 (0) | 2022.04.30 |
---|---|
[OS] 쓰레드와 멀티 쓰레드 (0) | 2022.02.04 |
[OS] 프로세스 상태 (0) | 2022.02.03 |
[OS] 운영체제와 프로세스 (0) | 2022.02.02 |
[CI/CD] Travis CI 에서 S3 그리고 Codedeploy까지의 무중단 배포 동작 과정 (0) | 2021.12.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- TCP
- EC2
- 파일업로드설정
- nginx
- 람다식
- Java
- N+1
- Travis CI
- OS
- ddl-auto
- spring
- db
- 인덱스
- CodeDeploy
- 운영체제
- AWS
- ORA-27125
- Til
- JPA
- 기술면접
- 트랜잭션격리성
- graphql
- SpringGraphQL
- level0
- 네이버클라우드
- 트랜잭션
- 프로그래머스
- SpringSecurity
- Oracle
- ci/cd
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함