OPERATSIOONISÜSTEEMIDE EHITUS Ülevaade Protsessi mõiste Protsesside planeerimine Operatsioonid protsessidega Protsessihaldus Protsesside koostöö Prots

Seotud dokumendid
Operatsioonisüsteemide ehitus

MTAT Operatsioonisüsteemid - protsessid

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document

(loeng3-ohtlikud_koodiloigud)

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp

Funktsionaalne Programmeerimine

Linux süsteemi administreerimine

SAF 7 demo paigaldus. 1.Eeldused SAF 7 demo vajab 32- või 64-bitist Windows 7, Window 8, Windows 10, Windows Server 2008 R2, Windows Server 2012, Wind

PowerPointi esitlus

MTAT Operatsioonisüsteemid - Turvalisus

MTAT Operatsioonisüsteemid - Turvalisus

Andmeturve

Loeng03

E-arvete juhend

HAJUSSÜSTEEMID HAJUSSÜSTEEMID SOAP ja veebiteenused Web Services Web Services SOAP WSDL Ühilduvus UDDI Kihiline arhitektuur masinsuhtluse jaoks erinev

Andmeturve

Andmeturve

Operatsioonisüsteemid Intelligentne arvutikasutus IFI6070 Tanel Toova

X Window System tuntud kui: X11, X, X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesug

Elisa Ring Elisa Ringi mobiilirakendus Versioon

TARTU ÜLIKOOL LOODUS- JA TÄPPISTEADUSTE VALDKOND ARVUTITEADUSE INSTITUUT Lauri Kongas Turvaauk CVE Referaat aines Andmeturve MTAT Õpp

DNS teenus teoorias ja praktikas Autor Siim Adamson ITK Autor: Siim Adamson ITK

Operatsioonisüsteemide ehitus

Tartu Ülikool Loodus- ja täppisteaduste valdkond Arvutiteaduse instituut Sandra Puusepp CVE Referaat Tartu 2018

B120_10 estonian.cdr

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon

Operatsioonisüsteemi ülesanded

SQL

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Veebiteenused ja SOAP Web Services Web Services SOAP WSDL Ühilduvus UDDI Kihiline arhitektuur masinsuhtluse jaoks erinev

Andmed arvuti mälus Bitid ja baidid

Monitooring

Süsteemiintegratsioon

Hajussüsteemid

Skriptimiskeeli, mida ei käsitletud Perl Python Visual Basic Script Edition (VBScript) MS DOS/cmd skriptid Windows PowerShell midagi eksootilisemat: G

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

Microsoft Word - Vx610 EMV KASUTUSJUHEND.doc

Otsinguteavituse esitamine Kultuurimälestiste riiklikus registris 1. Mine aadressile: ja vajuta nuppu Kodanikule. 2. Sisene


HAJUSSÜSTEEMID HAJUSSÜSTEEMID Nimeteenuse näited DNS DNS NIS NIS+ LDAP JNDI Hierarhiline Interneti nimede süsteem Põhilised päringud: Arvuti nime järg

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc

StandardBooks_versiooni_uuendusWin

Häälestusutiliit Kasutusjuhend

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

DE_loeng5

KOTKAS AVE kasutajakeskne juhend Loomise Muutmise kuupäev: kuupäev: Versioon: 2.0 Klient: Keskkonnaministeeriumi Infotehno

Document number:

Microsoft Word - HOTSEC kasutusjuhend v1.900.docx

Tarkvaraline raadio Software defined radio (SDR) Jaanus Kalde 2017

Pealkiri

P2P süsteemid

SK-3MD

Microsoft Word - ref - Romet Piho - Tutorial D.doc

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

Outlookist dokumendi registreerimine Plugina seadistamine Dokumendi registreerimine Outlookist Vastusdokumendi registreerimine Outlookist Outlooki plu

Microsoft PowerPoint - BPP_MLHvaade_juuni2012 (2)

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Peer-to-peer süsteemid Peer-to-peer süsteemide liigitus Liigitus Ründed Anonüümsus Puuräsi DHT Näide: Kazaa Näide: Kadem

Loeng12

1. Üliõpilased 1.1 Tõendid Vali menüüst: Üliõpilased tõendid tõendite trükkimine. Avaneb vorm Tõendite trükkimine, vali tõendi liik Tõend õppim

Operatsioonisüsteemid 1. loeng

Microsoft Word - EHR.docx

Microsoft Word - Toetuste veebikaardi juhend

Operatsioonisüsteemi ülesanded

Rahulolu_uuring_2010.pdf

PowerPoint Presentation

Pangalingi spetsifikatsioon Pocopay pangalingilt makse algatamiseks tuleb kasutada teenust Kaupmees teeb päringu Pocopayle aadressile

E-õppe ajalugu

untitled

EE-macbook-retina-12-early2015-qs.indd

VOIP121 estonian.cdr

Esitlusslaidide kujundusest

Slide 1

KASUTUSJUHEND

Microsoft Word - Referaat.docx

CPA4164 USB 2.0 kõrgekvaliteediline videoadapter KASUTUSJUHEND 1. PEATÜKK - Ülevaade 1.1 Tutvustus CPA4164 USB 2.0 videoadapter võimaldab teil arvutis

Rühmatöö Moodle is Triin Marandi 2017 oktoober

Microsoft Word - EVS_ISO_IEC_27001;2014_et_esilehed.doc

KIIRJUHEND Lugege kiirjuhend enne seadme kasutamist hoolikalt läbi. Kõik tärniga (*) märgitud juhised kehtivad WLAN + 3G mudelitele (Lenovo B6000-H(V)

PRESENTATION HEADER IN GREY CAPITALS Subheader in orange Presented by Date Columbus is a part of the registered trademark Columbus IT

ITI Loogika arvutiteaduses

VKE definitsioon

TELE2 SEADMEKINDLUSTUSE tingimused TH-TELE Vaata lisaks TELE2 SEADMEKINDLUSTUSE TINGIMUSED TH-TELE

Programmi AnimatorDV Simple+ lühike kasutajajuhend

Microsoft PowerPoint - EMCS13

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

Pealkiri

Directo ja Omniva arvekeskuse (endine EAK ehk Eesti E-arvete Keskus) liidestamine

Töökoha kaotuse kindlustuse tingimused TTK indd

Väljaandja: Regionaalminister Akti liik: määrus Teksti liik: algtekst-terviktekst Redaktsiooni jõustumise kp: Redaktsiooni kehtivuse lõpp:

(Microsoft PowerPoint - seminar_6_n\365uded-ainemudel tagasiside.ppt [Compatibility Mode])

SQL

KOOLITUSTE HALDAMINE E-TÖÖTUKASSA KASUTAJAJUHEND 1

Veebipõhised andmebaasid ja otsi(ngu)mootorid Internet on Oluline, peagi peamine andmeallikas! 2/3 Eesti aktiivsest elanikkonnast kasutab;! 90% arvuti

G aiasoft Programmi VERP ja Omniva Arvekeskuse liidese häälestamine ja arvete saatmine-lugemine VERP 6.3 ja VERP 6.3E Versioon ja hilisemad K

DJI GOGGLES Kiirjuhend V1.0

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

Võrguregistripõhine võrguplaneerimine Jaanus Kokk AS Eesti Telekom

normaali

MAKSETERMINALI KASUTUSJUHEND

Antennide vastastikune takistus

Väljavõte:

Ülevaade Protsessi mõiste Protsesside planeerimine Operatsioonid protsessidega Protsessihaldus Protsesside koostöö Protsessidevaheline side Side klient-serversüsteemides MEELIS ROOS 2 Protsessi mõiste Protsessi olek Opsüsteem täidab mitmesuguseid töid: Pakktööd (batch jobs) Aega jagavad tööd (time-sharing tasks) Protsess täitmisel olev programm Programmi täidetakse järjest (programm kui käsujada, retsept) Protsess koosneb: Koodisektsioonist Käsuloendurist (program counter, instruction pointer) Magasinist Andmesektsioonist Protsessori seisust (registrid) Täitmise käigus satub protsess järgmistesse olekutesse: Uus (new) protsess luuakse Töös (running) selle protsessi käske täidetakse Ootel (waiting) protsess ootab mingi sündmuse toimumist Valmis (ready) protsess ootab, et tema käske täitma hakataks Lõpetatud (terminated) protsessis olev programm on täidetud (edukalt või ebaedukalt) MEELIS ROOS 3 MEELIS ROOS 4

Protsessi olekudiagramm Protsessi andmed operatsioonisüsteemis new admitted interrupt exit terminated Iga protsessiga on seotud protsessi juhtplokk (PCB Process Control Block) Protsessi juhtplokk koosneb: ready running (Protsessi number) IO/event completion sheduler dispatch waiting IO/event wait Protsessi olek Käsuloendur Protsessori registrite seis Protsessoriaja planeerimise info Mäluhaldusinfo Arvepidamisinfo I/O staatus Omanikuinfo MEELIS ROOS 5 MEELIS ROOS 6 Planeerimisjärjekorrad Planeerimisjärjekorrad Operatsioonisüsteem haldab kõigi protsesside juhtplokke erinevates järjekordades: Tööde järjekord kõik süsteemi protsessid Töövalmis tööde järjekord kõik protsessid, mis on mälus ning valmis täitmiseks Seadmete järjekorrad protsessid, mis ootavad antud seadme taga I/O lõppemist Protsesse liigutatakse vastavalt vajadusele järjekordade vahel Erinevate järjekordade jaoks võib opsüsteem kasutada erinevat halduspoliitikat Load average töövalmis tööde järjekorra keskmine pikkus Ready Queue head ptr tail ptr Wait Queue head ptr tail ptr PCB 1 PCB 2 PCB 3 registers registers registers PCB 4 PCB 5 registers registers MEELIS ROOS 7 MEELIS ROOS 8

Planeerijad Kontekstivahetus Lühiajaline planeerija Valmis protsesside hulgast sobiva tööks valimine Töötab tihti, peab olema kiire Pikaajaline planeerija Uute protsesside loomine Hoolitseb multiprogrammeerimise astme eest Käivitub harva, pole kiirusekriitiline Õige protsessisegu hoidmine (I/O taga ootavad ja protsessori taga ootavad protsessid) Context switch Ühelt protsessilt teisele lülitumisel tuleb salvestada vana protsessi olek ja laadida uue protsessi salvestatud olek See aeg on lisakulu, vähendab rakendustele jäävat protsessoriaega Kuluv aeg sõltub protsessori võimalustest Vahepealne planeerija protsesside välja ja sisse saalimine (swapping) MEELIS ROOS 9 MEELIS ROOS 10 Protsesside loomine Protsesside loomine: näide Vanemprotsessid võivad luua lapsprotsesse Iga lapsprotsess võib olla teistele protsessidele omakorda vanemaks Nii tekib protsesside puu Ressursside jagamine Vanem ja laps jagavad kõiki ressursse Laps saab alamhulga vanema ressurssidest Vanem ja laps ei jaga mingeid ressursse Töötamine Vanem ja laps töötavad paralleelselt Vanem ootab, kuni laps töö lõpetab main () { int parentid = getpid(); char prgname[1024]; fgets(prgname, 1024, stdin); /* input new program name */ int cid = fork(); if (cid == 0) { /* I m the child process */ execlp(prgname, prgname, 0); /* Load the program */ perror("can t execute program %s", prgname); else { /* I m the parent process */ waitpid(cid, 0, 0); /* Wait the child to terminate */ printf("program %s finished\n", prgname); Eri mudelid: fork+exec, CreateProcess MEELIS ROOS 11 MEELIS ROOS 12

Protsessi lõpetamine Protsesside lõpetamine: näide Protsess võib lõppeda vabatahtlikult (exit) Vanemale antakse tagasi väljundinfo (wait) Operatsioonisüsteem vabastab protsessiga seotud ressursid Sunniviisiliselt vanemprotsess tapab (kill), opsüsteem tapab, vanemprotsess sureb ja opsüsteem tapab seetõttu main () { int cid = fork(); if (cid == 0) { /* I m the child process */ sleep(5); /* I ll exit myself after 5 seconds */ printf("quitting child\n"); exit(0); printf("oops! Shouldn t be here!\n"); else { /* I m the parent process */ printf("type any character to kill the child\n"); char c = getchar(); if (!kill(cid, SIGKILL)) printf("killed the child\n"); MEELIS ROOS 13 MEELIS ROOS 14 Koostööd tegevad protsessid Tootja-tarbija probleem Sõltumatud protsessid ei saa teisi protsesse mõjutada ega teiste protsesside poolt mõjutatud saada Koostööd tegevad protsessid saavad teisi protsesse mõjutada ja/või teiste protsesside poolt mõjutatud saada Miks protsesside koostööd vaja on? Info jagamine Töö kiirendamine Modulaarsus Mugavus Tootja - producer, tarbija - consumer Protsesside koostöö paradigma Tootjaprotsess toodab mingit infot ja tarbijaprotsess saab selle kätte ja kasutab Puhverdamine Piiramata puhvriga praktiliselt pole piire kahe protsessi vahelisel puhvril Piiratud puhvriga sidepuhvri(te)l on fikseeritud suurus MEELIS ROOS 15 MEELIS ROOS 16

Näide piiratud puhvrist: jagatud mälu Piiratud puhver: tootja ja tarbija #define BUFFER_SIZE 10 typedef struct { item; item buffer[buffer_size]; int in = 0; int out = 0; Töötab, aga kasutada saab kuni BUFFER SIZE - 1 elementi Tootja protsess item nextproduced; while (1) { while (((in + 1) % BUFFER_SIZE) == out) ; /* do nothing */ buffer[in] = nextproduced; in = (in + 1) % BUFFER_SIZE; MEELIS ROOS 17 MEELIS ROOS 18 Piiratud puhver: tootja ja tarbija Protsessidevaheline side Tarbija protsess item nextconsumed; while (1) { while (in == out) ; /* do nothing */ nextconsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; IPC Interprocess Communication Operatsioonisüsteemi poolt pakutav mehhanism protsesside vahel side pidamiseks ja tegevuste sünkroniseerimiseks Jagatud mälu või teadete edastamine Näide: System V IPC jagatud mälu, semaforid, teadete järjekorrad Näide: UNIXi torud (pipe) Näide: Windowsi aknateated (window messages) MEELIS ROOS 19 MEELIS ROOS 20

Teadete saatmine Otsene suhtlus IPC mehhanism pakub kahte operatsiooni: send(message) teate suurus fikseeritud või vaba receive(message) Kui protsessid P ja Q tahavad suhelda, siis peavad nad Omavahel mingi ühenduse looma Vahetama teateid send/receive abil Ühenduse omadusi: Otsene või kaudne suhtlus? Sümmeetriline või asümmeetriline suhtlus? Automaatne või käsitsi toimuv puhverdamine? Koopia või viida saatmine? Kindla või suvalise pikkusega teated? Protsessid saadavad teateid otse üksteisele Peavad üksteise nimesid teadma: send(p, message) teate saatmine protsessile P receive(q, message) teate vastuvõtt protsessilt Q Sidakanali omadused Ühendused luuakse automaatselt Ühendus on seotud täpselt ühe paari protsessidega Iga protsessipaari vahel on täpselt üks ühendus Ühendus võib olla ühesuunaline, enamasti on kahesuunaline MEELIS ROOS 21 MEELIS ROOS 22 Kaudne suhtlus Postkastide kasutamine Teated saadetakse postkastidesse ja võetakse vastu postkastidest (mailbox, tihti ka port) Igal postkastil oma ID Protsessid saavad suhelda ainult siis, kui nad jagavad mingit postkasti Postkast võib kuuluda nii rakendusele kui operatsioonisüsteemile Sidakanali omadused Ühendus luuakse ainult siis, kui protsessid jagavad postkasti Ühendus võib olla paljude protsesside vahel Iga protsesside paar võib jagada mitut postkasti Ühendus võib olla nii ühe- kui kahesuunaline Operatsioonid postkastidega: send(a, message) teate saatmine postkasti A receive(a, message) teate vastuvõtt postkastist A Kui postkastid kuuluvad opsüsteemile, on olemas primitiivid ka postkastide loomiseks ja kustutamiseks Postkastil on omanik (protsess) Lugeda saab kas ainult omanik või ka omaniku poolt lubatud teised protsessid Omanikuõigust ja lugemisõigust saab edasi saata Mis juhtub, kui postkasti tuleb teade ja lugejaid on mitu? Näited: Mach, Windows 2000 MEELIS ROOS 23 MEELIS ROOS 24

Sünkroniseerimine Puhverdamine Teadete saatmine võib olla nii blokeeruv kui mitteblokeeruv Blokeerumine annab sünkroonse suhtluse Mitteblokeerumine annab asünkroonse suhtluse Saatmine ja vastuvõtt võivad teineteisest sõltumatult olla blokeeruvad või mitteblokeeruvad Ühendusega on seotud teadete järjekord Järjekorra pikkuse jaoks mitu võimalust: Null mitte ühtegi teadet, käsitsi puhverdamine Piiratud maht etteantud arv teateid, kui saatmisel on järjekord täis, siis sünkroonne saatja blokeerub ruumi vabanemiseni Piiramatu maht saatja ei blokeeru kunagi MEELIS ROOS 25 MEELIS ROOS 26 Klient-server mudel: soklid Klient-server mudel: kaugprotseduurid Sokkel side otspunkt Side toimib kahe sokli vahel Sokli aadressiks on masina aadressi ja protsessi identifikaatori komplekt Näiteks TCP/IP puhul IP aadress + pordi number Näide: sokkel 16125198:1625 ühes otsas ja sokkel 193405125:80 teises otsas Kaugprotseduuri väljakutse (RPC Remote Procedure Call) üldistab protseduuride väljakutseid erinevate arvutite protsesside vahel Tüügas (stub) kliendipoolne proksi, mida kutsutakse välja tegeliku protseduuri asemel Tüügas otsib serveri ja kodeerib parameetrid õiges formaadis Serveripoolne tüügas saab teate, kodeerib parameetrid lahti ja kutsub tegeliku protseduuri välja Näide: SunRPC (+XDR), DCE RPC Portmapper (ka matchmaker, rendezvous daemon) MEELIS ROOS 27 MEELIS ROOS 28