220 likes | 358 Views
Sünkroonsed ja assünkroonsed protsessid. Klient-server rakendused. Mis meil praegu selge. Meil on eri programmid eri kihtides Need kutsuvad välja üksteise funkstioone Sama asi eri nimedega Call-Return Request-Response Sõnumivahetus Andmevahetus. Mis meil veel selge. Programmid paiknevad
E N D
Sünkroonsed ja assünkroonsed protsessid Klient-server rakendused
Mis meil praegu selge • Meil on eri programmid eri kihtides • Need kutsuvad välja üksteise funkstioone • Sama asi eri nimedega • Call-Return • Request-Response • Sõnumivahetus • Andmevahetus
Mis meil veel selge • Programmid paiknevad • Samas protsessis • Eri protsessis samas masinas • Eri protsessis eri masinates
Protsessid ja lõimed • Protsess • Opsüsteem objekt, millel on • Mälupiirkond, ressusrsid, turvapiir • Lõim (thread) • Opsüsteem objekt, mis kujutab • Täidetavad koodi
Mitu protsessi samas arvutis • Mälujaotus • Sisemine turvamine • IPC – protsessivaheline kommunikatsioon • Sõnumivahetus • Semaforid, ressursid, ootamine, lukustus • Lõimeohjamine (thread management)
Mitu lõime samas arvutis • Mitu koodi korraga • Eri protsessorid • Sama protsessor • Vabatahtlik, koostööpõhine • Sunniviisiline • Lõime olekud • Tööseisund (working) • Valmidusseisund (ready) • Ooteseisund (waiting)
Kooostööpõhine ja sunnitud • Koostööpõhine mitmelõimelisus (collaborative multithreading) • Iga lõim (kood) jääb ootele, kui tal vaja kuskilt midagi (working to waiting to ready) • Järgmine ootel lõim asub tööle (ready to working) • Sunnitud mitmelõimelisus (preemptive multithreading) • Süsteem jaotab protsessorite aja ühesuurusteks tükkideks • Lõimed kasutavad ajapilusid kordamööda
Ühe protsessoriga Ajapilu
Kahe protsessoriga CPU1 CPU1 wait CPU1 CPU1 CPU1 CPU2 CPU1 CPU2 CPU2 CPU2 CPU1 CPU1 CPU2 CPU1 CPU2 CPU2 CPU2 CPU2 Ajapilu
Protsessid ja opsüsteem • Protsessi käivitamine • Turvakonteksti määramine • Põhilõime loomine • Mäluhaldus
Lõimed ja opsüsteem • Prioriteetimine • Katkestamine • Säilitamine • Taastamine
IPC Klient Server opsüsteem NETWORK Klient-Server põhimudel
IPC Klient Server opsüsteem Set x = new S() Call x.meetod(…) Return Set x = nothing NETWORK Klient-Server põhimudel
IPC Klient Server opsüsteem NETWORK Ükskõikne klient
IPC Klient Server opsüsteem opsüsteem NETWORK Ükskõikne klinet, serverteenus
IPC Klient Server opsüsteem NETWORK Sõnumijärjekord (Messaging)
IPC MMQ Reader Klient Proxy Server opsüsteem NETWORK Sõnumijärjekord (Messaging)
IPC Klient Server opsüsteem Call x.meetod(…, a(callback)) Call callback() NETWORK tagasipöördumismudel
IPC Klient Server E1 A1 E2 A2 E3 A3 opsüsteem E4 A4 E5 A5 E6 A6 Raise event() NETWORK Sündmusmudel
IPC Klient Server Subscribe event opsüsteem Register event Call metod Fire event ERSDB NETWORK Tellimismudel