1 / 63

Operatsioonisüsteemid

2. Operatsioonisüsteemid. Sisukord. Tagasivaade Operatsioonisüsteemi struktuur Protsessid Lõimed Protsessoriaja planeerimine. Tagasivaade. Os - programm, mis käitub kui vahendaja kasutaja ja riistvara vahel Kaks põhisuunda OS-ide arendamisel Kasutamise mugavus

lydia
Télécharger la présentation

Operatsioonisüsteemid

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2 Operatsioonisüsteemid

  2. Sisukord • Tagasivaade • Operatsioonisüsteemi struktuur • Protsessid • Lõimed • Protsessoriaja planeerimine

  3. Tagasivaade • Os - programm, mis käitub kui vahendaja kasutaja ja riistvara vahel • Kaks põhisuunda OS-ide arendamisel • Kasutamise mugavus • Riistvara töö efektiivsus

  4. Tagasivaade • OS-i eesmärgid • Riistvara varjamine läbi abstraktsioonide • Ressursside määramine protsessidele • Pakub sõbralikku ja efektiivset kasutajaliidest

  5. Tagasivaade • OS-ide ajalugu • 1 generatsioon: ei olnud OS-i. Mehaanilised lülitid • 2 gen. : suured masinad, perfokaardid • 3 gen: kiiremad I/O seadmed, driverid aga ikka ikka aeglane ja riistvara kallis • Pakettsüsteemid operaatoritega • Multiprogrammsus: spooling • Ajajaotusega süsteemid: kiired ümberlülitused

  6. Tagasivaade • Os-i ajalugu (jätk.) • 4 gen: personaal arvutid • Paralleelsüsteemid: ühine kell ja siin • Reaalaja süsteemid • Hajussüsteemid

  7. Väike enesekontroll

  8. Küsimus nr 1 • Personaalarvuti (70-ndatel) võimaldasid: • Mitme kasutaja tööd • Ekraani kasutust • Failisüsteemi kasutust • Failisüsteemi kaitset

  9. Küsimus nr 2 • Tänapäeva OS-i arendus PC-del on: • Riistvara efektiivsuse suunas • Kasutaja mugavuse suunas

  10. Küsimus nr 3 • Spooling võimaldab: • Kiiremini protsesse täita • Lugeda otse kaardilugejast vajalik info mällu • Hoida CPU töös, kui I/O tegevused • CPU saadab tulemuse kohe printerisse • CPU suhtleb ainult kettaga

  11. Küsimus nr 4 • OS: • Määrab protsessidele ressursse • Võimaldab kasutajal suhelda otse riistvaraga • Pakub sõbraliku kasutajaliidest • Loob keskkonna, kus protsessid saaks joosta • Organiseerib mälu ja protsessi haldust

  12. Küsimus nr 5 • OS arengut tõukasid tagant: • Tarkvara kallis hind • Kasutaja mugavus • Riistvara efektiivne kasutus • Kaardilugejate efektiivsus • Riistvara kiirus

  13. Ja uus teema…

  14. OS-i struktuur: • Komponendid: • protsesside haldamine • põhimälu haldamine • failide haldamine • I/O haldamine • sekundaarmälu haldamine • võrgu haldamine • kaitsesüsteem • käsuinterpretaator

  15. Protsesside haldamine • Ühest programmist -> mitu protsessi • Igal oma olek ja erinev käsuloendur • Süsteem koosneb protsesside komplektist • Igal ühel “oma” CPU • Protsessijuhtimine: • Protsesside loomine ja kustutamine • Protsesside peatamine ja taastamine • Protsesside sünkroniseerimine • Protsesside omavahelise kommunikatsiooni organiseerimine

  16. Põhimälu haldamine • Põhimälu kui suur massiiv, kus igal sõnal või baidil oma aadress • CPU loeb käske, loeb ja kirjutab käsuoperante. • I/O loeb/kirjutab põhimällu DMA kaudu • OS-is järgnevad funktsioonid • Mälu seisu jälgimine • Protsessi valik vaba mälu eraldamisel • Mälu kinnistamine ja vabastamine

  17. Failide haldamine • Kettad kui sisend ja väljund • Välismäluga seotud funktsioonid • Vaba kettaruumi haldamine, ruumi eraldamine • Kettamehhanismi juhtimine • Failidega seotud funktsioonid • Failide loomine ja kustutamine • Kataloogide loomine ja kustutamine • Failide salvestamine välismällu • Vahendid failide ja kataloogide manipuleerimiseks

  18. I/O haldamine • Üks OS eesmärk: peita riistavara kasutaja eest. I/O seadmete poole pöörduvad vaid draiverid • I/O süsteem koosneb: • Puhvrite ja vahemälu süsteemist • Üldiste seadmete ja draiverite liidestest, I/O seadmete draiveritest

  19. Võrgu haldamine • Väga oluline hajussüsteemides, kus protsessorid erinevates kohtades. Erinev kell, mälu.

  20. Kaitsesüsteem • Kui OS lubab mitut konkureerivat protsessi: üht protsessi on teise eest vaja kaitsta • Samuti failid, juurdepääsuload • Kaitsesüsteem peab • Tegema vahet lubatud ja mittelubatu d vahel • Tagama mälujuhtimise ainult protsessile lubatud piirkonnas

  21. Käsuinterpretaator • Vahendaja kasutaja ja OS-i vahel • Käsuinterpretaator tõlgib ja edastab juhtkäske, mis on seotud: • Protsesside loomine ja juhtimisega • I/O opratsioonidega • Välis- ja põhimälu juhtimisega • Failisüsteemi kasutamisega • Võrgu ja kaitsega

  22. OS-i struktuur: • Teenused • programmi täitmine • I/O operatsioonid • failioperatsioonid • side (kommunikatsioon) • ressursside jagamine (allocation) • kaitse

  23. OS-i struktuur: • Süsteemsed käsud • Infovahetuseks OS-i ja töötava protsessi vahel • Võivad vajada parameetreid • Register (kiire aga jäik meetod) • Tabelisse mälus ja tabeli aadress registrisse • Stack – programm lükkab parameetrid pinusse, millest OS need välja tõmbab

  24. OS on põhimõtteliselt “sündmustest” juhitud süsteemid: mingi sündmus toimub -> reageering -> uue sündmuse ootamine

  25. Protsessid • Programm –passiivne: kood, tähemärgid • Protsess – aktiivne: käivitamisega seotud info – muutub, iseloomustab • Protsess on töötav programm • Protsess vajab ressursse: • Protsessori aega • Mälu • Faile • I/O seadmeid

  26. Protsess vs programm • Protsess ei ole ainult programmi kood. • Sisaldab • Käsuloendurit (program counter - PC) • Protsessi olek • CPU registrid • Muutujate väärtusi • Protsessi pinu (stack - SP). Sisaldab tavaliselt ajutist infot nagu alamprogrammide parameetrid, tagastusaadressid, ajutised muutujad • Globaalsete muutujate piirkonda

  27. Protsessi juhtimine • Ühest programmist -> mitu protsessi • Igal oma olek ja erinev käsuloendur • Süsteem koosneb protsesside komplektist • Igal ühel “oma” CPU • Protsessijuhtimine: • Protsesside loomine ja kustutamine • Protsesside peatamine ja taastamine • Protsesside sünkroniseerimine • Protsesside omavahelise kommunikatsiooni organiseerimine

  28. Protsessi elutsükkel Uus (new) Töötav – kasutab CPU-d (running) Lõpetanud (terminated) Valmis (ready) Blokeeritud (blocked) Ootab CPU järel Ootab mingi teisi protsessi järel

  29. Programmist protsessini • Programmi tekst • Kompileerimine • Linkimine • Interpreteerimine • Kompilaator vs interpretaator

  30. Programmi tekst • Tekst disaini faasis • Enamjaolt kõrgema taseme keeled • Protsessikeeled (nt. Fortran, Basic) - > lihtsalt tõlgitavad masinkäskude jadaks • Objektorienteeritud keeled -> seos masinkäskudega kaudsem

  31. Kompileerimine • Tekst -> protsessorile vastuvõetavaks käskude jadaks ehk objektmooduliks • Objektmoodul koosneb • Päisest • Programmi sisu (käskude jada) • Andmete kirjeldus • Parameetrite edastamiseks 2 moodust: • Aadress • Väärtus

  32. Linkimine • Kui objektmoodul vajab teisi objektmooduleid, siis linkimine • Tulemus: valmisprogramm ehk laademoodul • Laademoodul salvestatakse failina. • Süsteemi laadur laeb laadurmooduli mällu, luues uue protsessi

  33. Interpreteerimine • Interpretaator: kompileerimine + linkimine • Programmi käivitamisel otse programmi teksti kasutab • Nt: Visual Basic

  34. Kompilaator vs interpretaator? • Interpretaator: • Algtekst masintekstiks käivitamisel • Platvormist sõltumatu • Töötab aeglasemalt • Kompilaator: • Masinkoodiks kogu programm, salvestab faili • Sõltub OS-ist

  35. Protsesside loomine • Üks protsess, vanem (parent) võib luua teisi protsesse, lapsi (child) • Protsesside puu • Pärast alamprotsessi loomist • Ootab kuni see lõpeb • Konkureerib • Alamprotsess: • On peaprotsessi koopia • Laeb uue programmi

  36. Protsesside lõpetamine • Protsess lõpetab töö ja pöördub OS-i poole kasutades exit käsku • Lisaks: abort • Alamprotsess on ületanud lubatud ressursside piiri • Alamprotsessi tegevus ei ole enam vajalik • Peaprotsess lõpetab töö

  37. Lõimed (threads) • Käskude voog • “Kergekaalulised” protsessid • Kood, andmed, OS ressursid ühised protsessi kõikidel lõimedel • Täidetakse paralleelselt • Lõim on vaadeldav kui traditsiooniline protsess

  38. Lõimed vs protsessid • Sarnasused • Jagavad CPU-d ja ainult üks lõim jookseb korraga • Lõimi nagu protsesse täidetakse järjest • Lõimed saavad samuti luua “alalõimu” • Kui üks lõim on blokeerinud, saab teine joosta. • Erinevused • Lõimed ei ole üksteisest sõltumatud • Kõik lõimed saavad ligi kogu aadress ruumile, mis protsessil on • Lõimed on määratud üksteist aitama, toetama. Protsessid ei pruugi üksteist toetada (nt: loodud eri kasutaja poolt)

  39. Lõimede liigid • Kasutaja (-taseme) lõimed: • kogu vastutus kasutaja programmil (loomine, haldamine) blokeerumisoht kogu protsessile, kui tuum on ühe lõimega • Tuuma (OS) lõimed: • kogu loomise, haldamise, planeerimise tegevus toimub süsteemi poolt või vahendusel

  40. Lõimede eelised • osa protsessi blokeerimine ei peata kogu protsessi, kasutaja ei blokeeru • mälu ja teiste ressursside efektiivne kasutamine • ökonoomsus ressursside hõlvamisel ja ümberjagamisel • efektiivne multiprotsessorsüsteemi kasutamine

  41. Mitu ühele • Nt: • Solarise “rohelised” lõimed

  42. Üks ühele • Nt: • Windows XP/NT/2000 • Linux • Solaris 9+

  43. Mitu mitmele • Nt: • Solaris enne 9 • Windows NT/2000 koos “ThreadFiber” paketiga

  44. Sünkroniseerimine • - vaja siis kui protsessid mõjutavad üksteise tegevus (ehk koopereeruvad protsessid) • Kuidas mõjutavad: • Ühised andmed või kood (nt lõim) • Protsessid suhtlevad teadete kaudu • Probleem: üks loeb, teine kirjutab. Mida siis loeti? Vana või uut väärtust?

  45. Deadlock • Ehk ummikud • Olukord, kus grupp protsessidega on pidevalt blokeeritud nii, et ükski protsess ei saa aktiivseks • Nt filosoofide lõunasöök • Nii sünkroniseerimisest kui ummikutest rohkem 5. loengus

  46. Protsessoraja planeerimine • Protsessi tsükkel – CPU • CPU planeerija • Kui CPU vaba, valib ready seisundis olevatest protsessidest järgmise ja annab CPU selle kasutada • Valiku tegemiseks erinevaid meetodeid

  47. Dispetšer • Moodul, mis annab üle CPU juhtimise üle protsessile, mille on valinud planeerija • Ülesanded: • Ümberlülitus teisele protsessile • Kasutajarežiimile üleminek • Suunamine õigele käsule kasutajaprogrammis • Oluline aeg: ühe seiskamine, teise taaskäivitamine

  48. Planeerimise kriteeriumid • Protsessori kasutus – milline osa tööajast CPU hõivatud • Läbilaskevõime – mitu protsessi ajaühikus töödeldakse • Käibeaeg – aeg protsessi käivitamisest lõpetamiseni • Ooteaeg – aeg, mille jooksul protsess ootab CPU-d • Reaktsiooniaeg – aeg, mille jooksul protsess saab esimest korda CPU

  49. Mitte ennetav • Planeerimisalgoritm on mitte ennetav, kui protsessile on antud CPU, siis seda enam ära ei võeta. • Lühemad protsessid võivad kauem oodata, kuid kõiki koheldakse võrdselt • Reageerimisaeg paremini etteaimatav • Dispetšer saadab protsessid CPU-sse: • Töötavast -> Valmis • Kui protsess lõpetab

More Related