1.11k likes | 1.37k Views
5. Operatsioonisüsteemid. Meeldetuletus. Selleks, et lahendada kõrgema taseme ülesandeid, peab eelmine tase olema 77 >= Unustamiskõver langetab tulemust (aga see võib ikkagi roheline olla)
E N D
5 Operatsioonisüsteemid
Meeldetuletus Selleks, et lahendada kõrgema taseme ülesandeid, peab eelmine tase olema 77>= Unustamiskõver langetab tulemust (aga see võib ikkagi roheline olla) Kodutöö lõpetamiseks (tulemuse saamiseks) tuleb vajutada nuppu “finish” peale ülesande edukat läbimist
Meeldetuletus Järgmiseks reedeks (26.03.10 18.00) seisuga võetakse harjutusväljakult ja koduülesannete pealt teie hinne Kui pole alustatud kõiki ülesandeid tolleks ajaks, siis on võimalik saada hinne ikkagi, aga hiljem
Sisukord • Tagasivaade • CPU kaitse • Mälu kaitse • Failide kaitse ja ühiskasutus • Erinevad OS-id
Tagasivaade • Fail – universaalne loogiline salvestusühik. Seotud infokogum, mis on salvestatud välismällu • Failidega seotud operatsioonid • Faili loomine • Faili kirjutamine • Failist lugemine • Jooksva positsiooni muutmine • Faili kustutamine • Faili kärpimine
Tagasivaade • Faili tüübid - Moodus liigendada faile kategooriatesse lähtudes sellest, mis moodi neid on võimalik kasutada • Struktuur • Määratud pikkusega kirjed • Muutuva pikkusega kirjed • Määramata pikkusega kirjed • 2 pöördumismeetodid • Otse • Jada
Tagasivaade • Paljude failide hoidmine kettal vajab organiseerimist • Partitsioonid: • Ühel kettal (MS-DOS) • Läbi mitme keta (Unix) • Kataloogide funktsioonid: • Faili otsimine • Faili loomine • Faili kustutamine • Kataloogi kuvamine • Faili ümbernimetamine
Tagasivaade • Kataloogide areng • Ühetasemeline • Kahetasemeline • Keeruline struktuur (puud, atsüklilised graafid) • Inode • Andmestruktuur Unixi-laadsetes failisüsteemides • Hoiavad baasinformatsiooni failide, kataloogide ja failisüsteemide kohta
Tagasivaade • Failisüsteemi tasemed • Rakendusprogrammid • Loogiline failisüsteem • Failikorraldusmoodul • Baasfailisüsteem • Sisend-väljundi juhtimine • Failide paigutus kettal • Pidev paigutus • Lingitud paigutus • Indekseeritud paigutus
Tagasivaade • Hashing: • idee seisneb valemi leidmises, mis arvutaks kataloogis faili kirje aadressi nii, et tema kättesaamiseks piisaks sama valemi kasutamisest. • Aadress arvutatakse faili nimest • Kollisioon – valem annab sama tulemuse erinevate sisendite puhul • Efektiivsus sõltub keskmine katsete arv vaid tabeli täidetusest ja ei sõltu objektide arvust.
Tagasivaade • Erinevaid failisüsteeme • FAT • NTFS • Ext 2 ja Ext 3 • ReiserFS ja Reiser 4 • XFS • JFS • Journaling
Küsimus nr 1 • Fail on • Bittide jada • Koosneb numbritest ja tähemärkidest • Väikseim ühik, mida on võimalik salvestada • Info, mida on võimalik kasutada edasi ka programmi lõppedes
Küsimus nr 2 • Faili op: kopeerimine saab järgnevatest põhioperatsioonidest: • Failist lugemine • Faili kirjutamine • Faili kustutamine • Faili loomine • Faili jooksva positsiooni muutmine • Faili kärpimine
Küsimus nr 3 • Failitüüpe toetavad järgmised OS-id • Windows • Linux • Mac
Küsimus nr 4 • Partatsioone • Tehakse ruumi kokkuhoiuks • Tehakse failide organiseerimiseks • Saab teha ühele ketale • Saab teha läbi mitme ketta Windowsi OS-is
Küsimus nr 5 • Inode • On andmed Unixi laadses süsteemis • On andmestruktuur Unixi laadses süsteemis • Soft lingi korral peab inode viidete üle arvestust • Teab, kus faili andmeblokid asuvad
Küsimus nr 6 • Millist mällu failide paigutust kirjeldatakse: Vabastab välisest fragmentratsioonist. Iga fail koosneb plokkidega seotud nimistutest. Faili pikkus ei ole ette määratud. Puudus lisamälu ja turvalisus • Pidev paigutus • Lingitud paigutus • Indekseeritud paigutus
Küsimus nr 7 • Hashing • Kataloogide realisatsiooni juures: et failid oleks leitavad ühe arvutusega • Kollisioonivaba • Funktsioon • Open addressing on hashi tüüp
Vastused • A,B,C,D • A,B,D • A,B • B,C • B,D • B • A,C,D
Kaitsesüsteem • Kaitsesüsteem on üks OS-i komponentidest (loeng 2) • Kui süsteem lubab mitmel kasutajal käivitada mitmeid konkureerivad protsesse tekib vajadus kaitsta igat protsessi teise eest • Kaitsesüsteem peab • Tegema vahet lubatud ja lubamatu vahel • Tagama mälujuhtimise ainult protsessile lubatud piirkonnad
I/O kaitse • Sisend-väljundoperatsioonid on privilegeeritud • Kasutaja ei saa otse pöörduda I/O seadmete poole. • OS on vahendaja • Kasutaja ei saa anda vigaseid I/O korralduse ja häirida seega süsteemi normaalset tööd
CPU kaitse • OS peab saama CPU enda käsutusse • Ei tohi võimaldada kasutajaprogrammil lõpmatusse tsüklisse jääda • Taimer: tekitab katkestuse teatud aja möödudes. OS saab alati kontrolli enda kätte tagasi
Protsesside sünkroniseerimine • Koopereeruvad protsessid – protsessid, mis mõjutavad üksteise tegevust. Kasutavad ühiseid andmeid või koodi (nt lõimed). • Sünkroniseerimine vajalik koopereeruvate protsesside puhul, sest konkureeriv juurdepääs ühistele andmetele võib viia vigadeni
Kriitiline sektsioon • - piirkond, mida on vaja kaitsta. • Sektsiooni sisemine ja väljumine eraldi funktsioonidena • Ühise ressursi muutmine toimub ainult kriitilises sektsioonis • Kriitilises sektsioonis saab olla korraga ainult üks koopereeruvatest protsessidest
Kriitiline sektsioon • Lahendus peab tagama: • Vastastikuse välistamise: kui protsess tegeleb kriitilises sektsioonis, ei ole muid protsesse, mis tegutseksid oma kriitilises sektsioonides • Edasiliikumise: konkurents kriitilisse sektsiooni sisenevate protsesside vahel ei tohi takistada konkurentsi nende protsesside vahel, mis sektsiooni ei kasuta • Kriitilise sektsiooni siseneva protsessi selgumine lõpliku aja jooksul • Sõltumatuse protsesside sisust ja kiirusest
Näitekood Process p1 { While true do { While turn=proc2 do;{ootab} kriitiline sektsioon Turn:=proc2; muu tegevus } //while }//p1 Process p2 { While true do { While turn=proc1 do;{ootab} kriitiline sektsioon Turn:=proc1; muu tegevus } //while }//p2
1 lahendus • Kriitilisse sektsiooni sisenemine reguleeritud ühise muutuja turn väärtusega • Täidab tingimusi? • Vastastikune välistamine: OK • Täidetakse ranges järjekorras: OK • Aga.. Kui turn==proc2 ja P1 tahaks kriitilisse sektsiooni minna, ei saa.. Isegi siis kui P2 on oma muu tegevuse sektsioonis
Näitekood 2 Process p1 { While true do { While flag2 do; flag1=true; kriitiline sektsioon Flag1=false; muu tegevus } //while }//p1 Process p2 { While true do { While flag1 do; flag2=true; kriitiline sektsioon Flag2=false; muu tegevus } //while }//p2
2 lahendus • 1 algoritmi probleem: eeldab loa saamist teiselt protsessilt • Selle asemel mõlemal nüüd oma muutuja (flag) • Iga protsess muudab oma muutuja väärtust ja kontrollib vaid teise muutuja sisu. • Flag 1 ja flag 2 algväärtused on false • Vastastikune välistamine: ei ole ok
Näitekood 3 Process p1 { While true do { flag1=true; While flag2 do; kriitiline sektsioon Flag1=false; muu tegevus } //while }//p1 Process p2 { While true do { flag2=true; While flag1 do; kriitiline sektsioon Flag2=false; muu tegevus } //while }//p2
3 lahendus • 2 algoritmi probleem: ei välista vastastiku • Parandus: jätame kaks muutujat, vahetame järjekorra • Välistamine: OK • Edasiliikumine : ei ole OK • Samaaegselt ootamas flag1=true flag2=true While flag2 do While flag1 do
Näitekood 3 Process p1 { While true do { flag1=true; Turn=p2 While flag2 and turn=p2 do; kriitiline sektsioon Flag1=false; muu tegevus } //while }//p1 Process p2 { While true do { flag2=true; Turn=p1 While flag1 and turn=p1 do; kriitiline sektsioon Flag2=false; muu tegevus } //while }//p2
Kombineeritud lahendus • Nn. pagaripoe algoritm • Flag1 ja flag2 algväärtus false • Et siseneda kriitilisse sektsiooni: • Protsess oma muutuja flag väärtuseks true • Muutujaga turn teatab, et nüüd on teise protsessi kord siseneda • Isegi kui flag mõlemal true, turn reguleerib sisenemist
Riistvara toetus • Pessimistlik lähenemine • Enne kriitilisse sektsiooni sisenemist blokeeritakse kõik vähegi ohtlikud protsessid • Väljumisel võetakse blokeeringud maha • Optimistlik lahendus • Salvestatakse ühismuutujate väärtused • Muudetakse lokaalsete muutujate väärtusi • Võrreldakse ühismuutuja väärtusega. Kui see on muutumatu, salvestatakse lokaalne muutuja. Kui aga on vahepeal muutunud, alustatakse otsast peale
Semafoorid • - ühine muutuja, mis on parameetriks kahele funktsioonile: • P ootamiseks kriitilisse sektsiooni sisenemiseks ja • V signaliseerimiseks kriitilisest sektsioonist väljumisel P(s) kriitiline sektsioon V(s) • Lihtsaim semafoor: binaarne (0 ja 1)
Semafoorid • Semafori s muutmine peab olema peidetud. • Ajal, kui üks protsess semafoori muudab, ei saa ükski teine protsess teha sama.
Ajadiagramm + semafor P1 P krit V Muu P2 P krit V Muu P3 P krit V Muu
Mälu kaitse • OS on ju ka põhimälus • Seda tuleb kaitsta kasutajaprotsesside eest • Samuti vaja kaitsta kasutajaportsesse üksteise eest • Mälu kaitse on riistvara funktsioon
Mälu kaitse • Igale programmile lubatud mälupiirkond. Väljaspool seda mälupiirkonda ei tohiks programm pääseda • Kaitse kahe registri abil: baasregister (esimene lubatud aadress) ja piirregister (lubatud osa pikkus) • Baas ja piirregistri väärtustamised privilegeeritud operatsioonid. Ainult OS saab.
Mälu kaitse baas Baas+piir MÄLU CPU aadress jah >= jah <= ei ei Adresseerimise viga
Mälu kaitse • Lehekülgmälus (fragmenteerumise vastu. Mälu jaotatud lk) kaitse lehekülgede tabeli kaudu • Igale freimile pannakse vastavusse lugemist ja kirjutamist lubav bitt. • Teine bitt näitab, kas lehekülg kuulub protsessile
Failide kaitse • Failide sisu üldjuhul tähtis ja vajab kaitset • Ohud • Välisseadme vigastused. Ohu maandamiseks teha andmetest pidevalt koopiaid mõnele teisele välisseadmele • Autoriseerimata kasutus. Ühekasutaja süsteemis seda polnud. Mitmekasutaja süsteemis hädavajalik kontrollida failide kättesaadavust ja pääsulube
Failide kaitse • Tüüpiline lahendus: kättesaadavus sõltub kasutajast • Et mitte kirjeldada õigusi igale kasutajale eraldi -> kasutajagrupid • Õigused liigendatakse: • Nt lugemisõigus – faili saab kasutada aga mitte muuta ja kustutada. Võimalus kopeerida • Nt kirjutamisõigus – lubab muuta faili sisu või fail kustutada.
Failide kaitse • Faili kättesaadavus üldjuhul määratud atribuutidega, mille väärtuseks on kombinatsioonid kasutaja ja õiguste liikidest • Teine võimalus: kasutada paroole • Paroole võimalik panna failidele ja kataloogidele • Ei erista kasutajaid ega kasutusliike
Kasutajainfo Linuxis • Kasutajakonto info asub failides • kasutajad /etc/passwd, /etc/shadow, • grupid /etc/group, /etc/gshadow • Igal kasutajal on oma kodukataloog • /home/kasutajanimi • Iga fail kuulub mingile kasutajale (UID) ja grupile (GID) • Iga protsess kuulub mingile kasutajale ja grupile
Kasutajainfo Linuxis • Passwdfail on kõigile loetav kasutaja:parool:1001:4:Kasutaja A konto:/home/kasutaja:/bin/bash • Sisaldab: kasutajanime, kodeeritud parooli, UID, GID, kommentaar, kodukataloogi, kesta • Shadow fail loetav vaid root õigustes kasutaja:parool:10808:0:99999:7:-1:-1:1234567 • Sisaldab: kasutajanimi, parool, muudetud, min ja max päevi mil parooli vahetada, hoiatus, lukustamine, aegumine, reserveeritud