Ustroj in delovanje operacijskega sistema

Da preverimo, kako sodelujejo posamezni deli programske opreme, si oglejmo primer pisanja besedila.

Naš uporabniški program je urejevalnik besedila. Poleg njega imamo še sistemski program, ki skrbi za tiskanje dokumentov, in seveda jedro ter sistemske knjižnice. Ko uporabnik pritisne tipko poljubne črke na tipkovnici (poskusi na sliki desno), to zazna jedro. Ker programi, vključno z jedrom, med tem lahko počnejo kaj drugega, moramo njihovo delo prekiniti. Zato pravimo, da se ob pritisku tipke sproži prekinitev (ang. interrupt). Jedro posreduje urejevalniku obvestilo o pritisnjeni tipki in ta uvrsti novo črko v besedilo. Sedaj mora urejevalnik črko prikazati še na zaslonu. Ker je za prikazovanje na zaslonu zadolženo jedro, mu mora urejevalnik posredovati zahtevo. Ker delujeta urejevalnik in jedro v različnih načinih delovanja, to stori z uporabo sistemskega klica (ang. system call), ki je skrit v sistemski knjižnici. Ko jedro dobi zahtevo, da prikaže novo črko na zaslonu, jo seveda prikaže.

Če se odločimo, da bi natisnili dokument, to zahtevamo s pritiskom ustrezne ikone (poskusi to storiti v desnem primeru). Prvi del postopka, ki prenese zahtevo od miške do urejevalnika, prejšnjemu pri pritisku tipke. Razlika je seveda v rezultatu. Urejevalnik pošlje dokument, znova prek sistemskega klica, operacijskemu sistemu, ki ga prek jedra posreduje sistemskemu programu. Slednji nato dokument natisne – ponovno prek sistemskega klica in jedra.

Vnašanje besedila se izvaja tako hitro, da uporabnik ne občuti čakanja ter prehajanja iz uporabniškega v jedrni način in nazaj. Samo za primerjavo, če tipkamo zelo hitro, lahko vnesemo okoli 7 znakov na sekundo. Računalnik pa lahko v eni sekundi obdela tudi milijardo ukazov.

V razmislek


Vaja