Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
34
Rozdział1.Wstęp
przerwań.Jeśliwprogramiewystąpiłbłąd,systemoperacyjnywymuszaawa-
ryjnezakończenieprogramu.Zdarzenietakiejestobsługiwanezapomocątego
samegokoducożądanieawaryjnegozakończeniaprogramupochodząceod
użytkownika.Pojawiasięodpowiednikomunikatobłędzie,poczymmoże
nastąpićskładowanie(zrzut)pamięciprogramu.Obrazpamięciprogramujest
zazwyczajzapisywanywpliku,użytkowniklubosobaprogramującamoże
gowięcprzeanalizowaći,poewentualnejpoprawce,spróbowaćuruchomić
programodnowa.
1.4.3.Czasomierz
Musimyzapewnićsprawowanieprzezsystemoperacyjnykontrolinadjed-
nostkącentralną(CPU).Niewolnodopuścić,byprogramużytkownikautknął
wnieskończonejpętlilubuległawarii,wywołującusługisystemu,inigdynie
oddałsystemowioperacyjnemusterowania.Osiągasiętoprzezzastosowanie
czasomierza.Czasomierz(timer)możnaustawićtak,abygenerowałwkompute-
rzeprzerwaniepowyznaczonymokresie.Okrestenmożebyćstały(np.1/60s)
lubzmienny(np.od1msdo1s).Czasomierzzmienny(variabletimer)jest
zwyklerealizowanyzapomocązegarastałookresowegoilicznika.System
operacyjnyustawialicznik.Przykażdymtyknięciuzegaranastępujezmniej-
szenielicznika.Zchwiląwyzerowanialicznikapowstajeprzerwanie.Naprzy-
kład10-bitowylicznikz1-milisekundowymzegaremumożliwiaprzerwania
wodstępachod1do1024ms,zprzyrostemco1ms.
Przedoddaniemsterowaniadoprogramuużytkownikasystemoperacyjny
dopilnowujeustawieniaczasomierzanaprzerwanie.Kiedyczasomierzspowo-
dujeprzerwanie,wtedysterowaniewracaautomatyczniedosystemuopera-
cyjnego,którymożeuznaćtoprzerwaniezanieusuwalnybłądlubzdecydo-
waćoprzyznaniuprogramowiwięcejczasu.Rozkazymodykującedziałanie
czasomierzasąoczywiściezastrzeżonedoużytkujądra.
CZASOMIERZEWLINUXIE
WsystemachlinuksowychparametrHZkonguracjijądraokreślaczęstotliwość
przerwańczasomierza.WartośćHZrówna250oznacza,żeczasomierzgeneruje
250przerwańnasekundę,czylijednoprzerwaniecokażde4milisekundy.War-
tośćHZzależyodskongurowaniajądra,atakżeodtypumaszynyiarchitektury,
wktórejonopracuje.Związanajestztymzmiennajądrowajiffiesreprezen-
tującaliczbęprzerwańczasomierza,którewystąpiłyodrozruchusystemu.Dal-
szychkwestiimierzeniaczasuwjądrzeLinuxadotyczyprojektprogramistyczny
omówionywrozdziale2.