Opertivsystemets uppgifter Föreläsning 6 Opertivsystem Opertivsystemets uppgifter Historik Skydd: in- oh utmtning, minne, CPU Proesser, tidsdelning Sidindelt minne, virtuellt minne Filsystem Opertivsystemet hnterr: exekvering v progrm minne filsystem in- oh utmtning skydd oh felhntering kommuniktion med nvändren Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ 7 / 77 Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ 8 / 77 Opertivsystem, historik Skydd, llmänt Inget OS Bth Multikörning Interktivt progrm i mskinspråk dtorn körs v nvändren ldd remsläsre med progrmmet, läs in, tryk på strt, progrmmet kör, utskrift progrm läggs i kö, körs ett i tget fler progrm smtidigt i minnet, turs om tt exekver nvändren hr kontrollen Blnd de viktigste uppgiftern för ett opertivsystem är skydd v olik slg. Ett progrm får inte påverk opertivsystemet eller ndr progrm: In- oh utmtning ett progrm får inte läs/skriv vr oh hur som helst Minne ett progrm får r nvänd sitt eget minnesutrymme CPU ett progrm får inte lägg eslg på CPU-n Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ 9 / 77 Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ / 77
Skydd in- oh utmtning In- oh utmtning, detljer En del uppgifter i dtorn får r utförs v opertivsystemet in/utmtning, hnter vrott, sätt klokn, stäng v dtorn,... Dess opertioner är privilegierde oh får r utförs när dtorn efinner sig i systemtillstånd. När ett vnligt progrm körs efinner sig dtorn i nvändrtillstånd. Om dtorn är i system- eller nvändrtillstånd estäms v en it i hårdvrn. Avrott (till exempel från yttre enhet eller klok) medför yte till systemtillstånd. Användren kommer åt de privilegierde opertionern genom progrmmerde vrott, systemnrop. När ett progrm sk läs/skriv från ett skivminne måste ndr progrm få möjlighet tt kör under tiden läsningen/skrivningen görs (den tr lång tid): egär läsning/skrivning vänt på tt läsningen/skrivningen lir klr (här får ndr progrm exekver) fortsätt Det kn inträff tt fler progrm vill läs/skriv innn föregående in/utmtning är klr. Då läggs önskningrn i en kö oh opertivsystemet tr hnd om dem i tur oh ordning. Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ / 77 Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ / 77 Skydd minne Skydd CPU Ett progrm får r referer till sitt eget minnesutrymme (inte opertivsystemets eller ndr progrms minne). Vrje minnesreferens måste kontrollers (kn görs med två register i hårdvr, undre oh övre gräns; mer kompliert vid virtuellt minne): low high Opertivsystem Progrm Progrm Progrm Ett progrm får inte lägg eslg på CPU-n för egen del. En klok vryter progrmexekveringen med jämn mellnrum, så tt opertivsystemet kn kontroller CPU-tidsförrukningen. Översättning: fysisk-dress = logisk-dress + low Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ / 77 Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ 4 / 77
CPU-tidsfördelning En ensm proess Fler progrm (proesser) kn finns i minnet smtidigt. En proess kn efinn sig i olik tillstånd: ktiv (hr tillgång till CPU-n) körklr (vill h tillgång till CPU-n) väntnde (väntr på in/utmtning eller något nnt) Opertivsystemet flyttr proessen melln tillstånden. strt Körklr kör stopp I/O klr egär I/O Om det r finns en proess i dtorn: Körklr, lir omedelrt ktiv Är ktiv tills den själv egär I/O (Input/Output) Väntr tills I/O är klr Körklr, omedelrt ktiv Osv, tills proessen vsluts Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ / 77 Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ 6 / 77 Fler proesser Tidsdelning strt kör stopp Körklr strt Körklr kör vryt stopp I/O klr egär I/O I/O klr egär I/O Det fungerr på liknnde sätt om det finns fler proesser. Men nu får en nnn körklr proess exekver när den ktiv proessen lir väntnde. Vi hr lltså möjlighet till multikörning. Men oserver tt en ktiv proess kn lägg eslg på CPU-n. Om det finns fler proesser oh mn vill se till tt en proess inte lägger eslg på CPU-n så måste CPU-tiden dels melln proessern. Tiden dels ut i tidskvnt ( ms). Efter vrje kvntum vryter opertivsystemet den ktiv proessen oh ser till tt näst körklr proess lir ktiv. Proesser hr normlt prioritet som estämmer turordningen. Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ 7 / 77 Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ 8 / 77
Minneshntering Enklste modellen: progrmmet får minne i en följd där det finns plts. Minnet skydds med low-high-register. Prolem: det lir hål i minnet som knske inte kn utnyttjs (frgmentering). Opertivsystem Sidindelt minne Undvik frgmentering genom tt del upp minnet i sidrmr (någr kb stor). Eftersom ll sidrmr är lik stor är det lätt tt håll red på vilk sidrmr som är ledig. Del upp progrmmet i sidor, lik stor som sidrmrn. Lägg progrmmets sidor i ledig sidrmr, som inte ehöver komm i följd. Nu lir det enkelt tt stopp in fler progrm i minnet. Minne low high utrymme Progrm Progrm Progrm 4 6 Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ 9 / 77 Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ / 77 Sidteller Men tänk nu tt progrmmet vill komm åt innehållet i minnesellen med dressen 7 (i progrmmet står det till exempel move r,7). Antg tt sidorns storlek är kb. Då finns sidn som innehåller denn minnesell i det fysisk minnet på dressen 77 (sid ligger i sidrm nr ). Vrje minnesdress måste översätts från logisk till fysisk dress. Dett görs med hjälp v en sidtell. Progrm Sidtell Minne Virtuellt minne Om det fysisk minnet är mindre än det logisk minnet nvänder mn virtuellt minne. Det är ett slgs sidindelt minne där sidorn normlt finns på skivminne. Inte förrän progrmmet refererr till en sid ldds den in i primärminnet. Om minnet lir fullt måste sidor i minnet skrivs ut på skivminne, så tt sidrmr lir ledig. Oh då sk mn helst skriv ut sidor som inte kommer tt ehövs under den närmste tiden. Allt dett hnters v opertivsystemet. 4 6 Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ / 77 Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ / 77
Filsystem Användren vill se ett skivminne som ett ntl filer smlde i ktloger. Mn sk kunn komm åt en fil om mn känner filens nmn. Opertivsystemet ser skivminnet som en följd v lok, numrerde oh uppåt. (På den llr lägst nivån måste mn okså håll red på spår oh sektorer på skivn.) Skivminnet måste orgnisers så tt översättningen filnmn! lok lir möjlig. Dett är filsystemets uppgift. Per Holm (Per.Holm@s.lth.se) Opertivsystem 4/ / 77