인터럽트,interrupt

Difference between r1.7 and the current

@@ -1,39 +1,174 @@
MKL
[[우선순위,priority]]
[[우선순위큐,priority_queue]]
RTOS 에서는 '''인터럽트''' 처리 정책이 매우 중요
mkl? (del ok)
[[장치,device]]
[[버스,bus]]
breakpoint
hardware_signal - [[신호,signal]] from [[하드웨어,hardware]] ...? Ggl:"hardware signal"

topics
Topics

인터럽트신호 : [[신호,signal]]
interrupt_signal ? WtEn:interrupt_signal WpSp:interrupt_signal WpEn:interrupt_signal Bing:interrupt_signal Ggl:interrupt_signal Ndict:인터럽트+신호
신호 외에 [[이벤트,event]]와도 유사성이 있어서 (인터럽트는 항상 event인지? chk) event_handling , event_listener 등 event-driven_programming 쪽 이론/방법론과 겹치는 게 있다
queuing_theory 와도?

인터럽트 발생
인터럽트 처리
interrupt_service_routine ISR
인터럽트처리기?
=,interrupt_service_routine =,ISR .
interrupt service routine
''번역들을 어떻게 하나? Ndict:"interrupt service routine"''
https://wiki.osdev.org/Interrupt_Service_Routines
 
인터럽트처리기? interrupt_handler ? => ISR 과 완전 동의어인지 chk
=,interrupt_handler .
{
https://foldoc.org/interrupt+handler
interrupt handler
https://en.wikipedia.org/wiki/Interrupt_handler
Ndict:"interrupt handler"
Ggl:"interrupt handler"
}

인터럽트제어 / 인터럽트제어기 ?
interrupt_control ?
interrupt_controller ?
programmable_interrupt_controller PIC
=,programmable_interrupt_controller =,PIC .
programmable interrupt controller (PIC)
(프로그래머블|프로그래밍 가능한|프로그램 가능한) 인터럽트 (제어기|컨트롤러)
https://ko.wikipedia.org/wiki/프로그래머블_인터럽트_컨트롤러
https://en.wikipedia.org/wiki/Programmable_interrupt_controller
Ndict:"programmable interrupt controller"
Ggl:"programmable interrupt controller"
 
Sub:
 
Intel_8259
Intel 8259
https://en.wikipedia.org/wiki/Intel_8259
 
 
Advanced Programmable Interrupt Controller (APIC)
 
 
https://en.wikipedia.org/wiki/OpenPIC_and_MPIC
 
 
interrpt_flag
https://en.wikipedia.org/wiki/Interrupt_flag
 
 
interrupt_priority_level IPL
[[interrupt_priority_level]] [[IPL]]
=,interrupt_priority_level =,IPL .
인터럽트에는 [[우선순위,priority]]가 있어서 순위가 낮은 것은 무시되거나 연기.
https://foldoc.org/interrupt+priority+level
https://en.wikipedia.org/wiki/Interrupt_priority_level
Ggl:interrupt+priority+level
Bing:interrupt+priority+level
interrupt+priority+level
 
spl (Unix) - 이름은 PDP-11 assembly language instruction에서 유래. 뜻은 set priority level. "is the name for a collection of Unix kernel routines or macros used to change the [[interrupt_priority_level]]." (we) ''car cdr 이 레지스터 이름에서 유래한 것과 비슷한 느낌의? (더 궁금하면 WpEn:CAR_and_CDR)''
[[WpEn:Spl_(Unix)]]
https://en.wikipedia.org/wiki/Spl_(Unix)
https://en.wikipedia.org/wiki/Spl_%28Unix%29

인터럽트요청 인터럽트요구 ?
[[interrupt_request]] = IRQ
{
https://foldoc.org/interrupt+request
https://ko.wikipedia.org/wiki/인터럽트_요청
 
Ndict:"인터럽트 요청" Ggl:"인터럽트 요청" Bing:"인터럽트 요청"
Ndict:interrupt+request Ggl:interrupt+request
}

인터럽트 분류
[[IRQL]] =,IRQL . IRQL (Windows specific?)
{
[[WpEn:IRQL_(Windows)]]
https://en.wikipedia.org/wiki/IRQL_(Windows)
https://en.wikipedia.org/wiki/IRQL_%28Windows%29
Ndict:IRQL
Bing:IRQL
Ggl:IRQL
}
 
end_of_interrupt EOI
end of interrupt EOI
=,end_of_interrupt =,EOI .
{
https://en.wikipedia.org/wiki/End_of_interrupt
Ggl:"end of interrupt EOI"
}
 
inter-processor_interrupt (IPI)
=,inter-processor_interrupt =,IPI .
{
inter-processor interrupt (IPI)
 
Ggl:"inter-processor interrupt"
}
 
[[interrupt_vector]] =,interrupt_vector =,interrupt_vector . interrupt_vector
interrupt vector
[[interrupt_vector_table]] (IVT) =,interrupt_vector_table =,interrupt_vector_table . interrupt_vector_table =,IVT .
interrupt vector table = IVT
Interrupt Vector Table (IVT) ... (copy from osdev) 대문자화할 필요 없는 듯? (we)
Cmp: [[interrupt_descriptor_table]] (IDT)
https://ko.wikipedia.org/wiki/인터럽트_벡터_테이블
https://en.wikipedia.org/wiki/Interrupt_vector_table
https://wiki.osdev.org/Interrupt_Vector_Table (x86 real_mode 얘기)
Ndict:"인터럽트 벡터 테이블"
Ggl:"인터럽트 벡터 테이블"
Ndict:"interrupt vector table"
Bing:"interrupt vector table"
Ggl:"interrupt vector table"
Up: interrupt_vector [[테이블,table]]
 
[[interrupt_descriptor_table]] = [[IDT]]
=,interrupt_descriptor_table =,interrupt_descriptor_table . interrupt_descriptor_table =,IDT .
{
interrupt descriptor table
이건 x86 specific term? - Yes, x86에서 쓰는 용어는 real_mode 에서 IVT, protected_mode and long_mode 에서는 IDT. (osdev wiki) ''구조가 완전히 바뀌어서 이름도 바꾼 듯?''
 
REL
(via osdev)
IDTR (IDT register) IDTR IDT_register
LIDT (instruction) 은
IDT_Descriptor 구조체에 대한 포인터를 인자로 받는다.
https://ko.wikipedia.org/wiki/인터럽트_서술자_테이블
https://en.wikipedia.org/wiki/Interrupt_descriptor_table
https://wiki.osdev.org/Interrupt_Descriptor_Table
Cmp: [[interrupt_vector_table]] (IVT)
Up: [[descriptor_table]] { Sub: [[GDT,global_descriptor_table]] { https://en.wikipedia.org/wiki/Global_Descriptor_Table https://wiki.osdev.org/Global_Descriptor_Table } [[LDT,local_descriptor_table]] { https://wiki.osdev.org/Local_Descriptor_Table ''WpEn:Local_Descriptor_Table is redirect to a section of GDT: WpEn:Global_Descriptor_Table#Local_Descriptor_Table'' } [[IDT,interrupt_descriptor_table]] ... }
...
Naver:interrupt+descriptor+table
Bing:interrupt+descriptor+table
Ggl:interrupt+descriptor+table
interrupt+descriptor+table
}
 
= 인터럽트 분류 =
* 내부 인터럽트
* division_by_zero
* overflow
* illegal instruction
* 외부 인터럽트
* I/O 장치 etc..
* maskable interrupt / non-maskable interrupt (NMI) https://foldoc.org/NMI .... Google:maskable+interrupt Naver:maskable+interrupt
[[마스크,mask]]
* maskable interrupt / non-maskable interrupt (NMI) - [[마스크,mask]] esp interrupt_mask interrupt_masking { curr see https://en.wikipedia.org/wiki/Interrupt#Masking }을 할 수 있는지 여부인 WtEn:maskability 에 따라 두가지로 나뉨
* maskable_interrupt : Ndict:"maskable interrupt" Ggl:"maskable interrupt" Bing:"maskable interrupt"
* non-maskable_interrupt : https://foldoc.org/NMI 
.... Google:maskable+interrupt Naver:maskable+interrupt 
* [[하드웨어,hardware]] / [[소프트웨어,software]]
* software_interrupt ... https://foldoc.org/software+interrupt ''https://en.wikipedia.org/wiki/Software_interrupt redir to: WpEn:Interrupt#Software_interrupts'' .... Google:software+interrupt+hardware+interrupt Naver:software+interrupt+hardware+interrupt
* hardware_interrupt ... [[하드웨어인터럽트,hardware_interrupt]] =하드웨어인터럽트,hardware_interrupt =,hardware_interrupt . 하드웨어인터럽트 hardware_interrupt { 하드웨어 인터럽트 hardware interrupt ''https://en.wikipedia.org/wiki/Hardware_interrupt redir to WpEn:Interrupt#Hardware_interrupts'' ... Ndict:"하드웨어 인터럽트" Bing:"하드웨어 인터럽트" Ggl:"하드웨어 인터럽트" Ggl:"hardware interrupt" }
*

* software_interrupt ... https://foldoc.org/software+interrupt .... Google:software+interrupt+hardware+interrupt Naver:software+interrupt+hardware+interrupt
* hardware_interrupt

= 인터럽트와 폴링 =
[[폴링,polling]]
@@ -41,12 +176,52 @@
* 폴링: 일정 주기로 장치들을 점검 / 주기적 확인

----
비슷한 말: [[트랩,trap]]
비슷한 말: [[트랩,trap]] =,trap .
{
https://foldoc.org/trap
[[WpKo:트랩_(컴퓨팅)]]
https://ko.wikipedia.org/wiki/트랩_%28컴퓨팅%29
 
(we)"'''interrupt''' (sometimes referred to as a '''trap''')" 즉 인터럽트를 가끔 트랩이라 부른다는 것.
 
[[Date(2023-08-16T21:05:49)]] Ggl:"인터럽트 트랩" 해보니 interrupt/[[예외,exception]]/[[트랩,trap]] 셋을 비교해놓은 게 많이 보임
}
----
//old, merge
{
[[Turbo_C]]에는 함수 선언 시 interrupt를 지정할 수 있음.
getvect(), setvect() 등을 씀.
 
||번호 ||관련 ||
||9 ||키보드? [[키보드,keyboard]] ||
||10h ||비디오 ||
||16h ||키보드? ||
||21h ||DOS syscall, DOS interrupt ||
||33h ||[[마우스,mouse]] ||
}
 
DOS_interrupt - [[도스,DOS]]
keyboard_interrupt - [[키보드,keyboard]]
mouse_interrupt - [[마우스,mouse]]
...같은 page 만들 수 있음
[[timer_interrupt]] - [[타이머,timer]] =,timer . { WtEn:timer ? REL [[시간,time]] [[이벤트,event]] / Sub: [[APIC_timer]] { https://wiki.osdev.org/APIC_Timer Ggl:"APIC timer" } // APIC timer \ [[PIT]] { '''Programmable Interval Timer (PIT)''' https://wiki.osdev.org/PIT Ggl:"Programmable Interval Timer" } Ndict:타이머 Ggl:"타이머 timer" } // timer
{
'''timer interrupt'''
WtEn:timer_interrupt ? x 2023-11-06
WpSp:Timer_interrupt ?
WpEn:Timer_interrupt ??
}

----
Interw:
https://foldoc.org/interrupt
https://simple.wikipedia.org/wiki/Interrupt
https://ko.wikipedia.org/wiki/인터럽트
https://en.wikipedia.org/wiki/Interrupt
 
https://wiki.osdev.org/Interrupts
 
https://wiki.osdev.org/Category:Interrupts

Up: [[컴퓨터구조,computer_architecture]]


MKL
우선순위,priority
우선순위큐,priority_queue
RTOS 에서는 인터럽트 처리 정책이 매우 중요
mkl? (del ok)
장치,device
버스,bus
breakpoint
hardware_signal - 신호,signal from 하드웨어,hardware ...? Ggl:hardware signal

Topics

인터럽트신호 : 신호,signal
interrupt_signal ? WtEn:interrupt_signal WpSp:interrupt_signal WpEn:interrupt_signal Bing:interrupt_signal Ggl:interrupt_signal Ndict:인터럽트 신호
신호 외에 이벤트,event와도 유사성이 있어서 (인터럽트는 항상 event인지? chk) event_handling , event_listener 등 event-driven_programming 쪽 이론/방법론과 겹치는 게 있다
queuing_theory 와도?

인터럽트 발생

인터럽트 처리
interrupt_service_routine ISR
=,interrupt_service_routine =,ISR .
interrupt service routine
번역들을 어떻게 하나? Ndict:interrupt service routine
https://wiki.osdev.org/Interrupt_Service_Routines

인터럽트처리기? interrupt_handler ? => ISR 과 완전 동의어인지 chk
=,interrupt_handler .
{
https://foldoc.org/interrupt handler
interrupt handler
https://en.wikipedia.org/wiki/Interrupt_handler
Ndict:interrupt handler
Ggl:interrupt handler
}

인터럽트제어 / 인터럽트제어기 ?
interrupt_control ?
interrupt_controller ?
programmable_interrupt_controller PIC
=,programmable_interrupt_controller =,PIC .
programmable interrupt controller (PIC)
interrpt_flag
https://en.wikipedia.org/wiki/Interrupt_flag


interrupt_priority_level IPL
interrupt_priority_level IPL
=,interrupt_priority_level =,IPL .
인터럽트에는 우선순위,priority가 있어서 순위가 낮은 것은 무시되거나 연기.
https://foldoc.org/interrupt priority level
https://en.wikipedia.org/wiki/Interrupt_priority_level
Ggl:interrupt priority level
Bing:interrupt priority level
interrupt+priority+level

spl (Unix) - 이름은 PDP-11 assembly language instruction에서 유래. 뜻은 set priority level. "is the name for a collection of Unix kernel routines or macros used to change the interrupt_priority_level." (we) car cdr 이 레지스터 이름에서 유래한 것과 비슷한 느낌의? (더 궁금하면 WpEn:CAR_and_CDR)
WpEn:Spl_(Unix)
https://en.wikipedia.org/wiki/Spl_(Unix)
https://en.wikipedia.org/wiki/Spl_(Unix)




end_of_interrupt EOI
end of interrupt EOI
=,end_of_interrupt =,EOI .
{
https://en.wikipedia.org/wiki/End_of_interrupt
Ggl:end of interrupt EOI
}

inter-processor_interrupt (IPI)
=,inter-processor_interrupt =,IPI .
{
inter-processor interrupt (IPI)


interrupt_vector =,interrupt_vector =,interrupt_vector . interrupt_vector
interrupt vector
interrupt_vector_table (IVT) =,interrupt_vector_table =,interrupt_vector_table . interrupt_vector_table =,IVT .
interrupt_descriptor_table = IDT
=,interrupt_descriptor_table =,interrupt_descriptor_table . interrupt_descriptor_table =,IDT .
{
interrupt descriptor table
이건 x86 specific term? - Yes, x86에서 쓰는 용어는 real_mode 에서 IVT, protected_mode and long_mode 에서는 IDT. (osdev wiki) 구조가 완전히 바뀌어서 이름도 바꾼 듯?


인터럽트 분류

인터럽트와 폴링

폴링,polling
  • 인터럽트: 사건이 발생했을 때 처리
  • 폴링: 일정 주기로 장치들을 점검 / 주기적 확인



(we)"interrupt (sometimes referred to as a trap)" 즉 인터럽트를 가끔 트랩이라 부른다는 것.

2023-08-17 Ggl:인터럽트 트랩 해보니 interrupt/예외,exception/트랩,trap 셋을 비교해놓은 게 많이 보임
}

//old, merge
{
Turbo_C에는 함수 선언 시 interrupt를 지정할 수 있음.
getvect(), setvect() 등을 씀.

번호 관련
9 키보드? 키보드,keyboard
10h 비디오
16h 키보드?
21h DOS syscall, DOS interrupt
33h 마우스,mouse
}

DOS_interrupt - 도스,DOS
keyboard_interrupt - 키보드,keyboard
mouse_interrupt - 마우스,mouse
...같은 page 만들 수 있음
timer_interrupt - 타이머,timer =,timer . { WtEn:timer ? REL 시간,time 이벤트,event / Sub: APIC_timer { https://wiki.osdev.org/APIC_Timer Ggl:APIC timer } // APIC timer \ PIT { Programmable Interval Timer (PIT) https://wiki.osdev.org/PIT Ggl:Programmable Interval Timer } Ndict:타이머 Ggl:타이머 timer } // timer
{
timer interrupt
WtEn:timer_interrupt ? x 2023-11-06
WpSp:Timer_interrupt ?
WpEn:Timer_interrupt ??
}


Interw: