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) (프로그래머블|프로그래밍 가능한|프로그램 가능한) 인터럽트 (제어기|컨트롤러) 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) - [[마스크,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" } * = 인터럽트와 폴링 = [[폴링,polling]] * 인터럽트: 사건이 발생했을 때 처리 * 폴링: 일정 주기로 장치들을 점검 / 주기적 확인 ---- 비슷한 말: [[트랩,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 만들 수 있음 ---- Interw: https://foldoc.org/interrupt https://simple.wikipedia.org/wiki/Interrupt https://ko.wikipedia.org/wiki/인터럽트 Up: [[컴퓨터구조,computer_architecture]]