UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 CorsodiLaureainMatematica DipartimentodiMatematicaeFisica Sistemiperl’elaborazionedelleinformazioni 3.Sistemioperativi DispensedelcorsoIN530a.a.2016/2017 prof.MarcoLiverani Premessa • • • Ilsistemaoperativo èilsoftwaredibasechesovrintendealfunzionamentodell’intero computer,all’esecuzionedeiprogrammi,all’interazionecongliutenti Èlostratosoftwarechesicollocatral’hardwaredellamacchinaeilsoftwareapplicativo utilizzatodall’utenteefornisceun’astrazionedell’hardwareaiprogrammisoftware Ilsistemaoperativosioccupadella – – – – • • • gestionedellecomponentihardware esecuzionedeiprogrammi interazioneconleperiferiche interazionecongliutenti Èilsistemaoperativoadefinirelamodalità operativa delcomputer Èilsistemaoperativoadefinirelamodalità diutilizzo delcomputerdapartedegliutenti Utenti Processo 1 Processo 2 Processo 3 Software Sistema Operativo Computer (CPU, memoria, dispositivi I/O, …) Hardware Alcuniesempi:MicrosoftWindows,GNULinux,AppleOSX,SunSolaris,HP-UX,IBMAIX, IBMZ-OS,GoogleAndroid,AppleiOS,Chrome OS,FreeBSD,NetBSD,Plan9,GNUHurd,... M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 1 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Caratteristichediunsistemaoperativo Ilsistemaoperativodefiniscelamodalitàoperativadellamacchina: – sistemioperativibatch:ilcomputeresegueprogrammiinmodalitànoninterattiva,l’utentecarica datieprogrammaesoloalterminedell’elaborazioneottieneunoutput – sistemioperativitimesharing interattivi:lamacchinaeseguepiùprogrammidedicandoaturnoa ciascunprogrammaunapartedeltempoCPU;l’utenteinteragisceconilprogrammadurantelasua esecuzione,fornendoinputeottenendooutputanchedurantel’esecuzione – sistemioperativireal time:lamacchinaèdedicataamanovraredegliapparati(es.:unbraccio robotizzato,untornioacontrollonumerico,ecc.)eilsistemaoperativogarantiscel’esecuzionedel programmainuntempopredefinito,senzalatenzeopossibilitàdideterioramentodelleprestazioni – sistemioperativiembedded:ilcomputeredilsistemaoperativosonointegratiinunapparato hardware(es.:un’automobile)enecontrollanoilfunzionamentodialcunecomponenti – sistemioperativihypervisor:ilsistemaoperativoconsentelaripartizionedellerisorsehardwarein piùmacchinevirtualidicuipresentaun’astrazioneperpotereseguire,comeprogrammi,altri sistemioperativiospiti Avoltesistemioperativitimesharing contengonocomponentidivirtualizzazione(hypervisor)e consentonounpartizionamentodelcomputerinpiùmacchinevirtuali(es.:partizioniIBMZ/OS, zoneSunSolaris,ecc.) Caratteristichediunsistemaoperativo Isistemioperativipossonoessere – mono-task (mono-programmazione):ilsistemaoperativoconsentel’esecuzionediunsolo programmapervolta;unsecondoprogrammapuòessereeseguitosoloquandoilprecedenteha terminatoilpropriolavoro(es.:MicrosoftMS-DOS,AppleSystem1-5) – multi-task (multi-programmazione):ilsistemaoperativoconsentel’esecuzionedipiùprogrammi contemporaneamente,dedicandoaciascunoaturnounpo’deltempodielaborazione(es.: MicrosoftWindows,AppleSystem6-9,AppleOSX,GNULinux,SunSolaris,...) • multi-tasking cooperativo:èunaversionepocoefficientedimulti-tasking incuièilprogramma(enonil sistemaoperativo)astabilirequandorilasciarelaCPUperl’esecuzionediistruzionidialtriprogrammi – multi-threading:unprogrammavienesuddivisoinpiùthread distinti,eseguiti contemporaneamentesullastessaCPU,inmododamigliorareleperformancedelprogramma utilizzandopiùafondolaCPU;ilmultithreadingdeveesseresupportatodaunhardware(CPU)che lorendapossibile(es.:MicrosoftWindowsNT/2000/...,GNULinux,SunSolaris,...) – mono-utente:ilsistemaoperativononpossiedeilconcettodiutenteenondistinguel’utenteche utilizzailcomputer(es.:MicrosoftMS-DOS,MicrosoftWindows95/98,AppleSystem1-9) – multi-utente:ilsistemaoperativopossiedeilconcettodiutenteedassegnaaciascunutentefile sullamemoriasecondariaeprocessiinesecuzione(es.:MicrosoftWindowsNT/2000/...,GNULinux, SunSolaris,...) M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 2 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Componentidiuncomputer • • • Memoria secondaria Memoria secondaria Uncomputerèunsistemaformatoda diversecomponenti:unaunitàcentrale connessaconuninsiemediunità periferiche Ilsistemaoperativogarantisceil funzionamentodituttequeste componentielettroniche, elettromagneticheemeccaniche, coordinandolacomunicazionetrale diverseunità Controller BUS Scheda video Traleinterfaccedirete: Monitor – Ethernet,wi-fi,GSM,ecc. • Memoria primaria (RAM) CPU Porte di connessione periferiche Interfacce di rete Stampante Monitor Traleportediconnessione: Mouse Rete Tastiera – parallela,seriale,USB,Bluetooth, Thunderbolt,ecc. Scanner Unità Periferiche Terminale Strutturadiunsistemaoperativo Gestionedeiprocessi,scheduler Gestionedellamemoriaprimaria Gestionedelfilesystem Gestionedelleperiferiche e dell’input/output 5. Gestionedellamemoriasecondaria 6. Gestionedellaprotezione edella sicurezza 7. Gestionedelleinterfacceversol’utentee iprogrammiapplicativi Gestionedell’interfaccia verso utenti eprogrammi Gestionedella protezione edella sicurezza Gestionedella memoria secondaria Gestionedelleunità periferiche Gestionedelfilesystem Gestionedellamemoria primaria Gestioneprocessi, Scheduler Kernel 1. 2. 3. 4. Hardware M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 3 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Strutturadiunsistemaoperativo • • IlKernel costituisceilnucleofondamentaledelsistemaoperativo:sulkernel siappoggianole altrefunzionidelsistemaoperativostesso Inbaseallastrutturainternadelsistemaoperativoedelsuokernel sidistinguonotremacrotipologiedifferenti: – Sistemioperativiakernel monolitico:implementaunacompletaastrazionedelcomputersucui girailsistemaoperativostesso(es.:GNULinux,FreeBSD,...) – Sistemioperativiamicro-kernel:implementanonelkernel sololefunzioniessenziali,demandando adaltriprogrammidisistema(device driver,server)l’implementazionedellealtrefunzioni(Minix, IBMAIX,...) – Sistemioperativiibridi:implementanonelkernel diversefunzionidelsistemaoperativo,maal momentodell’avviopossonocaricaredeimoduliaggiuntivichearricchisconoeintegranolefunzioni offertedalkernel Gestionedeiprocessi/Scheduler • • • Unprocesso èun’istanzainesecuzionediunprogramma Inuncomputerconsistemaoperativomulti-taskpossonoessereeseguitipiùprocessi contemporaneamente(diprogrammidiversiodiunostessoprogramma) Lagestionedeiprocessidapartedelsistemaoperativoconsistenelleseguentiattività: – – – – • creazioneeterminazionediunprocesso sospensioneeripristinodell’esecuzionediunprocesso sincronizzazioneecomunicazionetraprocessiinesecuzione(IPC:inter-process communication) gestionedelbloccodiunprocesso(deadlock) Iprocessipossonoeseguiredellechiamateafunzionidisistemaperotteneredeiservizidal sistemaoperativorelativeallagestionedeiprocessistessi: – – – – esecuzionedialtriprocessi(exec) replicadelprocessoinesecuzione(fork) inviodisegnalidaunprocessoadunaltro(wait,signal) terminazionediunprocesso(kill/terminate) M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 4 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Gestionedeiprocessi/Scheduler Esempiodichiamatedisistemaperreplicazionedelprocessoinesecuzione(fork): #include <stdio.h> #include <unistd.h> #include <stdlib.h> int main(void) { int pid=0, i; pid = fork(); if (pid == 0) { for(i=0; i < 10; i++) { printf("Figlio: %d\n", i); sleep(1); } _exit(0); } else if (pid > 0) { for(i=0; i < 10; i++) { printf("Padre: %d\n", i); sleep(1); } } else { fprintf(stderr, "Errore nel fork"); exit(1); } return 0; Esegueunacopiadelprocessoattuale:alla variabilepid vieneassegnatoilprocess-id del processofigliocreatodafork() Sepid=0 allorailprocessoèil“figlio” evieneeseguitaquestapartediprogramma Sepid>0 allorailprocessoèil“padre”eviene eseguitaquest’altrapartediprogramma:pid èil process-id delprocessofigliocreatodafork() } Gestionedeiprocessi/Scheduler • • • Mediantelasystem call“fork”ilsistemaoperativo,apartiredaunprocessoinizialediavvio delsistemastesso,èingradodieseguire,inbaseallasuaconfigurazione,altriprocessiin cascata Sivienequindiacreareunagerarchiaadalbero“padre/figlio”traiprocessieseguitisul computer:laradiceèilprocessodiinizializzazionedelsistema(suUNIX:“init”) OgniprocessoèidentificatodaunPID (process ID),daunPPID (parent process ID)edauno USERID (codiceidentificativodell’utentechestaeseguendoilprocesso) marco@home ~$ pstree init─┬─auditd──{auditd} ├─crond ├─httpd──3*[httpd] ├─2*[mingetty] ├─rsyslogd──3*[{rsyslogd}] ├─2*[sendmail] ├─sshd──sshd──sshd──bash──pstree ├─udevd──2*[udevd] └─vsftpd marco@home ~$ ps -ef UID PID PPID C root 1 0 0 root 375 1 0 root 1209 1 0 root 1229 1 0 root 1291 1 0 root 1303 1 0 root 1339 1 0 smmsp 1350 1 0 root 1371 1 0 root 1412 1 0 root 1414 1 0 root 1416 375 0 root 2229 1 0 apache 6128 2229 0 apache 6129 2229 0 root 16640 1291 0 marco 16642 16640 0 M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni STIME 2014 2014 2014 2014 2014 2014 2014 2014 2014 2014 2014 2014 2014 Feb22 Feb22 09:55 09:56 TTY ? ? ? ? ? ? ? ? ? tty1 tty2 ? ? ? ? ? ? TIME 00:00:23 00:00:00 00:03:28 00:02:27 00:02:48 00:00:02 00:03:32 00:00:01 00:00:26 00:00:00 00:00:00 00:00:00 00:06:08 00:00:03 00:00:00 00:00:00 00:00:00 CMD /sbin/init /sbin/udevd auditd /sbin/rsyslogd /usr/sbin/sshd /usr/sbin/vsftpd sendmail: accept sendmail: Queue crond /sbin/mingetty /sbin/mingetty /sbin/udevd –d /usr/sbin/httpd /usr/sbin/httpd /usr/sbin/httpd sshd: marco [pri sshd: marco@pts/ 5 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Gestionedeiprocessi/Scheduler • Ciascunprocessoduranteilsuo“ciclodivita”puòtrovarsiinunodeiseguentistati: – init:statoinizialedicaricamentodelprocessoinmemoria:vienelanciatoinesecuzioneil programmaevienecreatoilprocessoeallocatalasuamemoria – ready:ilprocessoèprontoperessereeseguitodallaCPU – running:ilprocessoèinesecuzionedapartedellaCPU – waiting:ilprocessoèsospesoinattesadiunevento(es.:larispostadaundevice) – swapped:ilprocesso,inattesadieventi,èstatoportatonellamemoriavirtualeinattesadiessere recuperatonellamemoriaprimariaperessereeseguito – zombie:ilprocessohaconclusolasuaesecuzione,maèancorapresentenellamemoria(possiede unPID)inattesacheilprocessopadreloliberidefinitivamente – terminated:ilprocessoèincorsoditerminazione,ilsistemaoperativolostade-allocandodalla memoria ready init running zombie swapped waiting terminated Gestionedellamemoriaprimaria • Lamemoriaprimariaècostituitadairegistri dellaCPU,dallamemoriacache dellaCPUedallamemoriaRAM(randomaccess memory) Icompitidelsistemaoperativonellagestionedellamemoriasono: – allocazioneedeallocazione dellamemoriarichiestadaiprocessiinesecuzione – mantenereseparateleporzionidimemoriadestinateaprocessidiversisuun sistemamulti-tasking,evitandoconflittinell’usodellamemoria – gestireilcollegamentotragliindirizzidimemorialogiciutilizzatidaiprocessiela memoriafisicadellamacchina – gestirelapaginazione elamemoriavirtuale,spostandosumemoriasecondaria pagine(porzioni)dimemoriaprimariaecaricandodallamemoriasecondariapagine diinformazionidariallocarenellamemoriaprimaria(swap) • Stack Lechiamatedisistemacheiprocessipossonoinvocareperottenereservizidi gestionedellamemoriadalsistemaoperativosono: Memoria primaria • – malloc,calloc,realloc,perl’allocazionedinamicadiblocchidimemoria; – free perladisallocazione diblocchidimemoriaprecedentementeallocati • Lamemoriaprimariadellamacchinaèunapilacostituitada – stack:crescedall’altoversoilbasso,perallocarevariabilirichiestedallachiamatadi funzioni – heap:crescedalbassoversol’alto,perallocaredinamicamenteporzionidimemoria – codesegment:sottoalloheap,contieneleistruzioniinlinguaggiomacchinadel processo(comeprevistodalmodellodiVonNeumann,ilprogrammaènella memoriadellamacchina M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni Heap Code segment 6 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Gestionedelfilesystem • • • • • Ilfilesystem èun’astrazionedelmodelloconcuiilsistemaoperativogestisceidatisulla memoriasecondaria;ilmodelloèindipendentedaltipoedalnumerodidispositividi memoriasecondaria L’elementodibaseèilfile,unasequenzadibytememorizzatasullamemoriasecondaria,che terminaconilsimboloEOF(endoffile) Ilfilesystemfornisceancheunmodelloastrattoconcuiifilesonoorganizzatisullamemoria secondaria(tipicamenteunastrutturaadalberodidirectory esotto-directory) Ilconcettodidirectory (“cartella”)èanch’essoun’astrazione:ancheunadirectoryèunfile; l’inclusionediunfileinunadirectoryèrealizzatomediantepuntatori“padre-figlio” Ladenominazionedeifile,ilsetdicarattericoncuipossonoesseredenominati,i metacaratteri concuisiindicalacollocazionediunfilenelmodellodelfilesystem,sono alcunidegliaspettidefinitiperognispecificomodellodifilesystem – “C:\DOCUMENTI\TESI.TEX” èuntipicopath assolutocheidentificaunivocamenteunfile dislocatosuldisco“C”sulsistemaoperativoMS-DOSoMicrosoftWindows NOTA:nonècasesensitive evienespecificatol’identificativodell’unitàfisicasucuièpresenteilfile – “~liverani/src/minimumSpanningTree.c” èilpath diunfilesuunfilesystemdiunsistema operativoditipoUNIX NOTA:ècasesensitive,siutilizzalaconvenzione“~username”peridentificarelahomedirectorydiunutente, ilpath èindipendentedallacollocazionefisicadelfilesuunospecificodevice Gestionedelfilesystem • Iprocessipossonoinvocarefunzionidisistemaperoperaresulfilesystem: – – – – • • creazioneecancellazionedifile aperturaechiusuradifile(fopen/fclose) letturaescritturadifile(fget/fread/fwrite/...) impostazionediattributidelfile(read only,writable,executable,...) Ilfilesystemimplementameccanismidiprotezionedeifile,perrestringerel’accessoaisoli utentiautorizzatiegestisceunacodadellerichiestediaccessoalfiledapartedeiprocessi Suunsistemaoperativomultiutenteilfilesystemtienetracciadell’identificativodell’utente proprietariodelfileedelleregolediaccessoalfilepergliutentidelsistema / var/ spool/ mail/ dev/ log/ usr/ lib/ bin/ bin/ etc/ lib/ local/ lib/ M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni home/ marco/ bin/ src/ doc/ chiara/ doc/ 7 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Gestionedelleperifericheedell’input/output • • • • Ilsistemaoperativogestiscelacomunicazione(iningressoeinuscita)versoleunità periferiche,fornendoun’astrazioneedellefunzioniperl’utilizzoditalecanaledi comunicazioneaiprogrammi Siccomepiùprogrammicontemporaneamentepossonorichiederel’accessoaduna determinataperiferica(es.:l’outputsulvideodiunterminale,l’inputdatastiera,l’inviodi datiadunastampante,ecc.)èilsistemaoperativoagestireinmodocoordinatolacodadi richieste (serializzazione)evitandoconflittiemalfunzionamenti Ilsistemaoperativorendeefficientelacomunicazioneversoundeterminatodispositivo periferico,anchemediantel’utilizzodiun’areadimemoriadettabuffer,incuisiaccodanoi datidirettiversolaperifericaoprovenientidallaperifericaedestinatiaiprogrammi L’interazioneconleperiferiche(device,dispositivi)avvieneattraversoappositimoduli softwaredettidevice driver Processo1 Processo2 Memory Buffer Device Driver Physical Interface Physical Device SistemaOperativo Gestionedellamemoriasecondaria • • • • • Lamemoriasecondariaècostituitadaidispositividimemorizzazionepersistente,ossiache mantengonomemoriadelleinformazioniregistrateancheamacchinaspenta Lamemoriasecondariaèdisponibileinquantitàmoltosuperiorerispettoallamemoria primaria(almeno100voltesuperioresuunnormalepersonalcomputer,adesempio) Lamemoriasecondaria,perragionifisicheetecnologiche,hauntempodiaccessoedi trasferimentodeidatimoltopiùaltirispetto allamemoriaprimaria Tipicidispositividimemoriasecondaria(omemoriadimassa):harddiskmagnetici,dischi ottici,dispositividimemoriaastatosolido(SSD),flashdrive,schededimemoriaXD,ecc. Operazioniprincipalisvoltedalsistemaoperativopercontodeiprocessiattivi: – allocazione/deallocazione dellospazioperlamemorizzazionedidati(file) – gestionedellospazioliberosull’unitàdimemoriadimassa – ottimizzazione,serializzazioneescheduling delleoperazionisullamemoriadimassa • • Lagestionedelfilesystemedellamemoriasecondariasonoduefunzionidistintedelsistema operativo,anchesesonostrettamentecollegate Difattolacomponentedelsistemaoperativochesioccupadellagestionedellamemoria secondaria,rendetrasparenteaiprogrammiiltipodidispositivodimemoriautilizzato – AdesempioinlinguaggioCsiusanolestessechiamatedisistemaperoperaresufileregistratisu dispositividitipodifferente M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 8 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Gestionedellaprotezioneedellasicurezza • • Inunsistemamulti-taskemulti-utenteilsistemaoperativosioccupadellaprotezionedelle risorse:laprotezioneèdirettaasalvaguardarelariservatezzadellerisorsedaiprocessie dagliutenti Laprotezioneèbasatasu: – autenticazione:proceduradiaccertamentodell’identitàdiunutente – autorizzazione:proceduradiaccertamentodeldirittodiaccedereadunarisorsa(inuna determinatamodalità)dapartediunutenteodiunprocesso • Leprocedurediautorizzazioneperiprocessisonolegatealleautorizzazioniassegnateagli utenti: – ogniprocessoèinesecuzionepercontodiunutente – ilprocessoereditaleautorizzazionidell’utentecheloesegueperl’accessoallerisorsedelsistema – iprocessidelsistemaoperativovengonoeseguitidaunutenteconilmassimolivellodi autorizzazione(root,administrator,ecc.) • • Icriteridiprotezionedellerisorsesonobasatisuregolechemappanoleautorizzazionidi accessoallarisorsacongliutentidelsistema(es.:autorizzazionidiaccessoadunfile) Persemplificarelamappaturadelleautorizzazioni,spessoilsistemaoperativoconsentedi aggregaregliutentiingruppi,mappandopoileautorizzazionisulgruppo:gliutentiereditano leautorizzazionichesonostateassegnateaigruppidicuifannoparte Gestionedellaprotezioneedellasicurezza • • Isistemioperativimulti-utenteimplementanoproceduredilogin perl’accessoalsistema Laproceduradilogin: – autentical’utentesullabasedellecredenzialidiaccessodichiaratedall’utentestesso(usernamee password) – verificasel’utenteèautorizzatoadaccederealsistema • Laproceduradiloginèbasatasuunrepositorydicredenzialidegliutentiedidefinizionedei gruppidiutentiodeiprofiliautorizzativi: – ifile/etc/passwd,/etc/shadow,/etc/group inambienteUNIX – ilsistemaRACF(resource access controlfacility)inambienteZ/OSsuigrandimainframeIBM – directoryserverLDAP(lightweight directoryaccess protocol)percondividereicriteridi autenticazioneeautorizzazionetraicomputerdiunostessogruppo/dominio(es.:MicrosoftActive Directory,UNIXNetworkInformationSystem/YellowPages,ecc.) – altrisistemidiautenticazioneeautorizzazioneesterni • • NOTA:ilmeccanismodiautenticazionebasatosuusername epassword nonèl’unico,néil piùsicuro,maècertamenteilpiùdiffuso Lapasswordnonèmaimemorizzatasulsistema: – dellapasswordsulsistema(fileodirectoryserver)vieneconservatounhash nonreversibile; – autenticazione:l’utenteinseriscelapasswordinchiaro,ilsistemaproducel’hash dellapassworde loconfrontaconquellomemorizzatosulrepository dellecredenziali M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 9 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Interfacciaversoleapplicazioniegliutenti • • Ilsistemaoperativooffredellefunzionialleapplicazionipercostruireglistrumentididialogo edinterazioneconl’utente Userinterface: – Alfanumerica:ilsistemaoperativooffreunmodelloastrattoditerminaleperpresentarele informazionisuunoschermoingradodivisualizzarecaratterialfabeticienumericiedacquisire l’inputattraversounatastiera – Graphical UserInterface(GUI):ilsistemaoperativooffreuninsiemedifunzioniaiprogrammicon cuipossonocostruireun’interfacciautentegrafica,basatasuelementiqualilefinestre eleicone; l’inputavvieneanchemedianteilmouse (ountrackpad ountouch-screen)enonsololatastiera • Alcunisistemioperativisonostrettamentelegatiadunaspecificainterfacciautentegrafica: inquesticasiilsistemaoperativononfunzionasenzalasuaGraphical UserInterface • Altrisistemioperativiinveceprevedonodibasesoloun’interfacciautentealfanumericae implementanol’interfacciautentegraficacomeunadd-on nonindispensabile,basatosuun modelloclient/server – Esempi:MicrosoftWindows,AppleOSX – Esempi:isistemioperativiUNIXeLinuxeilsistemaXWindow Interfacciaversoleapplicazioniegliutenti • IlsistemaXWindow (X11)èunsistemaclient-server cheimplementaun’interfacciautente graficadistribuita: – èportabile:neesistonoversioniperognisistemaoperativo,nonsoloUNIX – ilmodelloclient/serverseparal’ambientediesecuzionedell’applicazionechesfruttalagraphical user interface dall’ambienteincuilagraphical user interface vieneutilizzatadall’utente(condisplay grafico,mouse,tastiera,ecc.) – èindipendentedalwindow manageredaldesktopmanager,l’utilitycheaiutal’utenteagestirele finestresulpropriodisplaygraficoconl’usodelmouse • ClientX11:l’applicazionecheutilizzaleAPIdelsistemaX11peracquisireinputattraverso mouseetastieraeprodurreoutputinunambientegraficocostituitodapiùfinestre visualizzatecontemporaneamente – IlclientX11spessoèunserversucuigiranoiprogrammilanciatidall’utenteattraversoilproprio TerminalegraficoX11 • ServerX11:l’applicazionecheaccettaconnessionidaiclientegestisceleperiferichediinput (mouse,tastiera,...)edioutput(unoopiùdisplaygrafici)connessealterminalegrafico (TerminaleX11)dell’utente – Ilterminalegraficodell’utentepuòessereancheunpersonalcomputerconunsuosistema operativo(MicrosoftWindows,Linux,AppleOSX,...)cheesegueilprogrammaServerX11 • NelsistemaXWindow ilclientedilserverX11comunicanoattraversolarete,anchesesono eseguitisullostessocomputer M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 10 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Interfacciaversoleapplicazioniegliutenti • • IlsistemaXWindow implementailprotocolloX11 perlacomunicazionetraclientgrafico(cheoperasul serverapplicativo)eservergrafico(cheoperasullapostazioneclientdell’utente) IlprotocolloX11puòessereveicolatoattraversoun Sistema Operativo Client Microsoft Windows “tunnel”SSHperrenderesicura(cifrata) lacomunicazionetraclienteserver X11 Server I/O di Gnuplot I/O di Xterm Sistema Operativo Server Sun Solaris (UNIX) X11 Client Gnuplot X11 Client Xterm X11 Client Xterm X11 Client Firefox Sistema Operativo Client Apple OS X X11 Server I/O di Xterm I/O di Firefox • • Leapplicazioni(X11client)sonoeseguitesulservered impegnanolerisorsedicalcolo(CPU,memoria,...) delserver L’outputèvisualizzatosulclient(X11server),sfruttandonelecapacitàgrafiche Bibliografiaessenziale ① StephenR.Bourne,UNIXSystemV,Addison-Wesley,1990. ② BrianW.Kernighan,Rob Pike,TheUNIXProgrammingEnvironment,Prentice Hall,1984 ③ MarcJ.Rochkind,AdvancedUNIXprogramming,Prentice Hall,1985 ④ AndrewS.Tanenbaum,Imodernisistemioperativi,terzaedizione,Pearson,2009. M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 11 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 TWMX11Window Manager UnaschermatadeldisplaydiunaworkstationgraficaX11inambienteUNIXconilwindow managerTWM M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 12