Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
10
Rozdział1.Wstęp
urządzenia,żezakończyłdziałanie.Modułobsługiprzekazujewówczasste-
rowaniedoinnychczęścisystemuoperacyjnego,byćmożezwracającdane
lubwskaźnikdodanych,jeślibyłatooperacjaczytania.Wprzypadkuinnych
operacjimodułobsługizwracainformacjęstatusowąwrodzaju„pisanieza-
kończonepomyślnie”lub„urządzeniezajęte”.Wjakisposóbjednak(sprzęto-
wy)sterownikinformuje(programowy)modułobsługi,żezakończyłoperację?
Robitozapomocąprzerwania(interrupt).
1.2.1.1.Przegląd
Sprzętmożespowodowaćprzerwaniewdowolnejchwili,wysyłającsygnałdo
procesora,zwyklezapośrednictwemszynysystemowej.(Wsystemiekompu-
terowymmożebyćwieleszyn,leczszynasystemowajestgłównąmagistralą
komunikacyjnąmiędzyjegogłównymikomponentami).Przerwaniasąużywa-
newwielużnychcelach,sąrównieżpodstawowymsposobemwspółpracy
systemówoperacyjnychzesprzętem.
Procesor(jednostkacentralna)pootrzymaniusygnałuprzerwaniawstrzy-
mujeaktualniewykonywanąpracęinatychmiastprzechodzidoustalonego
miejscawpamięci.Miejscetozawieranaogóładresstartowyproceduryob-
sługującejdaneprzerwanie.Następujewykonanieproceduryobsługiprzerwa-
nia,pozakończeniuktórejjednostkacentralnawznawiaprzerwaneobliczenia.
Przebiegczasowytychoperacjiwidaćnarysunku1.3.
Przerwaniasąważnymelementemarchitekturykomputera.Poszczególne
rodzajekomputerówmająindywidualnemechanizmyprzerwań,niemniejjed-
nakkilkaichfunkcjijestwspólnych.Przerwaniemusiprzekazywaćsterowanie
doodpowiedniejproceduryobsługiprzerwania.Prostysposóbspowodowania
tegopoleganawywołaniuogólnejprocedurysprawdzającejinformacjeopisu-
jąceprzerwanie,któranatejpodstawiewywołakonkretnąproceduręobsługi
przerwania.Jednakprzerwaniamusząbyćobsługiwaneszybko,gdyżwystępu-
jąbardzoczęsto.Proceduraobsługiprzerwaniajestwięcwywoływanapośred-
niozużyciemtablicy,bezkoniecznościstosowaniaprocedurypośredniczącej.
Tatablicawskaźników(doprocedurobsługującychprzerwania)jestnaogół
przechowywanawpamięcidolnej,zajmującwniejpowiedzmypierw-
szychstokomórek.Nosionanazwęwektoraprzerwań(interruptvector)ijest
indeksowanajednoznacznymnumeremurządzeniapodanymwzamówieniu
(żądaniu)przerwania,dziękiczemuotrzymujesięwłaściwyadresprocedu-
ryobsługującejprzerwaniezgłoszoneprzezdaneurządzenie.Nawettakż-
nesystemyoperacyjnejakWindowsiUNIXkierująprzerwaniadoobsługi
wopisanysposób.
Warchitekturzeprzerwańtrzebarównieżuwzględniaćprzechowywanie
informacjiostanietego,cozostałoprzerwane,abymożnabyłogoodtworzyćpo
obsłużeniuprzerwania.Jeżeliproceduraobsługichcezmienićstanprocesorana
przykładprzezzmodykowaniewartościrejestrówtomusijawnieprzechować