ngắt và xl ngắt
Đểchươngtrìnhthựchiệnchínhxáccầncósựphốihợpnhịpnhànggiữahoạtđộngcủabộ vi xửlý (CPU) vớicáchoạtđộngcủacácthiếtbịvào/ravàcácthànhphầnkháccủahệthống. Ngắtlàphươngtiệnđểcácthànhphầnkháctronghệthốngthôngbáocho CPU biếtsựthayđổitrạngtháicủamình.
Mộtchươngtrìnhkhithựchiệnthìkhôngdừnglại, trongthựctếcónhữnglúcchúngtamuốndừngthựchiệnchươngtrìnhđểthựchiệncôngviệcgìđó, vídụgặpphảivònglặpvôhạn, bằngcáchấntổhợpphímnàođó. Nhưvậychungtađãpháttínhiệungắtyêucầudừngthựchiệnchươngtrình. Đểcâulệnhchươngtrìnhkhôngbịmấtkhicótìnhhuốngxẩyra, trongmộtchukỳlệnh CPU kiểmtracóngắt hay không, nếucóxửlýngắtrồisauđómớitiếptụcthựchiệnchươngtrình
Ngắtgồmcóngătcứngvàngắtcứngvàngắtmềm: Ngắtcứnglàcácsựkiện do phầncứnggâyra, vídụnhư: ấntổhợpphím, sụtnguồn, hỏng RAM, v…v; Ngătmềmlàcácsựkiệnphầnmềmgâyra, vídụnhưgặpphépchiachosốkhông, cáclệnhdừngchươngtrìnhcủangườisửdụngkhidùngđểbiệnluận
2.2 Xửlýngắt
Khiđangthựchiệnmộtchươngtrìnhnếuxuấthiệnmộtngắt, nếuhệthốngxửlýngắtngaylậptứckhôngchờđộithựchiệnxonglệnhhiệnthờithìsẽxửlýđượctìnhhuốngcấpbáchnhưngcâulệnhcóthểbịmất.
Trongthựctếviệcxửlýngắtđượcthựchiệnnhưsau:
Hệthốngđịnhkỳsâumộtkhỏngthờigiannhấtđịnh (mộtchukỳ) xemxétcótínhiệungắt hay không, nếucóthìthựchiệntheo 5 giaiđoạnsau:
-Ghinhậnđặctrưngsựkiệngâyratínhiệungắtvào ô nhớ qui định
-Ghinhậntrạngtháichươngtrìnhbịngắt: bộđếmlệnh, thanhghi IP, chếđộlàmviệc …
-Chuyểnđịachỉthủtụcxửlýngắttươngứngvàothanhghilệnh IP củabộxửlý
-Thựchiệnchươngtrìnhxửlýngắt (thủtụcxửlýngắt)
-Khôiphụclạichươngtrìnhbịngắt
Ba bước đầu do phần kỹ thuật đảm nhận. Hai bước sau do hệđiều hành thực hiệnXửlýsựkiệngâyrangắtđượcđảmbảobằngmộtthủtụcxửlýngắt. Mỗimộtloạisựkiệncóthủtụcxửlýngắtriêng. Việcđầutiêncủachươngtrìnhxửlýngắtlàlưulạithông tin vềtrạngtháicủangắt, đểbổ sung thông tin chođảmbảotựđộng ở bước 3. Mỗiloạisựkiệnđòihỏimộtcáchxửlýriêng, cóthểrấtđơngiảnnhưxáclậpmộtvài bit trongthanhghicờtrạngtháinhưngcũngcóthểrấtphứctạp. Phầncuốicủaxửlýngắtlàkhôiphụcchươngtrìnhbịngắtđểđảmbảochohệthốnghoạtđộngbìnhthường.
Nếuchươngtrìnhbịngắtkhôngthểtiếptụcthựchiệnvìsựkiệnxẩyra (vídụtràn ô nhớkhitínhtoán) thìsaukhithôngbáolỗi, chươngtrìnhxửlýngắtchuyểnchươngtrìnhbịngắt sang chếđộkếtthúc.
Đểxửlýtìnhhuốngngắtképhệthốngdựavàođộưutiêncủacácngắt. Tronghệthốngngắtcóđộưutiên, thôngthườngngắtcósốhiệucàngnhỏđộưutiêncàngcao. Vìthếviệcxửlýngắtképđượcthựchiệnnhưsau:
-Trườnghợpcáctínhiệungắtxuấthiệnđồngthờitạimộtthờiđiểm: Trongcácngắt, ngắtnàocódộưutiêncaohơnsẽxửlýtrướccòncácngắtcóđộưutiênthấpbịchặnlạivìthếchúngcóthểbịmấthoặcxếpvàohàngđợichờxửlýnếuhànhđợicònkhônggianlưutrữ.
- Trườnghợpkhiđangxửlýmộtngắtxuấthiệnmộtngắtmới: Nếungắtmớicóđộưutiêncaohơnthìchươngtrìnhxửlýngắtcũtrởthànhchươngtrìnhbịngắt. Ngượclại, nếungắtmớicóđộưutiênthấphơnthìbịchặnlạicóthểbịmấthoặcđượcxếpvàohàngđợichờxửlýnếucònkhônggianlưutrữ.
Bạn đang đọc truyện trên: Truyen247.Pro