Download presentation
Presentation is loading. Please wait.
1
MOODUL C2. OPERATSIOONISÜSTEEMID
Kirjeldada tüüpilise operatsioonisüsteemi funktsioonid Kirjeldada operatsioonisüsteemide eri tüübid (ajajaotus-, reaalaja-, pakksüsteem) Kirjeldada rakendusprogrammiliidese mõiste Kirjeldada arvutisüsteemi ressursside haldus tarkvara abil Mõtle! Miks on operatsioonisüsteem üldse vajalik? Mida operatsioonisüsteem teeb? Mis on protsessor, mälu ja sisend-väljund seadmed? Esimene osa on sissejuhatus, mis tutvustab operatsioonisüsteemide ülesehitust ja mehhanisme, mis võimaldavad suhtlemist kasutaja, rakenduste ja riistvaraga. Järgmine osa tutvustab protsessori, mälu ja turvaküsimuste haldamisega seotud aspekte. Teises osas toob eriti esile konkurentsi mõiste ning selgitab, kuidas seda põhimõtet on rakendatud protsessides ja lõimedes. Kolmas osa määratleb virtuaalmälu mõiste, tutvustades mälu haldamise tehnikaid, mille aluseks on saalimine ja lehekülgedeks jaotamine, samuti kirjeldatakse selles failisüsteemi funktsioone. Neljas osa käsitleb turvaprobleeme, määratleb identifitseerimise ja autoriseerimise mõisted, peamisi kaitsemehhanisme, kirjeldatakse ohte arvutisüsteemidele ja kaitset nende ohtude eest. Viimases osas kirjeldatakse Linuxi ja Windowsi operatsioonisüsteemide peamisi funktsioone.
2
Põhimõtted Operatsioonisüsteemi – süsteemitarkvara arvuti töö juhtimiseks ja rakendusprogrammide teenindamiseks Tüüpilise üldotstarbelise arvuti operatsioonisüsteemi funktsioonid Kasutajakeskkond seadmetega töötamisel Automaatne sisend-väljundseadmete konfimine Rakenduste liides seadmete poole pöördumiseks Keskkond rakenduste loomiseks Ressursi (CPU, RAM, failisüsteem, jne) jagaja Arvutivõrgu toetus (protokollid, veebilehitseja) Turvavahendid (autentimine, tulemüür, failisüsteemi ACL, krüpteerimine, installi- ja kasutuspiirangute konfimine tavakasutajatele) Operatsioonisüsteem ehk opsüsteem (inglise keeles operating system, lühend OS) on arvuti süsteemitarkvara, mis käivitatakse arvutis alglaadimisprogrammi poolt ning mis juhib arvutisüsteemi tööd ja teenindab rakendusprogramme. Rakendusprogrammid saadavad operatsioonisüsteemile nõudeid mitmesuguste teenuste järele läbi rakendusliideste. Kasutajad saavad vahetult suhelda opsüsteemiga madala ja rakendustaseme programmeerimisliideste kaudu ning läbi käsuinterpretaatori, kasutades selleks käsurealt ohjekeelt või graafilist kasutajaliidest. Opsüsteem on ka arenduskeskkond programmeerijatele, et luua rakendusi ilma otse riistvara tundmata. Operatsioonisüsteem sisaldab kindlasti protsessihaldust, riistvarahaldust, mäluhaldust, failihaldust, arvutivõrgu tuge, sisend-väljundsüsteemi haldust ning turbevahendeid. Kaasaegses arvutisüsteemis peab riistvarakomponentide üle arvet operatsioonisüsteem ning paljudel juhtudel on võimalik sisend-väljund seadmete poole pöördumine võimalik ainult operatsioonisüsteemi vahendusel Arvuti koosneb kolmest põhiosast: riistvara, operatsioonisüsteem ja rakendused (viimased kaks moodustavad kokku arvutis oleva tarkvara kihid). Operatsioonisüsteem on programm, mis toimib vahendajana rakenduste ja riistvara vahel. Selle põhieesmärgiks on pakkuda kasutajale keskkonda rakendustega töötamiseks. Operatsioonisüsteem pakub ka rakendustele liidest seadmete kasutamisel. Seega ei pea rakendused teadma iga seadme spetsiifilist liidest, vaid nad kasutavad standardset liidest ja jätavad seadmega suhtlemise operatsioonisüsteemi ülesandeks. Operatsioonisüsteemi võib vaadelda ka kui ressursside haldajat. Kujutlegem, mis võiks juhtuda, kui mitu programmi kasutaks üheaegselt sama seadet (näiteks printerit). Tulemus oleks kaootiline, sest erinevate programmide väljaprintimised võivad kattuda. Sellest seisukohast toimib operatsioonisüsteem vahekohtunikuna. Muuhulgas otsustab ta, millal ja kui kaua mingi rakendus saab antud ressurssi kasutada. Kuna eri ressursse tuleb kasutada erineva kasutuskorra järgi, siis sisaldab operatsioonisüsteem komponente iga ressursside klassi haldamiseks. Kõige tähtsamad ressursihaldurid on protsessori, mälu ja seadmete haldurid ning failisüsteem. Kõik operatsioonisüsteemi komponendid on kokku võetud ainulaadsesse programmi, mida nimetatakse kerneliks ehk tuumaks, mis pakub kõiki operatsioonisüsteemi teenuseid. Riistvara: arvuti füüsilised osad. See koosneb protsessorist, mälust ja seadmetest nagu kettad, printerid, klaviatuurid, monitorid ja hiir. Rakendused: programmid, mis pakuvad kaustajale teenuseid. Rakendused on näiteks tekstitöötlusprogrammid või e-posti haldamise programmid. Operatsioonisüsteem ei ole rakendus, sest see pakub põhifunktsioone, mis pole seotud kasutaja spetsiifiliste tegevustega. Tarkvara: see on arvuti mittefüüsiline osa, kuid on niisama oluline kui riistvara. See on kogum programme, mis kontrollivad riistvara ning suhtlevad kasutajaga. Seade: riistvara komponent, mis ei ole protsessor või mälu. Seadmeteks on näiteks kettaseadmed, printerid, klaviatuurid, hiired ja monitorid. Ressurss: vajalik ühik mingi tegevuse teostamiseks. Riistvara komponendid, andmed ja programmid on ressursid. Failisüsteem: kettaseadmetel olevate arhiivide (failide) haldamissüsteem.
3
Põhimõtted Arvuti koosneb kolmest põhiosast: riistvara, operatsioonisüsteem ja rakendused (viimased kaks moodustavad kokku arvutis oleva tarkvara kihid). Operatsioonisüsteem on programm, mis toimib vahendajana rakenduste ja riistvara vahel. Selle põhieesmärgiks on pakkuda kasutajale keskkonda rakendustega töötamiseks. Operatsioonisüsteem pakub ka rakendustele liidest seadmete kasutamisel. Seega ei pea rakendused teadma iga seadme spetsiifilist liidest, vaid nad kasutavad standardset liidest ja jätavad seadmega suhtlemise operatsioonisüsteemi ülesandeks. Operatsioonisüsteemi võib vaadelda ka kui ressursside haldajat. Kujutlegem, mis võiks juhtuda, kui mitu programmi kasutaks üheaegselt sama seadet (näiteks printerit). Tulemus oleks kaootiline, sest erinevate programmide väljaprintimised võivad kattuda. Sellest seisukohast toimib operatsioonisüsteem vahekohtunikuna. Muuhulgas otsustab ta, millal ja kui kaua mingi rakendus saab antud ressurssi kasutada. Kuna eri ressursse tuleb kasutada erineva kasutuskorra järgi, siis sisaldab operatsioonisüsteem komponente iga ressursside klassi haldamiseks. Kõige tähtsamad ressursihaldurid on protsessori, mälu ja seadmete haldurid ning failisüsteem. Kõik operatsioonisüsteemi komponendid on kokku võetud ainulaadsesse programmi, mida nimetatakse kerneliks ehk tuumaks, mis pakub kõiki operatsioonisüsteemi teenuseid. Riistvara: arvuti füüsilised osad. See koosneb protsessorist, mälust ja seadmetest nagu kettad, printerid, klaviatuurid, monitorid ja hiir. Rakendused: programmid, mis pakuvad kaustajale teenuseid. Rakendused on näiteks tekstitöötlusprogrammid või e-posti haldamise programmid. Operatsioonisüsteem ei ole rakendus, sest see pakub põhifunktsioone, mis pole seotud kasutaja spetsiifiliste tegevustega. Tarkvara: see on arvuti mittefüüsiline osa, kuid on niisama oluline kui riistvara. See on kogum programme, mis kontrollivad riistvara ning suhtlevad kasutajaga. Seade: riistvara komponent, mis ei ole protsessor või mälu. Seadmeteks on näiteks kettaseadmed, printerid, klaviatuurid, hiired ja monitorid. Ressurss: vajalik ühik mingi tegevuse teostamiseks. Riistvara komponendid, andmed ja programmid on ressursid. Failisüsteem: kettaseadmetel olevate arhiivide (failide) haldamissüsteem.
4
Põhimõtted Eri tüüpi operatsioonisüsteemid: Pakktöötlus (batch),
Interaktiivsus puudub Vaja ette sööta skript Ajajaotuslik (time-sharing) Interaktiivsetes op.süsteemides Aeg jagatud kvantumiteks, mida jagatakse protsessidele võrdselt Reaalajaline (real-time) Esimestel operatsioonisüsteemidel (pakktöötluse süsteemidel) puudus täielikult interaktiivsus. Programmeerijal tuli kirjutada programm koos selle juurde kuuluvate andmetega (töö) paberile, siis kanda perforeeritud kaartidele ja saata kaardid arvutuskeskusse täitmiseks. Esimesed pakksüsteemid olid üheprogrammilised ja neil sai teostada ainult ühe töö korraga. Kui arvutid muutusid võimsamateks, muutusid ka pakksüsteemid mitmeprogrammilisteks (st. need olid võimelised teostama rohkem kui üht tööd korraga). Pakksüsteemide peamine piirav tegur oli interaktiivsuse puudumine. Arvutite tehnilise arengu ja operatsioonisüsteemidele lisandunud kasutajasõbralike kasutajaliideste lisandumisega on operatsioonisüsteemid muutunud interaktiivseteks. Interaktiivsuse tugevdamiseks on aga kohustuslik saavutada lühikesed reageerimisajad kasutaja käskudele ja vajalik on ka tagada kõigi süsteemis rakendatavate programmide ühesugune edenemine. Sel eesmärgil on protsessori tööaeg jagatud intervallideks, mida nimetatakse kvantumiteks ja protsessor tegeleb tsükliliselt ühe teostatava programmiga ühe kvantumi jooksul. Operatsioonisüsteemid, mis kasutavad sellist strateegiat, nimetatakse ajajaotuslikeks. Paljud kasutajad, kes töötavad ajajaotusliku süsteemiga üheaegselt ei ole teadlikult üksteisest ja igaüks neist usub, et ta kasutab üksinda kogu süsteemi Pakktöötluse ja ajajaotusega süsteemid siiski ei sobi selliste rakenduste toetamiseks, kus tuleb kinni pidada ajalistest piirangutest ja tähtaegadest (näiteks tööstusettevõtete juhtimissüsteemid). Mõnedel sellistel rakendustel on tähtajad nii kriitilised, et kui nendest kinni ei peeta, siis juhitav süsteem võib muutuda inimesele, keskkonnale või majandusele ohtlikuks. Näiteks tähtaja ületamne tööstusettevõtte juhtimissüsteemis võib seada ohtu kogu tehase tervikuna. Operatsioonisüsteeme, mis peavad rangelt kinni kriitilistest tähtaegadest, nimetatakse rangelt reaalajalisteks. Teistes rakendustes on tähtajad olulised, kuid mitte kriitilised (näiteks filmi kopeerimine). Süsteeme, mis toetavad selliseid rakendusi, nimetatakse pehmeteks reaalajalisteks.
5
Põhimõtted Rakendusliides (API)
liides, mida kasutavad rakendused operatsioonisüsteemi teenuste kasutamisel protseduuride teek, mis pakuvad rakendustele kõiki operatsioonisüsteemi teenuseid Üks operatsioonisüsteemi peamisi funktsioone on luua programmeerijale ühtne platvorm rakendustarkvara loomiseks. Kui nüüd piltlikult öelda, siis peamine probleem on, et programmeerijatel peab olema võimalus luua rakendustarkvara arvestamata riistvara iseärasusi. Selleks, et seda saavutada on loodud rakendusprogrammliides ehk API (Application Programming Interface). Rakendusprogrammliides on kirjelduste (teenuste) kogum, mis kirjeldab riistvaraga suhtlemise korra, peites kasutaja ja programmeerija jaoks ära riistvara omapärad Lihtsalt öeldes tähendab see seda, et programmeerijal tuleb öelda näiteks, et “tahan printida” ning kui see tegevus on rakendusprogrammliideses kirjeldatud, siis on juba rakendusprogrammliidese ülesanne see toiming seadmeajureid (driver’id) kasutades riistvara abil teostada. Erinevate operatsioonisüsteemide rakendusprogrammliidesed on tihti teostatud erinevalt ning osalt just seepärast ei ole võimalik vahel ühe operatsioonisüsteemi jaoks kirjutatud rakendustarkvara teises operatsioonisüsteemis kasutada. Kernel määrab ära liidese, mis määrab protseduuri (mida nimetatakse süsteemikutseks) iga operatsioonisüsteemi poolt pakutava teenuse jaoks. Näiteks kirjutamise operatsioon välisseadmele on teenus, mida pakub operatsioonisüsteem spetsiifilise süsteemikutsega kernelis. Turvakaalutlustel ei saa rakendused süsteemikutseid otse välja kutsuda, vaid vajavad selleks kaudset mehhanismi, mis teostatakse protsessori spetsiaalse käsu abil. See käsk tekitab tarkvara katkestuse protsessorile, mis põhjustab katkestuste halduri käivituse operatsioonisüsteemi kernelis. Katkestuste haldur tuvastab katkestuse kui nõude (rakenduse poolt) täita operatsioonisüsteemi teenus, seega leiab ta vastava protseduuri (süsteemikutsung) kernelist ja täidab selle. Operatsioonisüsteemides on sageli pakkuda liides, mis võimaldab programmeerijal kasutada operatsioonisüsteemi teenuseid ilma vajaduseta süsteemikutsete alama taseme esilekutsumiste järele spetsiaalsete protsessorikäskude kaudu. See liides on normaalselt saadaval mitmesugustes programmeerimiskeeltes tarkvara teegis mida nimetatakse API. API on protseduuride teek, mis pakuvad rakendustele kõiki operatsioonisüsteemi teenuseid. Üldiselt vastab igale operatsioonisüsteemi teenusele (ja seega igale süsteemikutsel) üks API protseduur. Sellisel juhul protseduur lihtsalt käivitab vastava süsteemikutse. Samas mõned API protseduurid võivad pakkuda keerulisemaid teenuseid, milles on koondatud mitu süsteemikutset. API on selgelt spetsiifiline sõltuvalt operatsioonisüsteemist ja programmeerimiskeelest ning iga operatsioonisüsteem võib pakkuda erineva API. Win32 ja PThreads on API-teekide näited vastavalt Windowsi ja Linuxi keskkonnas.
6
Põhimõtted Kuidas tarkvara haldab ressursse
mälu vastendatud sisend/väljund (memory-mapped input/output) Katkestused, katkestuse haldur Seadmedraiver Räägi sellest, et 32bit masinal läheb peaaegu kogu ülemine GB süsteemiressursside alla ja kasutajale jääb vaid 3GB. Operatsioonisüsteem programmeerib seadmete kasutust, kasutades mehhanismi, mida nimetatakse mälu vastendatud sisend/väljund. See mehhanism koosneb iga seadme jaoks kinnistatud mäluaadresside komplektist. Need mäluaadressid vastavad seadme sisemistele registritele, seega saab protsessor suhelda seadmega sellele vastavatel aadressidel lugemise/kirjutamise operatsioonide kaudu. Siinkohal üks lihtne näide seadmest, mis loeb/kirjutab magnetkaarti, mis on seotud kahe mäluaadressiga: x käskudele ja y andmetele. Kaks näidet seadme programmeerimisest on järgmised: Operatsioonisüsteem kirjutab väärtuse 1aadressile x, et anda seadmele käsk kopeerida kaardi sisu aadressile y. Kui see operatsioon on lõpuleviidud, saab operatsioonisüsteem lugeda kaardi sisu aadressilt y. Operatsioonisüsteem kirjutab andmed D aadressil y ja väärtuse 2 aadressil x, et anda käsk seadmele kopeerida kaardil olevad andmed D . Vaadelgem rakendust, mis nõuab operatsioonisüsteemilt ühe sellise operatsiooni teostamist (näiteks lugemine) seadmel. On selge, et see rakendus ei saa oma tööga edasi minna enne, kui see operatsioon on lõpule viidud. Kuid kuna lugemise operatsioon võib võtta palju aega, siis võib operatsioonisüsteem ajutiselt blokeerida rakenduse, et teostada teisi rakendusi. Kui seade on lõpetanud lugemise operatsiooni, saadab ta katkestussignaali protsessorile. Protsessor katkestab seejärel käimasoleva rakenduse teostamise, et käivitada katkestuste halduri. Katkestuste haldur teeb kindlaks seadme, kust katkestussignaal tuli, ning käivitab vastava seadmedraiveri. Seadmedraiver on operatsioonisüsteemi kernelis olev protseduur, mis suhtleb seadmega ja antud juhul viib lõpule nõutud operatsiooni, edastades seadme poolt loetud andmed selle nõude saatnud rakendusele. Seadmedraiver: operatsioonisüsteemis olev programm, mis suudab suhelda mingi spetsiifilise seadmega. Tavaliselt on igal seadmetüübil oma seadmedraiver.
7
Protsessi mõiste kirjeldus
Protsess on töötav programm ehk programmi aktiivne koopia Iga protsess on registreeritud olekuga, mis võib olla kas valmis, täitmisel või blokeeritud. Protsessi tabel: kernelis olev tabel, mis sisaldab informatsiooni kõigi süsteemi protsesside kohta. Protsessi deskriptor: andmestruktuur, mis sisaldab informatsiooni teatud protsessi kohta. Protsessi deskriptor on kanne protsessi tabelis. Ajajaotus-operatsioonisüsteemis on igal protsessil kolm võimaliku olekut: ootel (waiting), valmis (ready) ja töös (running). Ootel on üks protsess siis, kui protsess ootab sisendandmeid, milleta ei saa protsess jätkata (klaviatuurilt, kõvakettalt jne loetavad andmed). Valmis on üks protsess siis, kui kõik vajalikud eeldused on täidetud ja protsessi on võimeline jätkama (ootab, et protsessihaldur jagaks talle vajalike ressursse). Protsess on töötav programm ehk programmi aktiivne koopia Näita taskmanageri kõigi kasutajate kõiki protsesse: Applications tab –i kaudu ei toimu kiirelt vaid windows üritab rakendusega kontakteeruda. Process tabi kaudu saab paremini. taskkill /F /IM notepad.exe Näita kuidas vaadata protsesiga seotud avatud faile ja registrivõtmeid Resourcemonitori abil Protsess on blokeeritud, kui selle täitmise jätkamine vajab ressurssi, mis ei ole hetkel kasutatav (näiteks ootab see kõvakettalt loetavaid andmeid). Kui ressurss muutub kättesaadavaks, äratab operatsioonisüsteem protsessi, lülitades selle ümber blokeeritud olekust valmis olekusse. Valmisolekus olevad protsessid on sellised protsessid, mida saab igal hetkel täitma hakata. Ajahetke, mil need käivitatakse, määrab plaanur. Antud ajahetkel (üheprotsessorilises süsteemis) saab ainult üks protsess olla täitmisel. Täitmisel olekust on võimalik üle minna ainult kahte olekusse: blokeeritud olekusse: kui protsess pöördub ressursi poole, mis ei ole kasutatav; valmis olekusse: selle ülemineku otsustab operatsioonisüsteem (näiteks kui protsess on lõpetanud ühe oma kvantumi).
8
Protsessi mõiste kirjeldus
Protsess kasutab ressursse ja sisend-väljundseadmeid Aktiivseid protsesse on korraga töös palju Ressursid on piiratud Operatsioonisüsteem jagab protsessidele juurdepääsu ressurssidele Protsessihaldus on oluline operatsioonisüsteemi funktsioon Tänapäeva operatsioonisüsteemid võimaldavad töötada mitmel protsessil korraga, see tähendab aga seda, et operatsioonisüsteem peab tagama kõikidele protsessidele vajalikele ressurssidele juurdepääsu ning kuna ressursid arvutis on piiratud, siis tuleb ressursse erinevate protsesside vahel jagada. Samas tuleb tagada ka see, et töötavad protsessid üksteist segama ei hakkaks. Seepärast ongi üks operatsioonisüsteemi tähtsamaid ülesandeid protsessihaldus. Protsessihalduse käigus jälgitakse, et kõik protsessid töötaksid, et neil oleks ligipääs riistvararessurssidele, millele neil ligipääs on lubatud, et protsessid üksteist ei segaks ning et vajalikud protsessid saaksid omavahel suhelda. Kaasaegsetes operatsioonisüsteemides on võimalik määrata protsesside olulisust ning õiguseid. Reegel on selline, et operatsioonisüsteemile olulisemad protsessid võivad hõivata suurema hulga erinevaid ressursse, kui on ka erandeid: näiteks, kui meil on arvuti kuhu on paigaldatud andmebaasiserver ja veebiserver ning andmebaasiserver on antud olukorras missioonikriitiline, sest seda kasutab hulk rakendusi teistes serverites. Seega võib serverihaldur määrata, et andmebaasisesrveriga seotud protsessid on olulisemad ning neile tuleb jagada kõige suurem hulk riistvaralisi ressursse. Kriitilistel hetkedel, kui serveril on suur koormus, antakse sellisel juhul valdav osa riistvara ressursist andmebaasiserveri käsutusse, see võib tähendada, et mingil hetkel ei ole veebiserver üldse kättesaadav, kuid samas on tõenäosus, et andmebaasiserver töötab, sellevõrra suurem.
9
Protsessi mõiste kirjeldus
Tänapäeva operatsioonisüsteemid võimaldavad töötada mitmel protsessil korraga, see tähendab aga seda, et operatsioonisüsteem peab tagama kõikidele protsessidele vajalikele ressurssidele juurdepääsu ning kuna ressursid arvutis on piiratud, siis tuleb ressursse erinevate protsesside vahel jagada. Samas tuleb tagada ka see, et töötavad protsessid üksteist segama ei hakkaks. Seepärast ongi üks operatsioonisüsteemi tähtsamaid ülesandeid protsessihaldus. Protsessihalduse käigus jälgitakse, et kõik protsessid töötaksid, et neil oleks ligipääs riistvararessurssidele, millele neil ligipääs on lubatud, et protsessid üksteist ei segaks ning et vajalikud protsessid saaksid omavahel suhelda. Kaasaegsetes operatsioonisüsteemides on võimalik määrata protsesside olulisust ning õiguseid. Reegel on selline, et operatsioonisüsteemile olulisemad protsessid võivad hõivata suurema hulga erinevaid ressursse, kui on ka erandeid: näiteks, kui meil on arvuti kuhu on paigaldatud andmebaasiserver ja veebiserver ning andmebaasiserver on antud olukorras missioonikriitiline, sest seda kasutab hulk rakendusi teistes serverites. Seega võib serverihaldur määrata, et andmebaasisesrveriga seotud protsessid on olulisemad ning neile tuleb jagada kõige suurem hulk riistvaralisi ressursse. Kriitilistel hetkedel, kui serveril on suur koormus, antakse sellisel juhul valdav osa riistvara ressursist andmebaasiserveri käsutusse, see võib tähendada, et mingil hetkel ei ole veebiserver üldse kättesaadav, kuid samas on tõenäosus, et andmebaasiserver töötab, sellevõrra suurem.
10
Protsessori ressursikasutuse jagamise võimalused
Processor Affinity start /affinity 1 rakendus.exe Rakenduse prioriteet (Application Priority) Start /realtime rakendus.exe Lihtjärjekord Ringiratast (Round-robin) planeerimine Alates lühemast Lihtjärjekord (First Come First Served) –protsesse täidetakse nende saabumise järjekorras kuni töö valmimiseni, kui mõni protsess blokeerub, siis võetakse järgmine Alates lühemast (shortest first)– iga protsessiga seotakse järgmise protsessoriaja küsitav pikkus ning esimesena võetakse täitmisse lühiajalisema sooviga protsess Prioriteedi järgi planeerimine – iga protsessiga seotakse prioriteet, suurema prioriteediga protsess täidetakse esimesena, võrdsete prioriteetide korral võetakse täitmisse esimesena täitmisele saabunud protsess Ringiratast (round robin) planeerimine – igale protsessile eraldatakse korraga kindel hulk protsessori aega ja selle aja möödudes tõrjutakse täitmisest protsess välja ja pannakse järjekorra lõppu Teatud rakendusi saab seadistada kasutama serveri ressursse. A processor (or processor core) can only run one thread at a time. A computer with one processor can still run multiple applications, however, because Windows switches the processor between different processes and threads. Higher-priority threads receive more processor time than lower-priority threads. c:\windows\system32\cmd.exe /C start /affinity 1 notepad.exe Start command to set priority Msconfig – keelata mittevajalikud rakendused bootimisel. Mittevajalikud teenused keelata, ülejäänutel, mis pole süsteemikriitilised delay start
11
Samaaegsed ja paralleelsed protsessid
Selgitus operatsioonisüsteemi siseste samaaegsuste põhjustest: Plaanur: operatsioonisüsteemi programm, mis valib vastavalt etteantud reeglitele järgmise protsessori poolt teostatava toimingu. Eelisõigus: plaanuri reeglistik, millega sunnitakse täidetav toiming vabastama protsessorit enne selle täitmise lõpetamist.. Lühim töö enne: Plaanimise algoritm pakktöötlusega süsteemides Eri protsesside samaaegset teostamist haldab operatsioonisüsteemi plaanur. Plaanur valib järgmise protsessi, mida protsessor hakkab täitma. Kui plaanimise reegel on ilma eelisõiguseta, siis täitmise protsess võib protsessoris toimuda niikaua, kui tahab. Kui plaanimise reegel on eelisõigusega, siis plaanur laseb protsessoril täita iga protsessi mingi ajaperioodi jooksul ja seejärel võtab uuesti enda kätte kontrolli süsteemi üle, et valida järgmine täitmisele kuuluv protsess. Plaanimise reeglid sõltuvad operatsioonisüsteemi liigist. Pakktöötlusega süsteemides on enimkasutatavaks reegliks SJF, mis annab prioriteedi kõige lühematele tegevustele ning ei kasuta eelisõigusi. Selline plaanimise reegel maksimeerib süsteemi läbilaskevõimet (st. protsesside arv ajaühikus). Round-robin on ennetav plaanuri algoritm, mida kasutatakse interaktiivsetes süsteemides. See teostab protsesse tsükliliselt, määrates protsessori igale protsessile ajahulga. Sel viisil saab mitu protsessi kasutada protsessorit samal ajal ja igaühele neist antakse samal tasemel teenust. Plaanur: operatsioonisüsteemi programm, mis valib vastavalt etteantud reeglitele järgmise protsessori poolt teostatava toimingu. Eelisõigus: plaanuri reeglistik, millega sunnitakse täidetav toiming vabastama protsessorit enne selle täitmise lõpetamist.. Lühim töö enne: Plaanimise algoritm pakktöötlusega süsteemides. See annab prioriteedi kõige lühematele toimingutele.
12
Samaaegsed ja paralleelsed protsessid
Round-robin planeerimine Pakktöötlusega süsteemides on enimkasutatavaks reegliks SJF, mis annab prioriteedi kõige lühematele tegevustele ning ei kasuta eelisõigusi. Selline plaanimise reegel maksimeerib süsteemi läbilaskevõimet (st. protsesside arv ajaühikus). Round-robin on ennetav plaanuri algoritm, mida kasutatakse interaktiivsetes süsteemides. See teostab protsesse tsükliliselt, määrates protsessori igale protsessile ajahulga. Sel viisil saab mitu protsessi kasutada protsessorit samal ajal ja igaühele neist antakse samal tasemel teenust.
13
Samaaegsed ja paralleelsed protsessid
Lühim töö enne ehk SJF (shortest job first) planeerimine Pakktöötlusega süsteemides on enimkasutatavaks reegliks SJF, mis annab prioriteedi kõige lühematele tegevustele ning ei kasuta eelisõigusi. Selline plaanimise reegel maksimeerib süsteemi läbilaskevõimet (st. protsesside arv ajaühikus). Round-robin on ennetav plaanuri algoritm, mida kasutatakse interaktiivsetes süsteemides. See teostab protsesse tsükliliselt, määrates protsessori igale protsessile ajahulga. Sel viisil saab mitu protsessi kasutada protsessorit samal ajal ja igaühele neist antakse samal tasemel teenust.
14
Samaaegsed ja paralleelsed protsessid
Vastastikuse välistamise probleem Kriitiline sektsioon: toimingu koodi osa, mis pöördub jagatud ressursi poole. Vastastikune välistamine: omadus, mis tagab selle, et kriitiliste sektsioonide pöördumine sama jagatud ressursi poole ei toimuks kunagi üheaegselt Semafori oleku järgi kontrollitakse kas kriitiline sektsioon on lukus Üheaegseid protsesse on kahte liiki: sõltumatud (independent) protsessid, mis üksteist kuidagi ei mõjuta ja on seetõttu täitmisel täiesti iseseisvalt ning ei mõjuta ega ole ka mõjutatud teiste protsesside töö tulemustest sellised protsesse nimetatakse tihti just paralleelseteks protsessideks ning koopereeruvad(cooperating) protsessid, mis võivad üksteise töö mõjutada ning mis seepärast peavad arvestama kõigi sellest tulenevate mõjutustega. Kui paralleelsete protsesside täitmisel ei teki erilisi probleeme, siis koopereeruvate protsessidega on olukord mõnevõrra keerulisem: need protsessid peavad küll saama omavahel suheldud, kuid endiselt peab olema tagatud erinevate protsesside andmete kaitstus teiste protsesside lubamatu pöördumise eest. Kuna arvutis on mitmeid ressursse, mille poole tohib pöörduda ainult üks protsess korraga, siis üks peamisi probleeme on vastastikuse välistuse probleem. Nimelt tihti määratakse ära kord, kus ühe protsessi poolt hõivatud ressurss ei ole kättesaadav teiste protsesside poolt. Toome siinkohal lihtsa näite, kui üks protsess kirjutab midagi mõnda faili, siis lukustatakse see fail kuni töö lõppemiseni ning ükski teine protsess sinna vahepeal kirjutada ei saa, selleks on operatsioonisüsteemis realiseeritud võimalus lukustada fail ühele protsessile. Samalaadse näite võib tuua ka klaviatuuri puhul: kui kaks või enam protsessi töötavad samaaegselt, siis klaviatuuri katkestuse saabumise puhul peab olema kindlaksmääratud, milline protsess reageerib saabunud infole. Keerulised programmid on sageli organiseeritud koopereeritud protsesside komplektina. Koopereeruvad protsessid suhtlevad andmete vahetamiseks (protsessisisene kommunikatsioon) ja toimingute õiges järjekorras teostamiseks (sünkronisatsioon). Kooperatsiooni saab saavutada kahe eri malli järgi: jaosmälu ja sõnumivahetus. Jaosmälu mallis kaks (või enam) protsessi jagavad sama mälupesa; seega väärtused, mille kirjutab üks protsess mällu on kohe nähtavad teisele; sõnumivahetuse mallis suhtlevad protsessid omavahel, kasutades selleks süsteemikutseid, mis võimaldavad neil omavahel sõnumeid vahetada. Jaosmälu malli puhul, kui kaks protsessi pöörduvad jagatud ressursi poole ilma korraliku sünkroniseeringuta, võivad nad üksteist segada ja ressursi olek võib selle tulemusel olla konfliktis. Samaaegse protsessi koodi osa, mis pöördub sama ressursi poole, nimetatakse kriitiliseks sektsiooniks. Sama ressurssi kasutavate kriitiliste sektsioonide häirete vältimiseks ei tohi neid kunagi teostada samaaegselt (vastastikune välistamine). Peamiseks vahendiks, mida operatsioonisüsteem pakub vastastikuse välistamise rakendamiseks on semafor. See koosneb staatusest ja kahest atomaarsest operatsioonist: üles ja alla. Protsess kasutab alla semafori oleku kontrollimiseks: kui see on lukustamata, siis ta lukustab semafori ning pöördub kriitilise sektsiooni poole; teisel juhul ootab protsess, kuni semafor avatakse teise protsessi poolt, mis teostab üles operatsiooni. Kriitiline sektsioon: toimingu koodi osa, mis pöördub jagatud ressursi poole. Vastastikune välistamine: omadus, mis tagab selle, et kriitiliste sektsioonide pöördumine sama jagatud ressursi poole ei toimuks kunagi üheaegselt. Atomaarne operatsioon: operatsioon, mida ei saa katkestada, see tuleb kas täielikult lõpuni viia või jätta üldse teostamata.
15
Lõime mõiste kirjeldus
Lõim (Thread): see on toiming, mida teostab protsessor, kuid erinevalt protsessist ei ole lõim seotud valitud ressurssidega, need kuuluvad protsessi juurde, mille koostiseks see lõim on. Lõime tabel: kernelis olev tabel, mis sisaldab infot kõigi süsteemis olevate lõimede kohta. Mitmelõimeline protsess (Multi-threaded process) Iga protsess koosneb vähemalt ühest lõimest, lõim (thread) on lihtsam (kergekaaluline) protsess. Protsess ja tema lõimed moodustavad tegumi (task) Riistvaratootjad on muuhulgas mõelnud välja mitmeid tehnoloogiaid lõimede töötlemise lihtsustamiseks, tuntum neist on kindlasti Inteli tehnoloogia Hyper-Threading. See on tehnoloogia, mis üht füüsilist protsessorit võimaldab operatsioonisüsteemil virtuaalselt tõlgendada kahe eraldi protsessorina ning seeläbi ühel ajahetkel võtta operatsioonisüsteemilt täitmiseks kaks erinevat lõime üheaegselt, nii saavutatakse kuni 30% jõudluse kasv. In the process model presented in the previous unit each process defines a space of resources and executes a unique sequential activity. However, in modern operating systems, the processes can organize their activities into concurrent sub-activities called threads. In this case the processes are called multi-threaded. In this model the process defines only a space of resources and threads. All the resources belonging to the process are shared by all the process threads, and the threads can use only resources belonging to the process. The simplest way to implement the threads is in user mode. In this case the threads are implemented by user-mode libraries, thus this implementation does not need any change to the kernel of the operating system. A more efficient implementation of the threads is in the kernel. In this case the operating system schedules only the threads but not the processes, and, in addition to the process table, it also keeps a thread table. Each thread in the system is associated with an entry (called thread descriptor) in this table. Differently than the case in which the processes are single-threaded, in this case a process descriptor contains only information about the resources belonging to the process (such as memory allocated or files opened by the process), while the information about process execution is now spread in the thread descriptors. A thread descriptor maintains all the information necessary to the operating system for the management of a thread. In particular it contains the thread state and a copy of the values of the thread register, as they were the last time the thread was in execution. The thread descriptor is updated whenever the thread execution is interrupted (and hence the thread state transitions from execution to blocked or ready), so that the thread execution can later be started again as if the thread had never been interrupted. Thread : It is an activity executed by the processor, but, differently from the processes, a thread is not associated to the resources acquired, which belong to the process containing the thread. Thread table : A table in the kernel that contains the information about all the threads in the system. Thread descriptor : a data structure that contains the information about a specific thread. The thread descriptor is an entry of the process table.
16
Kontekstkommunikatsioon
Täitmisel oleva protsessi vahetust koos sinna juurde kuuluvate tegevustega nimetatakse kontekstivahetuseks. Kontekstkommutatsiooni ülesandeks on eemaldada protsessorist täidetav protsess (nimetame seda protsessiks A) ning taastada protsessor mingi teise protsessi olekusse (nimetagem seda protsessiks B). Kuid selle täitmisel protsess A on muutnud oma konteksti, see tähendab käsuloenduri, protsessori oleku registrite ja kõikide üldregistrite väärtusi. Seega protsess A tuleb protsessorist eemaldada ettevaatlikult. See operatsioon sisaldab koopia tegemist protsessi kontekstist protsessi A deskriptoris selleks, et oleks võimalik hiljem taastada konteksti protsessoris, kui plaanur otsustab protsessi täitmist taasalustada. Pärast protsessi A eemaldamist protsessorist taastab kontekstkommutatsioon protsessoris protsessi B. Sellel eesmärgil loeb see B konteksti oma protsessi deskriptorist ja kopeerib üks ühele kõik registri väärtused vastavatesse protsessori registritesse. Viimane kopeeritav väärtus on käsuloendur. Kui see register on taastanud protsessi B uuesti samas olekus, milles see oli katkestamisel, saab see jätkata oma tööd nagu midagi poleks katkestatud. Käsuloendur: protsessori register, mis sisaldab järgmise käsu mäluaadresse.
17
Mälu ja salvestuste haldamine
Muutmälu ehk operatiivmälu ehk suvapöördusmälu (random access memory) Saab lugeda ja kirjutada Ajutine mälu Maht piiratud ja ei jagu kõigile protsessidele Virtuaalmälu Mälu kõvakettal Sinna laetakse plokid, mis pole aktiivselt kasutusel Ressursse hallatakse riistvaraliselt Eri protsesside mäluruumid on kaitstud, et tagada andmete konfidentsiaalsus Muutmälu ehk operatiivmälu ehk põhimälu ehk suvapöördusmälu (ka: RAM (inglisekeelne lühend sõnadest random access memory) on digitaalseadmetel mälu, kust saab andmeid lugeda, kustutada ja kuhu saab andmeid juurde kirjutada. Operatiivmälu sisu on reeglina ajutise iseloomuga, see tähendab, et kui seadmel vool välja lülitada , siis läheb kogu info kaotsi. Muutmälu meediavormingutena on näiteks arvutis muutmälu plokid. et.wikipedia.org Kuna arvutis on piiratud hulk operatiivmälu, tingimustes kus töötavaid protsesse on rohkem kui üks ja kus kõik protsessid vajavad töötamiseks mingit hulka operatiivmälu tuleb operatiivmälu erinevate protsesside vahel jagada. Mäluhaldusega tuleb tagada, et iga töötav protsess saab oma kasutusse vajaliku hulga mäluruumi ning vajadusel suunab mäluhaldur vähemkasutatavad protsessid kasutama operatiivmälu asemel kasutama saalemälu. Saalemälu ehk virtuaalmälu on võimalus, kus operatiivmälu laiendusena kasutatakse ära osa kõvakettaruumist. Sellisel juhul jäetakse protsessile mulje, et vajalik info asub operatiivmälus, tegelikult kirjutatakse ja loetakse seda hoopis kõvakettalt. Erinevates operatsioonisüsteemides on see funktsioon realiseeritud erinevalt: UNIXi? laadsetes operatsioonisüsteemides kasutatakse selleks reeglina spetsiaalselt selleks otstarbeks eraldatud kõvaketta loogilist osa ehk partitsiooni, Microsoft Windows operatsioonides samal otstarbel kasutuses eraldi fail või failid. Ressursside haldamist teostatakse tihti kasutades riistvaralisi vahendeid: näiteks on riistvaras realiseeritud võimalus kaitsta erinevate protsesside poolt hõivatud mäluruumi nii, et teised protsessid sinna ligipääsu (või kirjutamisõigust ei oma), samuti on saalemälu tugi riistavaraline jne. Lihtsustatult võib seega öelda, et kasutaja andmed on tihti operatsioonisüsteemi poolt kaitstud kasutades riistvaralisi vahendeid.
18
Mälu ja salvestuste haldamine
Virtuaalmälu mõiste ja eesmärk Virtuaalmälu on mälu haldamise tehnika, millega suurendatakse põhimälu mahtu. Selle puhul on igal protsessil virtuaalse mälu aadressiga määratud ruum, mis võrdub protsessori maksimaalse adresseeritava mahuga ning mis ei sõltu põhimälu mahust. Näiteks 32-bitiste aadressidega süsteemis on adresseeritav mälumaht 4 GB. Lehekülgede saalimine on enam kasutatav virtuaalmälu meetod. Lehekülgede saalimisel jagatakse nii füüsiline kui virtuaalmälu fikseeritud suurusega osadeks, mida nimetatakse plokkideks (või kaadriteks) ja lehekülgedeks. Kui protsessi täidetakse, siis ainult kasutuses olevad leheküljed on tegelikult laetud füüsilisse mällu (üks lehekülg bloki kohta), samas ülejäänud lehekülgi hoitakse kõvakettal. Arvestama peab ka sellega, et järjestikused leheküljed ei pea tingimata olema laetud järjestikuste plokkidena. Mäluhaldur vahetab leheküljed kõvakettalt mällu ja vastupidi, vastavalt protsessi viidetele vastavatele lehekülgedele. Kuid protsessid ei ole sellest teadlikud ja need viitavad virtuaalmälu aadressidele nii, nagu oleksid need kõik laetud põhimällu . Võrreldes mäluhalduri töömeetodeid virtuaalmälu mitte määravate meetoditega, siis lehekülgede saalimise meetodil on järgmised eelised: Protsess ei vaja täitmiseks täielikku mällu laadimist, piisav on laadida mällu vaid need leheküljed, mida ta momendil tegelikult kasutab. See tähendab, et laadimisprotsess on kiirem ja need leheküljed, mida kunagi ei kasutata, neid ka kunagi mällu ei salvestata. Protsessi maksimaalne maht ei ole piiratud füüsilise mälu mahuga, piirang tuleneb vaid maksimaalsest adresseeritava mälu mahust. Mälulehekülgede saalimine (SWAP) Tehnoloogia tööpõhimõte on tegelikult lihtne: kuna protsess ei tea nii kui nii kus füüsiliselt leheküljed asuvad, siis võib operatsioonisüsteem vähemkasutatavad (või kõige vanemad, oleneb kasutatavast algoritmist) leheküljed mälust kõvakettale kirjutada ning kasutada vabanenud mäluosa mingite muude andmete jaoks. Kui nüüd protsessil tekib vajadus mälust väljakirjutatud lehekülje järgi, siis tekib leheküljepöördusviga (page fault), seejärel otsustab operatsioonisüsteem kas selline lehekülg on olemas ning kui on tuleb leida vaba mäluruum (vajadusel mõni teine lehekülg mälust välja saalida) ning vajalik lehekülg mällu tagasi tuua. Kui vajalik lehekülg on mällu tagasi toodud, siis käivitatakse viimane käsk uuesti ning protsess saab täitmiseks vajalikud andmed.
19
Mälu ja salvestuste haldamine
Kuidas opsüsteem haldab virtuaalmälu kasutamist mass-salvestuse ja mälu riistvara kaudu Virtuaalaadress = lehekülje aadress+nihe Lehekülgede tabel hoiab vastavust lehekülgede ja plokkide vahel, igal protsessil oma – lehekülje deskriptor Mäluhaldusplokk: riistvara komponent, mis tõlgib virtuaalsed aadressid füüsilisteks aadressideks Protsessor genereerib lehekülgede saalimise abil aadressid, mis viitavad pigem virtuaalmälule kui füüsilisele mälule (seetõttu nimetatakse neid aadresse virtuaalaadressideks). Seepärast tuleb ka iga virtuaalaadress tõlkida füüsiliseks aadressiks (st. põhimälus olevaks aadressiks). Selleks on virtuaalaadress jagatud kaheks väljaks: lehekülje aadress ja nihe lehekülje sees. See tähendab, et virtuaalaadress kuulub leheküljele ja juurdepääs leheküljele on vajalik, et leida lehekülge majutav plokk Vastavaust lehekülgede ja plokkide vahel hoitakse lehekülgede tabelis. Igal protsessil on oma tabel, mida säilitatakse põhimälus ja mis sisaldab iga lehekülje kohta üht kannet ja seda tabelit nimetatakse lehekülje deskriptoriks. Kui lehekülg laetakse põhimällu, siis deskriptor sisaldab vastava ploki aadressi. Seega virtuaalaadressi x tõlkimine paljastab lehekülje p aadressi virtuaalaadressist x ja see kasutab lehekülge p pöördumiseks lehekülgede tabelis oleva lehekülje deskriptori poole. Deskriptorist paljastab ta ploki aadressi, mis omakorda on kombineeritud nihkega ja võimaldab leida füüsilise aadressi. Lehekülgede saalimise rakendamine peaks lahendama kaks põhilist probleemi: Aadresside teisendamine peab olema kiire; Lehekülje tabel võib olla väga suur. Esimese probleemi lahendamiseks teisendab aadresse riistvara komponent, mida nimetatakse MMU. MMU sisaldab viimati kasutatud lehekülje deskriptoritest koosnevat puhvrit, nii et saab viivitamatult teisendada virtuaalaadresse vastavalt puhvris sisalduvatele deskriptoritele. Teise probleemi lahendamiseks kasutavad opsüsteemid lehekülgede tabelite alternatiivseid kohandusi, üks sellistest lahendustest on tuntud pööratud lehekülje tabel. Pööratud lehekülje tabel on ühtne tabel kõigi protsesside jaoks. See tabel sisaldab deskriptoreid iga ploki kohta (seega sellele vajalik ruum on proportsionaalne põhimälu mahuga) ning iga ploki deskriptor sisaldab lehekülje aadressi ja protsessi identifikaatorit. Lehekülgede tabel: tabel, kus säilitatakse lehekülgede ja mäluplokkide vahelist vastavust. Lehekülje deskriptor: lehekülje tabeli kanne, mis sisaldab informatsiooni lehekülje kohta. Mäluhaldusplokk: riistvara komponent, mis tõlgib virtuaalsed aadressid füüsilisteks aadressideks.
20
Mälu ja salvestuste haldamine
Virtuaalaadress = lehekülje aadress+nihe The translation from logical to physical address is done by the processor. A 32 bit logical address is divided in to three parts as shown below. The processor loads the physical address of the page 10 bits 10 bits 12 bits directory base stored in CR3. It then uses the upper 10 bits from the logical address as an index in the Page directory. This gives the processor a page directory entry (PDE) which points to a Page Table. The next 10 bits are used as an index in the page table. Using these 10 bits, it gets a page table entry (or PTE) which points to a 4KB physical page. The lowest 12 bits are used to address the individual bytes on a page. A virtual address does not represent the actual physical location of an object in memory; instead, the system maintains a page table for each process, which is an internal data structure used to translate virtual addresses into their corresponding physical addresses. Each time a thread references an address, the system translates the virtual address to a physical address. Adjusting the Virtual Address Space for 32-bit Windows You can use the following command to set a boot entry option that configures the size of the partition that is available for use by the process to a value between 2048 (2 GB) and 3072 (3 GB): BCDEdit /set increaseuserva Megabytes
21
Mälu ja salvestuste haldamine
Selgitus, mis on “thrashing” ja kuidas seda ületada Olukorda, kus protsess tegeleb peaasjalikult mälulehekülgede saalimisega, nimetatakse pukslemiseks (thrashing) Lehekülje tõrge (page fault) Thrashing: patoloogiline olukord, kus opsüsteem kasutab enamuse andmetöötluse aega jätkuvate lehekülgede tõrgetega tegelemiseks, nii et protsessid ei suuda oluliselt oma ülesannete täitmisega edeneda. Lehekülje tõrge esineb siis, kui protsess genereerib virtuaalaadressi, mis vastab sellisele leheküljele, mida ei ole põhimällu laetud. Kui esineb lehekülje tõrge, käivitab opsüsteem lehekülje tõrke haldamise protseduuri, mis blokeerib protsessi, mis on genereerinud virtuaalse aadressi, leiab kõvakettalt nõutud lehekülje ning laeb selle põhimälus olevasse vabasse plokki. Seejärel värskendab lehekülje tõrke haldur lehekülje deskriptori ploki aadressiga ning käivitab blokeeritud protsessi, nii et see protsess saab jätkata oma täitmist nii, nagu see lehekülg oleks juba põhimällu laetud. Kui põhimälus ei ole uue lehekülje laadimiseks vabu plokke, siis kasutab opsüsteem lehekülje asendamise algoritmi, mis valib lehekülje, mida on võimalik ploki vabastamiseks mälust kõvakettale tõsta. Lehekülje valimine mälust eemaldamiseks on üpris kriitiline. Tegelikult kui eemaldatud leheküljele pöördutaks üpris varsti, siis opsüsteemil on peagi vaja tegeleda uue lehekülje tõrkega ja peab äsjaeemaldatud lehekülje taas põhimällu laadima. Sel põhjusel valib lehekülje asendamise algoritm lehekülje, mis on väljaspool protsessi töökäsustikku, st. sellise lehekülje, mida protsess enam ei kasuta. Kuid on juhtumeid, mille puhul plokkidest ei piisa, et hoida põhimälus kõigi protsesside töökäsustikke. Kui selline olukord tekib, siis sageli protsessid viitavad lehekülgedele, mis ei ole mällu laetud ning süsteemis tekib suurel hulgal lehekülgede tõrkeid. Lehekülje tõrgete haldur on väga kallis kaotatud aega silmas pidades, sest tuleb teostada kõvaketta poole pöördumisi lehekülgede laadimiseks ja eemaldamiseks, seega süsteem tegeleb pidevate lehekülgede tõrgetega ja protsessid ei liigu oma ülesannete lahendamisel eriti edasi. Sellist patoloogilist olukorda tuntakse nime thrashing. Sellise olukorra lahendamiseks peaks süsteem vähendama lahendatavate protsesside arvu. Seda saab teha protsessi blokeerimisega ja ajutise eemaldamisega kõvakettale, et vabastada mõne plokid põhimälus. Thrashing: patoloogiline olukord, kus opsüsteem kasutab enamuse andmetöötluse aega jätkuvate lehekülgede tõrgetega tegelemiseks, nii et protsessid ei suuda oluliselt oma ülesannete täitmisega edeneda.
22
Mälu ja salvestuste haldamine
Kuidas mälu hierarhilisuse kontseptsioon mõjutab programmeerimist virtuaalmälu puhul määrab opsüsteem kindlaks kõige sagedamini kasutatavad koodi osad ja andmed ning viib nad kiirematesse mäludesse. Andmete ja koodi otsing aeglasemates mäludes ja nende kopeerimine kiirematesse on kasutaja ja rakenduste jaoks läbipaistev. Sel viisil jätab opsüsteem kasutajale mulje suurest, kiirest ja odavast mälust. Sellist süsteemi mälude ülesehitust nimetatakse mälude hierarhiaks. Tuleb siiski märkida, et rakendused võivad alati otseselt kasutada mõnda süsteemi mäludest, et laiendada oma salvestusmahtu (vt. C “Failisüsteemi funktsioonide kirjeldus”). Seepärast mõned mälud (muuhulgas kettad) on jagatud kaheks sektsiooniks: üks sektsioon hõlmab virtuaalmälu kasutatavat mälumahtu (mida nimetatakse tugimäluks) ja teine otseselt juurdepääsetav failisüsteemi kasutav sektsioon.
23
Mälu ja salvestuste haldamine
Failisüsteemi komponendid Fail: infoüksus, mis on püsivalt salvestatud kõvakettale. Kataloog: kaust, mis sisaldab faile ja alamkatalooge. Kataloogid on vajalikud failide süsteemseks ja kasutaja vajadustele vastavaks paigutamiseks Failisüsteemi peamised ülesanded on: Andmete hoidmine Failide struktureerimine Andmetele õigustekohase ligipääsu tagamine Andmete kaitse Erinevate andmekandjatest ühetaolise keskkonna loomine Lihtsalt öeldes kirjeldab failisüsteem kuidas operatsioonisüsteem haldab faile jagades neid andmeblokkidesse. Erinevad operatsioonid kasutavad erinevaid failisüsteeme, mis võivad üksteisest märgatavalt erineda nii omaduste kui ka funktsioonide poolest. Failisüsteem on opsüsteemi komponent, mis vastutab andmete salvestamise eest püsimäluseadmetes (kõvakettad, optilised kettad, USB mälupulgad jne.). See refereerib kõiki kõvaketaste madaltaseme andmeid ja võimaldab kasutajal tõhusalt hallata ja korraldada ketastel olevat informatsiooni. Sellel eesmärgil määratleb failisüsteem failid ja kaustad. Failid on püsivad informatsiooni ühikud, mis on seotud failinimega. Kataloogid on kaustad, mis sisaldavad faile ja alamkatalooge ning nende ülesandeks on võimaldada operatsioonisüsteemil ja kasutajatel efektiivselt faile hierarhilistesse struktuuridesse paigutada. Fail: infoüksus, mis on püsivalt salvestatud kõvakettale. Kataloog: kaust, mis sisaldab faile ja alamkatalooge. Kataloogid on vajalikud failide süsteemseks ja kasutaja vajadustele vastavaks paigutamiseks Kataloogid on üldiselt korraldatud puukujulisse struktuuri. Puul on juurkataloog (mis Unix-süsteemides on tähistatud sümboliga “/”) ja teised kataloogid on juurkataloogi harud (kui need sisalduvad otseselt juurkataloogis) või juurkataloogist lähtuvad. Seega peale ainsa erandi juurkataloogi, on igal failil või kataloogil vanem, st. kataloog, kuhu ta kuulub. Failisüsteem haldab vastavust failide ja kataloogide abstraktse mudeli ja nende tegeliku kettal oleva paigutuse vahel, hoides kettal vastavat infostruktuuri. Need struktuurid sisaldavad informatsiooni, mis on vajalik failide ja kataloogide leidmiseks kettalt. Mõnikord vigade ja rikete tõttu need andmestruktuurid võivad muutuda mittevastavateks (näiteks kui arvuti on välja lülitatud hetkel, kui failisüsteem teostab mingit operatsiooni). Selle vältimiseks on opsüsteemil vahendid, et kontrollida failisüsteemi terviklikkust ning teha parandusi Unix: populaarne opsüsteem, mis loodi aastate alguses ja mis on ka Linuxi aluseks.
24
Mälu ja salvestuste haldamine
Failisüsteemi funktsioonide kirjeldus Failisüsteem on opsüsteemi komponent, mis vastutab andmete salvestamise eest püsimäluseadmetes (kõvakettad, optilised kettad, USB mälupulgad jne.). See refereerib kõiki kõvaketaste madaltaseme andmeid ja võimaldab kasutajal tõhusalt hallata ja korraldada ketastel olevat informatsiooni. Sellel eesmärgil määratleb failisüsteem failid ja kaustad. Failid on püsivad informatsiooni ühikud, mis on seotud failinimega. Kataloogid on kaustad, mis sisaldavad faile ja alamkatalooge ning nende ülesandeks on võimaldada operatsioonisüsteemil ja kasutajatel efektiivselt faile hierarhilistesse struktuuridesse paigutada. Fail: infoüksus, mis on püsivalt salvestatud kõvakettale. Kataloog: kaust, mis sisaldab faile ja alamkatalooge. Kataloogid on vajalikud failide süsteemseks ja kasutaja vajadustele vastavaks paigutamiseks Kataloogid on üldiselt korraldatud puukujulisse struktuuri. Puul on juurkataloog (mis Unix-süsteemides on tähistatud sümboliga “/”) ja teised kataloogid on juurkataloogi harud (kui need sisalduvad otseselt juurkataloogis) või juurkataloogist lähtuvad. Seega peale ainsa erandi juurkataloogi, on igal failil või kataloogil vanem, st. kataloog, kuhu ta kuulub. Failisüsteem haldab vastavust failide ja kataloogide abstraktse mudeli ja nende tegeliku kettal oleva paigutuse vahel, hoides kettal vastavat infostruktuuri. Need struktuurid sisaldavad informatsiooni, mis on vajalik failide ja kataloogide leidmiseks kettalt. Mõnikord vigade ja rikete tõttu need andmestruktuurid võivad muutuda mittevastavateks (näiteks kui arvuti on välja lülitatud hetkel, kui failisüsteem teostab mingit operatsiooni). Selle vältimiseks on opsüsteemil vahendid, et kontrollida failisüsteemi terviklikkust ning teha parandusi Unix: populaarne opsüsteem, mis loodi aastate alguses ja mis on ka Linuxi aluseks.
25
Mälu ja salvestuste haldamine
Levinud failisüsteemid FAT (File Allocation Table) FAT32 4GB NTFS (New Technology File System) ACL Pakkimine Krüpteerimine 16EB logiv EXT3 Linux FAT (File Allocation Table) on Microsofti operatsioonisüsteemides kasutatav failisüsteem, mida kaasaegsetes Micosofti operatsioonisüsteemides ei soovitata kasutada. Kuid kaheldamatult on tegemist ühe levinuma failisüsteemiga mobiilsetes mäluseadmetes (USB-välkmälud, MP3 mängarid, flopid jne). Tegelikult on FAT failisüsteemil olemas tervelt kolm levinud versiooni: FAT32 failisüsteemi maksimaalne loogilise ketta suurus on kuni 8TB, kuid samas on piiratud maksimaalne faili suurus failisüsteemis 4GB suurusega, mis kaasaegsete multimeediumrakenduste kasutamisel saab kiirelt vägagi häirivaks. NTFS (New Technology File System) on tänapäeva Microsofti operatsioonisüsteemides enim kasutatav failisüsteem. NTFS failisüsteemis on failidel olemas kasutajaõigused, võimalus failisüsteemi tasemel failide pakkimiseks või krüpteerimiseks, maksimaalne loogilise ketta ja faili suurus on 16EB ( TB). NTFS on logiv failisüsteem. NTFS sisaldab mitmeid kaasaegsele failisüsteemile iseloomulike omadusi, näiteks võimaldab NTFS ühendada (mount) uue loogilise ketta olemasoleva loogilise ketta kataloogi külge, võimaldab failisüsteemi indekseerida jne. EXT2 on Linux operatsioonisüsteemides kasutatav failisüsteem. Ext2 failisüsteemis on failidel olemas failiõigused ning maksimaalne lubatud failisuurus on 2 TB ning loogilise ketta maht 32 TB. Failisüsteemi puuduseks on nõrk tõrketaluvus: kuna tegemist ei ole logiva failisüsteemiga, siis süsteemi tõrke korral võib juhtuda et failisüsteem (või selle osa) rikneb. Ext2 ning ka paljude teiste Linuxi operatsioonisüsteemis kasutatavate failisüsteemide omapära seisneb selles, et kataloogid on teostatud nagu failid, mis viitavad teistele failidele. Ext3 on ext2 failisüsteemi edasiarendus, lisatud on logiva failisüsteemi tugi. Enamik eeliseid ja puuduseid on samad, mis ext2 failisüsteemil, kui parandatud on just tõrketaluvust. Enamik tänapäeva Linuxi distributsioone kasutab just etx3 failisüsteemi.RaiserFS?on samuti Linux operatsioonisüsteemides kasutatav logiv failisüsteem. RaiserFS? failisüsteemis on failidel olemas failiõigused ning maksimaalne lubatud failisuurus on 8 TB ning loogilise ketta maht 32 TB. Üldiselt loetakse RaiserFS? failisüsteemi kiiremaks kui ext2 ja ext3 failisüsteeme, kuid samas on RaiserFS? failisüsteemil olnud üsna suuri probleeme stabiilsusega.HFS+ (tuntud ka kui Mac OS Extended)on tänapäeva MacOS?operatsioonisüsteemides kasutatav failisüsteem. HFS+ failisüsteemis on failidel olemas failiõigused ning maksimaalne lubatud failisuurus on 8 EB ning loogilise ketta maht 32 EB. Failisüsteemi omapära seisneb selles, et failidega seotud meta-andmeid, failitabelit ja kataloogifaili sisu hoitakse B* puus. Sama failisüsteemi kasutab ka Apple Corp toodetud meediamängarid iPod (samas võivad kasutada ka FAT32 failisüsteemi).
26
Turvalisus ja kaitse Konfidentsiaalsuse, puutumatuse ja kättesaadavuse mõiste Turvalisus (Security): üldine süsteemi kaitse. See võib hõlmata nii tehnilisi kui juriidilisi/administratiivseid aspekte. Kaitse (Protection): kompleks mehhanisme arvutis, mida saab kasutada määratud turvalisuse taseme tagamiseks. Konfidentsiaalsus (Confidentiality): süsteemi omadus, mis hoiab ära autoriseerimata andmetele ligipääsu. Puutumatus (Integrity): süsteemi omadus, mis hoiab ära igasuguste seadusliku omaniku poolt autoriseerimata muudatuste tegemise salvestatud andmetes. Kättesaadavus (Availability): süsteemi omadus, mis garanteerib autoriseeritud kasutajate juurdepääsu andmetele isegi rikete ja rünnakute puhul. Need meetmed peavad pakkuma erinevaid juurdepääsutasemeid, et valikuliselt anda kohaseid õigusi igale kasutajale, samas peavad need olema dünaamilised, st. neid peab saama muuta vastavalt kasutaja privileegide muutustele. Kaitsemehhanisme saab kasutada erinevaid turvameetodeid rakendades. Üldiselt on turvalisusel kolm eesmärki: Konfidentsiaalsus, puutumatus ja kättesaadavus. Andmete konfidentsiaalsus on andmete legaalse omaniku võimalus valikuliselt anda või keelata teatud kasutajatel juurdepääs andmetele. Andmete puutumatus tähendab seda, et autoriseerimata kasutajad või süsteemi tõrked ei saa andmeid märkamatult muuta, kahjustada või kustutada Andmete kättesaadavus tähendab seda, et süsteem tagab andmete seaduslikule omanikule juurdepääsu andmetele ka rikete või pahatahtlike väliste jõudude rünnakute korral. Teiste sõnadega - pahatahtlik kasutaja või rike ei saa takistada andmetele juurdepääsu. Rünnakut, millega üritatakse takistada legaalse omaniku liigipääsu andmetele, nimetatakse teenuste tõkestamiseks. Konfidentsiaalsus: süsteemi omadus, mis hoiab ära autoriseerimata andmetele ligipääsu. Puutumatus: süsteemi omadus, mis hoiab ära igasuguste seadusliku omaniku poolt autoriseerimata muudatuste tegemise salvestatud andmetes. Kättesaadavus: süsteemi omadus, mis garanteerib autoriseeritud kasutajate juurdepääsu andmetele isegi rikete ja rünnakute puhul.
27
Turvalisus ja kaitse Turvaohud
Füüsiline risk: vargus, riistvara rike, häving Lukud, räkid RAID UPS Dubleeritud seadmed Kasutajapoolne risk: risk arvuti puudulikust turvamisest Arvutiviirused, pahavara, võrguründed Varundus Viirusetõrje tulemüür Turvaohte on väga erinevaid. Laia kõlapinda on leidnud tihti just arvutivõrgu abil toimuvad ründed arvutisüsteemidele ning arvutiviirused, kuid tihti kipuvad kasutajad unustama arvuti füüsilist turvalisust. Füüsiline risk: arvutisüsteem võidakse varastada, hävitada; arvutisüsteem muutub kasutatamatuks riistvara rikke või elektrikatkestuse tõttu jne. Iga arvuti, mille korral on võimalik volitamata füüsiline ligipääs on potentsiaalne turvaoht. Pea iga kaasaegse operatsioonisüsteemi turvavahendid on vaikimisi seades turvamata või lihtsalt murtavad füüsilise ligipääsu korral. Seega peab olema arvutisüsteemile füüsiline ligipääs ainult selleks volitatud isikutel. Serveriruum peab olema eriti range kontrolli all, kindlasti tulekustutussüsteemiga varustatud, ventileeritav ja lukustatav ruum. Riistavara abil on võimalik tagada ka teatud tasemeni tõrkekindlus riistvararikke vastu. Selleks dubleeritakse võimalusel vastavad süsteemid. Tuntum selline lahendus on kindlasti RAID (redundant array of inexpensive disks), mis võimaldab muuhulgas mitme kõvaketta kasutamisel tõsta oluliselt tõrkekindlust ja vajadusel säilitab seeläbi arvutisüsteemitöövõime ja andmed ka kõvaketta tõrke korral. Kaasaegsetel tõrkekindlatel arvutisüsteemidel on tihti ka dubleeritud protsessorid, mälu, toiteplokid jne. Kõige lihtsam turvarisk on kaheldamatult elektrikatekestus, selle vältimiseks on lihtsamatel juhtudel kasutusel katkematutoiteallikas ehk UPS (Uninterruptible Power Supply) . UPS on oma olemuselt suure mahutavusega akumulaator, mis võimaldab arvutisüsteemi töö jätkumise ka elektrikatkestuse korral. Kõige levinumad on lokaalsed UPS seadmed, mis ühendatakse mõne konkreetse arvutisüsteemi külge ja mis tagavad sellisel juhul selle konkreetse arvutisüsteemi töö. On olemas ja ka kasutusel ka suuremad UPS seadmed, milliste abil on võimalik tagada ka mõne ruumi või suisa hoone tõrkekindlus elektrikatkestuse korral. Eriti missioonikriitilistel asutustel on peale UPS seadme kasutusel ka oma elektrigeneraatorid, mis käivituvad elektrikatkestuse tekkimisel. Kasutajapoolne risk: kasutaja, kellel on liig suured volitused on samuti turvarisk, seda eriti juhul kui arvutisüsteem ei toeta kasutajaõiguseid või on muu moel kasutajapoolse rünnaku või väärkasutamise vastu turvamata. Vanemates operatsioonisüsteemides puudusid tihti võimalused kasutajate eristamiseks või nende volituste piiramiseks. Sellised operatsioonisüsteemid on tänases mõttes täiesti ebaturvalised. Kõik kaasaegsed operatsioonisüsteemid sisaldavad vahendeid kasutajate eristamiseks, tuvastamiseks, autentimiseks ning nende õiguste piiramiseks. Uusimates operatsioonisüsteemides ei lubata kasutajaid tihti ilma tungiva vajaduseta operatsioonisüsteemi kasutada süsteemihalduri õigustes, kasutajale antakse süsteemihalduri õigused vaid ainult nende tegevuste teostamiseks, kus süsteemihalduri volitused on tõesti vajalikud. Nii püütakse välistada ka olukorda, kus kasutaja poolt tahtlikult või tahtmatult käivitatud pahavara ei saa teostada tegevusi (süsteemi kahjustamist) süsteemihalduri volituste abil. Ühed kaasaja suurimad turvaohud moodustavad kindlasti arvutiviirused, pahavara ja võrguründed. Võrguründeid selles moodulis ei käsitleta. Turvariskide maandamiseks kasutatakse tagavarakoopiaid (backup) ehk varundamist. Kui mõni risk realiseerub on võimalik tagavarakoopiate olemasolul andmed taastada. Kui süsteemi töövõime on kriitilise tähtsusega, siis peavad tagavarakoopiad olema kättesaadavad koheselt ehk sellisel juhul peab varundus olema riistavaraliselt teostatud nii, et andmed on tagavarakoopiatelt kiirelt (soovitavalt reaalajas) taastatavad. Enamik kaasaegseid operatsioonisüsteeme sisaldavad endas varundus ja taastusvahendeid.
28
Turvalisus ja kaitse Opsüsteemis kasutatavate kaitsemehhanismide kirjeldus Kasutaja režiim: protsessori olek, kus mõned operatsioonid ei ole lubatud. Halduri režiim: protsessori olek, kus lubatud on mistahes operatsioon ja kus on võimalik ligipääs süsteemi ressurssidele. Krüptograafia: sõnumi teisendamine krüpteeritud sõnumiks, kasutades salastatud võtit. Andmekrüpteerimise standard: sümmeetriline krüptograafiline süsteem Joonista tahvlile pilt sümmeetrilisest krüpteerimisest. The cryptography mechanism relies on the secrecy of the keys to ensure the secrecy of the encrypted messages, while the encryption and decryption algorithms are generally public. In a cryptographic system the encryption and decryption keys are bond in a mathematical relation. If making public a key may compromise the secrecy of the other key (a case is if the two keys are the same), thus it is necessary to keep both of them secret, and the cryptographic system is said to be symmetric. The DES is an example of a symmetric cryptographic system where the encryption and decryption keys are sequences of 54 bits. The messages are encrypted in bunches of 64 bits, thus longer messages must be split in bunches of 64 bit to be encrypted Data Encryption Standard : a symmetric cryptographic system.
29
Turvalisus ja kaitse Opsüsteemis kasutatavate kaitsemehhanismide kirjeldus Mittesümmetriline krüpteerimine RSA: avaliku võtmega krüptograafiline süsteem. See nimetus tuleb kolme selle autori nimede esitähtedest: R. Rivest, A. Shamir e L. Adelman. Digitaalallkiri: süsteem, mis võimaldab vastuvõtjal tuvastada saatja identiteeti.
30
Turvalisus ja kaitse Mõista identifitseerimise ja autentimise erinevust Kasutaja identifitseerimine: kasutajanime, isikukoodi, jne järgi tuleb info, kes kasutaja väidab ennast olevat Kasutaja autentimine: kasutaja tegeliku isiku tuvastamine Midagi, mida kasutaja teab Midagi, mis kasutajal on Miski, mis kasutaja on Tugev autentimine kasutades avaliku võtme krüpterimisstruktuuri ehk kontrollides kasutaja digitaalset allkirja Kasutaja autoriseerimine: kasutajale ressurssidele juurdepääsu lubamine Hea parool (näiteks juhuslik tähekombinatsioon) on piisavalt turvaline, kuid sageli eelistavad kasutajad paroole, mida on lihtsam meelde jätta (nagu näiteks tähtsad kuupäevad). Neid paroole on lihtne aimata ja on olemas andmebaasid levinumatest paroolidest ning programme, mis kasutavad neid andmebaase interneti kaudu ebaseaduslikeks sissetungides arvutisüsteemidesse. Parooli võib paljastada visuaalse või elektroonilise jälgimise abil: töökaaslane võib näha parooli selle sisestamisel klaviatuurilt või võidakse kasutada programmi, mis meenutab autentimise protseduuri nii, et kasutaja paljastab oma parooli tahtmatult ise.. Kõige turvalisemates süsteemides on parooli kasutamine tavaliselt kombineeritud mõne teise autentimise viisiga. Autentimise tehnikate kirjeldus ja "tugeva" autentimise määratlus Sümmeetrilised krüptograafilised süsteemid on arvuti seisukohast tõhusad. Kuid need ei sobi tõhusaks autentimiseks. Näiteks olgu siinkohal toote ostmine internetist krediitkaardi abil: Kui ostja ja müüa on eelnevalt kokku leppinud sümmeetrilistes võtmetes, siis sõnumit, mis sisaldab kaardi koodi, on võimalik avada sümmeetrilise krüptograafiaga ja see garanteerib nii sõnumi autentsuse kui puutumatuse. Kuid võtmete vahetamine kahe partneri vahel on kriitiline: Ei ole võimalik lihtsalt saata võtit, sest mõni kolmas isik saab võtme vahelt haarata ja seejärel haarata oma valdusse krediitkaardi koodi ning selle dekrüptida. Ilmselgelt see probleem on seotud kahe partneri autentimise ja konfidentsiaalsusega, tegelikult peab kumbki partner veenduma, et ta vahetab võtmeid teise partneriga ja et võtmeid ei ole anastanud keegi kolmas. Efektiivne lahendus oleks kasutada muud turvalist kanalit võtmete vahetamiseks, kuid tõhusamad mehhanismid kasutavad ära avaliku võtme krüpteerimist.
31
Turvalisus ja kaitse Kasutaja autoriseerimine
Pääsuloend (Access control list): Pääsuloend on seotud ressursiga ja sisaldab kasutajate loendit, kellel on lubatud pääs ressursile ja loetelu lubatud operatsioonidest Võimekuste loetelu (List of capabilities): sisaldab loetelu ressurssidest, millele kasutajal on lubatud ligipääs koos lubatud operatsioonide loeteluga
32
Turvalisus ja kaitse Andmete varundamine ja taastamine
Varundamine: andmetest koopia tegemine. Taastamine: andmete varukoopia otsing ja ennistamine. Räägi erinevatest varundamise liikidest ja arhiivibitist. Failisüsteemi snapshoti mõiste. Juhuslik andmete kaotsiminek on väga levinud, sest seda võivad põhjustada riistvara rikked (näiteks kõvaketta rike), tarkvara rikked (näiteks programmis olev viga võib kahjustada dokumenti), inimlikud vead (nagu kogemata faili kustutamine) või äärmuslikes tingimustes suuremad õnnetused, mis füüsiliselt lõhuvad arvutit või selle püsimäluseadmeid. Kõigi selliste juhtumite tulemusel võivad andmed muutuda kas ekslikeks või üldse kaotsi minna. Juhusliku andmete kaotsimineku kaitsmiseks tehakse perioodiliselt varukoopiaid kõvakettal olevatest failidest mingile teisele mäluseadmele, näiteks magnetlindile või DVD-kettale. Tavaliselt lisatakse igale andmetest tehtud varukoopiale selle tegemise kuupäev ja kellaaeg, nii et seda saab taastada, st. vajadusel välja kutsuda ja ennistada. Varukoopia tegemine tähendab kõigi kõvakettal olevate failide kopeerimist teisele mälukandjale ja see on üldiselt väga palju aega võttev toiming. Peale selle, et sellisest tegevusest oleks ka kasu, peab varukoopiaid tegema sageli (näiteks iga päev) ja kõik need koopiad tuleb säilitada korrastatult, nii et neid saaks hiljem vajadusel leida. Seega varukoopiad võivad võtta palju ruumi. Seetõttu on varukoopia sageli lisanduv, st. ainult viimasest varundusest muudetud failid salvestatakse uuesti, millega hoitakse kokku aega ja ruumi. Lisanduv varundamine saab võimalikuks, kui kasutada mõningaid faili atribuute, mida hoitakse failisüsteemis, nagu näiteks viimane kasutamine ja failis tehtud muudatused. Kuid kui kasutatakse lisanduvat varundamist, siis faili taastamine võib tähendada mitme viimase lisanduva varukoopia analüüsimist, et leida õige varukoopia, mis sisaldaks otsitavat faili. Halvimal juhul tuleb otsida viimasest täielikust varukoopiast. Seega taastamise kulude vähendamiseks tuleb planeerida perioodiliste täielike varukoopiate tegemine. Varundamine: andmetest koopia tegemine. DVD, digivideoketas: optiline andmekandja digitaalse informatsiooni (mitte tingimata videote) salvestamiseks. Taastamine: andmete varukoopia otsing ja ennistamine.
33
Turvalisus ja kaitse Kaitse arvutiviiruste eest Internet ja viirused
Tagauks (Backdoor): see on mehhanism, mis võimaldab juurdepääsu süsteemile ilma tavalisi autentimise protseduure läbimata Trooja hobune (Trojan): väike programm, mis on peidetud peremeesprogrammi sisse. Viirus (Virus): programm, mis suudab ennast taastoota Ussviirus (Worm): viirus, mis suudab leida ja rünnata interneti kaudu teisi haavatavaid arvuteid. Nuhkvara (Spyware) ja reklaamvara (adware) Internet ja viirused 3 myyti: “As long as you keep Windows updated, you’re fi ne.” “As long as you aren’t tricked into opening anything, you’re fi ne.” “As long as you keep your antivirus software up to date and scan daily, you’re fi ne.” In truth, adequately protecting client systems requires your company to adopt a wide array of strategies that include effective software updates, antivirus software, user education, fi rewalls, and most important of all, effective management of these and other security features. Arvutiviirus on programmikood, mis on kirjutatud selge sihiga, et see end ise paljundaks. Viirus üritab levida arvutist arvutisse, kinnitades end peremeesprogrammi külge. See võib rikkuda tarkvara, andmeid ja isegi riistvara. Arvutiviirus on kopeerib end mõne teise programmi koodi ning kui see programm käivitatakse, siis käivitub kõigepealt viiruse kood ning alles seejärel programm ise. Nii saab arvutiviirus ligipääsu arvutisüsteemi ressurssidele ning hakkab seejärel otsima uusi „puhtaid” faile kuhu oma kood kopeerida. Seepärast öeldaksegi tihti, et arvutiviirus on programm, mis suudab ise levida. Tegelikult arvutiviirus päris iseseisvalt ju ei levi, ta vajab programmifaile (või teatud juhtudel mõnd teist liiki faile), kuhu oma koodi kopeerida. Faile, mis kuhu viiruse programmikood on kopeeritud nimetatakse peremeesfailideks (host). Olemas on ka arvutiviiruseid, mis nakatavad näiteks Microsoft Wordi dokumendifaile (makroviirused) jne. Sellisel juhul hakkab viirus levima arvutisüsteemis juhul kui nakatunud fail mõne rakendusega avada. Tänapäeval on sellist liiki viiruseid toodetud pea kõikide levinumate rakenduste failidele ning viirus võib levida ka näiteks Uss (worm), nagu ka viirus, on konstrueeritud ennast ühest arvutist teise kopeerima, kuid ta teeb seda automaatselt, kasutades arvuti funktsioone, mis on mõeldud failide või andmete transpordiks. Kui teie arvutisüsteemis on uss, võib ta iseseisvalt edasi liikuda. Usside võime massiliselt paljuneda kujutab endast suurt ohtu. Näiteks võib uss saata enese koopiaid kõigile teie aadressiraamatus leiduvatele e-posti aadressidele, teha sama igas järgmises arvutis, kuhu tal õnnestub levida, ning põhjustada doominoefektina väga palju võrguliiklust, mis võib aeglustada ettevõttevõrke ja internetti. Uued ussid levivad väga kiiresti ja ummistavad võrke, pannes teid (ja kõiki teisi) ootama internetis veebilehekülgede kuvamist võib-olla kaks korda kauem. Nagu öeldud on ussi ja arvutiviiruste suurim erinevus just levimise tehnoloogias: kui arvutiviirus levib kasutades teisi faile, siis uss levib kasutades võrguteenuseid. Nii ussi kui ka viiruse tegelik eesmärk ei ole kindlasti vaid enese levitamine, vaid mingil kindlal juhul hakkab viirus või uss süsteem kahjustama (näiteks kustutab faile, edastab infot, segab kasutajat jne). Trooja hobune on arvutiprogramm, mis näib olevat kasulik, kuid tegelikult teeb see hoopis arvutisüsteemile kahju. Nii nagu müütiline trooja hobune nägi välja nagu kingitus, kuid sisaldas Kreeka sõdureid, kes Trooja linna vallutasid, on tänapäeva trooja hobused arvutiprogrammid, mis näivad kasulikud, kuid tegelikult ohustavad teie turvalisust ja võivad teha palju hävitustööd. Näiteks on üks trooja hobune levinud meilisõnumina koos manusfailidega, näiliselt Microsofti turvavärskendustega; tegelikkuses osutusid need viirusteks, mis üritasid välja lülitada viirusetõrje- ja tulemüüritarkvara. Rootkit on pahavara, mis kasutajanime ja parooli kasutamata hõivata juurkasutaja õigused. Rootkit kontrollib reeglina kõiki operatsioonisüsteemi põhifunktsioone ning seepärast on sellise pahavara leidmine ja hävitamine arvutisüsteemis eriti keeruline. Rootkitide levitamiseks on väga erinevaid võimalusi: tihti levib rootkit sarnaselt arvutiviirusega, kuid samas on teada ka juhuseid, kus rootkit on levinud ka legaalsete muusikaplaatidega ning rootkiti valmistajateks on olnud väga tuntud ja lugupeetud ettevõtted. Kuna rootkit kontrollib enamasti kõiki operatsiooni põhifunktsioone, siis suudab see tarkvara väga hästi end väga hästi varjata ning väga tihti võib juhtuda, et pärast rootkiti eemaldamist vajab operatsioonisüsteem täieliku väljavahetamist. Tagauks on operatsioonisüsteemi või mõne rakendusprogrammi valmistaja poolt teadlikult tehtud võimalus arvutisüsteemi ressursside kasutamiseks ilma vastavaid volitusi omamata. Samuti võib näiteks trooja hobune paigalda arvutisse spetsiaalse tagaukse, mille abil volitusteta kasutaja saab arvutisüsteemi kasutada. Tagauksed olid ajalooliselt programmeerijate poolt endale kirjutatud lisavõimalused, seda ajal, kui turvalisust ei peetud veel oluliseks. Sellisel juhul oli rakenduse valmistajal (tugiteenuse pakkujal) võimalik arvutisüsteemi paigaldada uuendusi ning teha vajalike seadistusi ilma, et teataks näiteks vajaliku kasutaja nime ja parooli. Kaasajal selliseid lahendusi enam ei kasutata, sest sellisel juhul võib tagaust kasutada arvutisüsteemi kasutaja teadmata ning see ei ole lubatud. Virus A virus is a self-replicating program that can install itself on a target computer. Viruses do not propagate over networks automatically; they need to be spread through or another means. Once installed, viruses usually alter, damage, or compromise a system in some way. ■ Worm A worm is a self-replicating program that can spread automatically over a network without any help from a user or a program such as an client or Web browser. Worms vary greatly in the potential damage they can cause. Some worms simply replicate and do little other than consume network bandwidth. Others can be used to compromise a system completely Trojan horse A Trojan horse is a program that is presented to users as a desirable application but that is intentionally written to harm a system. Unlike viruses and worms, Trojan horses do not copy themselves automatically or install themselves automatically; they rely on users to install them. ■ Spyware Spyware is a type of privacy-invasive software that secretly records information about user behavior, often for the purposes of market research. Typically spyware is injected into a system when a user installs a free tool or visits a Web site with browser security settings set to a low level. The most common function of such spyware is to record the Web sites that a user visits. More rarely, some spyware, such as keyloggers (which record every keystroke), can be installed deliberately by a third party and be used to gather personal information. The biggest threat posed by most spyware is system performance degradation. All types of spyware reduce system performance by hijacking the resources of the computer for their own purposes. Unlike viruses and worms, spyware does not self-replicate. ■ Adware Adware is similar to spyware and is often installed alongside it. The purpose of adware is to display unsolicited advertisements to the user in the form of pop-up windows or Web browser alterations. Adware can also download and install spyware.. Backdoor A backdoor is a program that gives a remote, unauthorized party complete control over a system by bypassing the normal authentication mechanism of that system. Backdoors have been known to be installed by worms that exploit a weakness in a well-known program. To protect your system against backdoors, it is essential to keep your applications (not just your operating system) updated. ■ Rootkit A rootkit is a persistent type of malware that injects itself beneath the application level and that as a result, tends to be much harder to detect from within the operating system. A rootkit can alter the core functionality of the operating system, or it can install itself as its own operating system invisible to the user and to most anti-malware software. Other rootkits can operate at the fi rmware (BIOS) level. Typically, a rootkit is used to provide a backdoor to a system.
34
Levinumad operatsioonisüsteemid
Linux on Unixi-l põhinev ning avatud lähtekoodiga operatsioonisüsteem, mille lõi Soome üliõpilane Linus Torvalds. Linux koosneb kolmest põhiplokist vastavalt monoliitsele struktuurile: Kernel: rakendab protsessori, mälu ja seadmete ning failisüsteemi haldurit. Süsteemiteegid: määravad standardfunktsioonid, mida saavad kasutada rakendused suhtlemisel kerneliga. Süsteemi utiliidid: sisaldavad programme nagu kasutajaliides (shell), mis tõlgib kasutaja käske, kompilaatoreid ja teisi süsteemihalduse programme.
35
Levinumad operatsioonisüsteemid
Linux UID kasutaja identifikaator GID grupi identifikaator Resurssidel (protsessid, failid ja kataloogid) on küljes nende omaniku UID ja GID-ga. Iga faili või kataloogi puhul on võimalik määrata, millised operatsioonid on lubatud selle omanikule, omanikuga samas grupis olevatele kasutajatele ja kõigile ülejäänud kasutajatele. Võimalusel näita Linuxi terminali ja näita failiõiguste loendit. The Linux file system is crucial for the management of resources such as files and devices, and for the system security. In fact the file system implements as special files both directories and devices, and it defines protection attributes for each file (both normal and special). In particular each Linux user is associated with a user identifier UID and with a group identifier GID, and all the processes, files, and directories are marked with the UID and GID of their owner. The pairs UID and GID define the protection domain of all the processes belonging to a user. For each file or directory it is possible to define what operations are allowed to the owner, to the users in the same group of the owner, and to all the other users, respectively.
36
Levinumad operatsioonisüsteemid
Microsoft Windows Riistvara abstraktsiooni kiht (HAL) riistvarast sõltuv süsteemi osa ja see loob ülemistele kihtidele standardse liidese riistvara kasutamiseks Kernel sisaldab mehhanisme, mida kasutatakse eri haldurite poolt Executive, mis sisaldab protsessori, mälu ja seadmete haldureid, failisüsteemi, turvaseadete haldurit ning graafilist kasutajaliidest. Win32 : API Windows Protsessi identifikaator Windows on mitme kasutajaga opsüsteem, mille kernel on üles ehitatud mitmekihiliselt. Alumine kiht (HAL) on ainus riistvarast sõltuv süsteemi osa ja see loob ülemistele kihtidele standardse liidese riistvara kasutamiseks. HAL-i kohal olev kiht (kernel) sisaldab mehhanisme, mida kasutatakse eri haldurite poolt, ning ülemine kiht on Executive, mis sisaldab protsessori, mälu ja seadmete haldureid, failisüsteemi, turvaseadete haldurit ning graafilist kasutajaliidest. Windowsi kernelist väljapoole jääv osa sisaldab Win32 API, mis pakub (kasutajasõbralikku) liidest süsteemikutsete edastamiseks rakendustele. Windowsis on protsess seotud unikaalse numbrilise identifikaatori, virtuaalmälu ja kaitseatribuutidega Windows pakub unikaalse süsteemikutse protsesside loomiseks (kannab nime createprocess), mis teeb ära sama töö nagu kaks Linuxi kutset fork ja exec. Protsess sisaldab algselt ühtainust haru, kuid see saab luua uusi harusid kasutades süsteemikutset createthread. Protsesse saab rühmitada töödeteks, st. protsesside komplektiks, millel on mõned ühised omadused , näiteks kasutatav ketta kvoot. Riistvara abstraktsiooni kiht Win32 : API Windows
37
Levinumad operatsioonisüsteemid
Microsoft Windows Windows pakub arendatud kaitsemehhanisme, mida võib kasutada failidele, kataloogidele ja mis tahes muule kernelis olevale objektile nagu protsess või harudeskriptorile, mäluhaldustabelitele, failisüsteemi poolt kasutatavatele andmestruktuuridele jne. juurdepääsu kontrollimiseks Iga süsteemi objekt (k.a. failid ja kataloogid) on seotud andmestruktuuriga, mis sisaldab tema kohta käivaid kaitseatribuute. Objekti kaitseatribuudid on määratud vastavalt pääsuloendite mudelile, seega sisaldavad need protsesside hula, millel on lubatud ligipääs objektile, ning operatsioonide hulka, mida iga protsess võib objektil sooritada. Executive on kerneli komponent, mis vastutab süsteemi turvameetmete jõustamise eest, sel eesmärgil kontrollib see kõigi protsesside poolt teostatavaid kõiki operatsioone.
38
Kasutatud kirjandus EUCIP programmi materjal:
Mike Meyers, Comptia A+ Certification Exam Guide, 7th Edition, McGraw-Hill, 2010 Virtuaalmälu haldus:
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.