3. sistemi operativi · ibm z-os, google android, apple ios, chromeos, freebsd, netbsd, plan9, gnu...
TRANSCRIPT
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017
M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 1
CorsodiLaureainMatematicaDipartimentodiMatematicaeFisica
Sistemiperl’elaborazionedelleinformazioni
3.Sistemioperativi
DispensedelcorsoIN530a.a.2016/2017
prof.MarcoLiverani
Premessa
• Ilsistemaoperativo èilsoftwaredibasechesovrintendealfunzionamentodell’interocomputer,all’esecuzionedeiprogrammi,all’interazionecongliutenti
• Èlostratosoftwarechesicollocatral’hardwaredellamacchinaeilsoftwareapplicativoutilizzatodall’utenteefornisceun’astrazionedell’hardwareaiprogrammisoftware
• Ilsistemaoperativosioccupadella– gestionedellecomponentihardware– esecuzionedeiprogrammi– interazioneconleperiferiche– interazionecongliutenti
• Èilsistemaoperativoadefinirelamodalitàoperativa delcomputer
• Èilsistemaoperativoadefinirelamodalitàdiutilizzo delcomputerdapartedegliutenti
• Alcuniesempi:MicrosoftWindows,GNULinux,AppleOSX,SunSolaris,HP-UX,IBMAIX,IBMZ-OS,GoogleAndroid,AppleiOS,Chrome OS,FreeBSD,NetBSD,Plan9,GNUHurd,...
Sistema Operativo
Processo 1
Processo 2
Processo 3
Computer (CPU, memoria,dispositivi I/O, …)
Utenti
Software
Hardware
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017
M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 2
Caratteristichediunsistemaoperativo
Ilsistemaoperativodefiniscelamodalitàoperativadellamacchina:– sistemioperativibatch:ilcomputeresegueprogrammiinmodalitànoninterattiva,l’utentecarica
datieprogrammaesoloalterminedell’elaborazioneottieneunoutput– sistemioperativitimesharing interattivi:lamacchinaeseguepiùprogrammidedicandoaturnoa
ciascunprogrammaunapartedeltempoCPU;l’utenteinteragisceconilprogrammadurantelasuaesecuzione,fornendoinputeottenendooutputanchedurantel’esecuzione
– sistemioperativireal time:lamacchinaèdedicataamanovraredegliapparati(es.:unbracciorobotizzato,untornioacontrollonumerico,ecc.)eilsistemaoperativogarantiscel’esecuzionedelprogrammainuntempopredefinito,senzalatenzeopossibilitàdideterioramentodelleprestazioni
– sistemioperativiembedded:ilcomputeredilsistemaoperativosonointegratiinunapparatohardware(es.:un’automobile)enecontrollanoilfunzionamentodialcunecomponenti
– sistemioperativihypervisor:ilsistemaoperativoconsentelaripartizionedellerisorsehardwareinpiùmacchinevirtualidicuipresentaun’astrazioneperpotereseguire,comeprogrammi,altrisistemioperativiospiti
Avoltesistemioperativitimesharing contengonocomponentidivirtualizzazione(hypervisor)econsentonounpartizionamentodelcomputerinpiùmacchinevirtuali(es.:partizioniIBMZ/OS,zoneSunSolaris,ecc.)
Caratteristichediunsistemaoperativo
Isistemioperativipossonoessere– mono-task (mono-programmazione):ilsistemaoperativoconsentel’esecuzionediunsolo
programmapervolta;unsecondoprogrammapuòessereeseguitosoloquandoilprecedentehaterminatoilpropriolavoro(es.:MicrosoftMS-DOS,AppleSystem1-5)
– multi-task (multi-programmazione):ilsistemaoperativoconsentel’esecuzionedipiùprogrammicontemporaneamente,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,inmododamigliorareleperformancedelprogrammautilizzandopiùafondolaCPU;ilmultithreadingdeveesseresupportatodaunhardware(CPU)chelorendapossibile(es.:MicrosoftWindowsNT/2000/...,GNULinux,SunSolaris,...)
– mono-utente:ilsistemaoperativononpossiedeilconcettodiutenteenondistinguel’utentecheutilizzailcomputer(es.:MicrosoftMS-DOS,MicrosoftWindows95/98,AppleSystem1-9)
– multi-utente:ilsistemaoperativopossiedeilconcettodiutenteedassegnaaciascunutentefilesullamemoriasecondariaeprocessiinesecuzione(es.:MicrosoftWindowsNT/2000/...,GNULinux,SunSolaris,...)
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017
M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 3
Componentidiuncomputer
• Uncomputerèunsistemaformatodadiversecomponenti:unaunitàcentraleconnessaconuninsiemediunitàperiferiche
• Ilsistemaoperativogarantisceilfunzionamentodituttequestecomponentielettroniche,elettromagneticheemeccaniche,coordinandolacomunicazionetralediverseunità
• Traleinterfaccedirete:– Ethernet,wi-fi,GSM,ecc.
• Traleportediconnessione:– parallela,seriale,USB,Bluetooth,
Thunderbolt,ecc.Unità Periferiche
BUS
Memoria secondariaMemoria
secondaria
Stampante
Mouse
Tastiera
Monitor
Scanner
Monitor
Terminale
Rete
CPU Memoria primaria (RAM) Controller
Interfacce di retePorte di
connessione periferiche
Scheda video
Gestionedell’interfaccia versoutenti eprogrammi
Gestionedella protezioneedella sicurezza
Gestionedella memoria secondaria
Gestionedelleunità periferiche
Gestionedelfilesystem
Gestionedellamemoriaprimaria
Gestioneprocessi,Scheduler
Strutturadiunsistemaoperativo
1. Gestionedeiprocessi,scheduler2. Gestionedellamemoriaprimaria3. Gestionedelfilesystem4. Gestionedelleperiferiche e
dell’input/output5. Gestionedellamemoriasecondaria6. Gestionedellaprotezione edella
sicurezza7. Gestionedelleinterfacceversol’utentee
iprogrammiapplicativi
Hardware
Kernel
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017
M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 4
Strutturadiunsistemaoperativo
• IlKernel costituisceilnucleofondamentaledelsistemaoperativo:sulkernel siappoggianolealtrefunzionidelsistemaoperativostesso
• Inbaseallastrutturainternadelsistemaoperativoedelsuokernel sidistinguonotremacro-tipologiedifferenti:– Sistemioperativiakernel monolitico:implementaunacompletaastrazionedelcomputersucui
girailsistemaoperativostesso(es.:GNULinux,FreeBSD,...)– Sistemioperativiamicro-kernel:implementanonelkernel sololefunzioniessenziali,demandando
adaltriprogrammidisistema(device driver,server)l’implementazionedellealtrefunzioni(Minix,IBMAIX,...)
– Sistemioperativiibridi:implementanonelkernel diversefunzionidelsistemaoperativo,maalmomentodell’avviopossonocaricaredeimoduliaggiuntivichearricchisconoeintegranolefunzionioffertedalkernel
Gestionedeiprocessi/Scheduler
• Unprocesso èun’istanzainesecuzionediunprogramma• Inuncomputerconsistemaoperativomulti-taskpossonoessereeseguitipiùprocessi
contemporaneamente(diprogrammidiversiodiunostessoprogramma)• Lagestionedeiprocessidapartedelsistemaoperativoconsistenelleseguentiattività:
– creazioneeterminazionediunprocesso– sospensioneeripristinodell’esecuzionediunprocesso– sincronizzazioneecomunicazionetraprocessiinesecuzione(IPC:inter-process communication)– gestionedelbloccodiunprocesso(deadlock)
• Iprocessipossonoeseguiredellechiamateafunzionidisistemaperotteneredeiservizidalsistemaoperativorelativeallagestionedeiprocessistessi:– esecuzionedialtriprocessi(exec)– replicadelprocessoinesecuzione(fork)– inviodisegnalidaunprocessoadunaltro(wait,signal)– terminazionediunprocesso(kill/terminate)
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017
M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 5
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:allavariabilepid vieneassegnatoilprocess-id delprocessofigliocreatodafork()
Sepid=0 allorailprocessoèil“figlio”evieneeseguitaquestapartediprogramma
Sepid>0 allorailprocessoèil“padre”evieneeseguitaquest’altrapartediprogramma:pid èilprocess-id delprocessofigliocreatodafork()
Gestionedeiprocessi/Scheduler
• Mediantelasystem call“fork”ilsistemaoperativo,apartiredaunprocessoinizialediavviodelsistemastesso,èingradodieseguire,inbaseallasuaconfigurazione,altriprocessiincascata
• Sivienequindiacreareunagerarchiaadalbero“padre/figlio”traiprocessieseguitisulcomputer:laradiceèilprocessodiinizializzazionedelsistema(suUNIX:“init”)
• OgniprocessoèidentificatodaunPID (process ID),daunPPID (parent process ID)edaunoUSERID (codiceidentificativodell’utentechestaeseguendoilprocesso)
marco@home ~$ pstreeinit─┬─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 -efUID PID PPID C STIME TTY TIME CMDroot 1 0 0 2014 ? 00:00:23 /sbin/initroot 375 1 0 2014 ? 00:00:00 /sbin/udevdroot 1209 1 0 2014 ? 00:03:28 auditdroot 1229 1 0 2014 ? 00:02:27 /sbin/rsyslogdroot 1291 1 0 2014 ? 00:02:48 /usr/sbin/sshdroot 1303 1 0 2014 ? 00:00:02 /usr/sbin/vsftpdroot 1339 1 0 2014 ? 00:03:32 sendmail: acceptsmmsp 1350 1 0 2014 ? 00:00:01 sendmail: Queueroot 1371 1 0 2014 ? 00:00:26 crondroot 1412 1 0 2014 tty1 00:00:00 /sbin/mingettyroot 1414 1 0 2014 tty2 00:00:00 /sbin/mingettyroot 1416 375 0 2014 ? 00:00:00 /sbin/udevd –droot 2229 1 0 2014 ? 00:06:08 /usr/sbin/httpdapache 6128 2229 0 Feb22 ? 00:00:03 /usr/sbin/httpdapache 6129 2229 0 Feb22 ? 00:00:00 /usr/sbin/httpdroot 16640 1291 0 09:55 ? 00:00:00 sshd: marco [primarco 16642 16640 0 09:56 ? 00:00:00 sshd: marco@pts/
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017
M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 6
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
runningreadyinit
waiting
zombie
terminated
swapped
Gestionedellamemoriaprimaria
• Lamemoriaprimariaècostituitadairegistri dellaCPU,dallamemoriacachedellaCPUedallamemoriaRAM(randomaccess memory)
• Icompitidelsistemaoperativonellagestionedellamemoriasono:– allocazioneedeallocazione dellamemoriarichiestadaiprocessiinesecuzione– mantenereseparateleporzionidimemoriadestinateaprocessidiversisuun
sistemamulti-tasking,evitandoconflittinell’usodellamemoria– gestireilcollegamentotragliindirizzidimemorialogiciutilizzatidaiprocessiela
memoriafisicadellamacchina– gestirelapaginazione elamemoriavirtuale,spostandosumemoriasecondaria
pagine(porzioni)dimemoriaprimariaecaricandodallamemoriasecondariapaginediinformazionidariallocarenellamemoriaprimaria(swap)
• Lechiamatedisistemacheiprocessipossonoinvocareperottenereservizidigestionedellamemoriadalsistemaoperativosono:– 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ènellamemoriadellamacchina
Heap
Code segment
Stack
Mem
oria p
rim
aria
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017
M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 7
Gestionedelfilesystem
• Ilfilesystem èun’astrazionedelmodelloconcuiilsistemaoperativogestisceidatisullamemoriasecondaria;ilmodelloèindipendentedaltipoedalnumerodidispositividimemoriasecondaria
• L’elementodibaseèilfile,unasequenzadibytememorizzatasullamemoriasecondaria,cheterminaconilsimboloEOF(endoffile)
• Ilfilesystemfornisceancheunmodelloastrattoconcuiifilesonoorganizzatisullamemoriasecondaria(tipicamenteunastrutturaadalberodidirectory esotto-directory)
• Ilconcettodidirectory (“cartella”)èanch’essoun’astrazione:ancheunadirectoryèunfile;l’inclusionediunfileinunadirectoryèrealizzatomediantepuntatori“padre-figlio”
• Ladenominazionedeifile,ilsetdicarattericoncuipossonoesseredenominati,imetacaratteri concuisiindicalacollocazionediunfilenelmodellodelfilesystem,sonoalcunidegliaspettidefinitiperognispecificomodellodifilesystem– “C:\DOCUMENTI\TESI.TEX” èuntipicopath assolutocheidentificaunivocamenteunfile
dislocatosuldisco“C”sulsistemaoperativoMS-DOSoMicrosoftWindowsNOTA:nonècasesensitive evienespecificatol’identificativodell’unitàfisicasucuièpresenteilfile
– “~liverani/src/minimumSpanningTree.c” èilpath diunfilesuunfilesystemdiunsistemaoperativoditipoUNIXNOTA:ècasesensitive,siutilizzalaconvenzione“~username”peridentificarelahomedirectorydiunutente,ilpath èindipendentedallacollocazionefisicadelfilesuunospecificodevice
Gestionedelfilesystem
• Iprocessipossonoinvocarefunzionidisistemaperoperaresulfilesystem:– creazioneecancellazionedifile– aperturaechiusuradifile(fopen/fclose)– letturaescritturadifile(fget/fread/fwrite/...)– impostazionediattributidelfile(read only,writable,executable,...)
• Ilfilesystemimplementameccanismidiprotezionedeifile,perrestringerel’accessoaisoliutentiautorizzatiegestisceunacodadellerichiestediaccessoalfiledapartedeiprocessi
• Suunsistemaoperativomultiutenteilfilesystemtienetracciadell’identificativodell’utenteproprietariodelfileedelleregolediaccessoalfilepergliutentidelsistema
spool/ log/
var/
mail/
marco/ chiara/
home/
src/ doc/doc/
local/
bin/lib/
/
bin/lib/
bin/ lib/usr/ etc/dev/
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017
M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 8
SistemaOperativo
Gestionedelleperifericheedell’input/output
• Ilsistemaoperativogestiscelacomunicazione(iningressoeinuscita)versoleunitàperiferiche,fornendoun’astrazioneedellefunzioniperl’utilizzoditalecanaledicomunicazioneaiprogrammi
• Siccomepiùprogrammicontemporaneamentepossonorichiederel’accessoadunadeterminataperiferica(es.:l’outputsulvideodiunterminale,l’inputdatastiera,l’inviodidatiadunastampante,ecc.)èilsistemaoperativoagestireinmodocoordinatolacodadirichieste (serializzazione)evitandoconflittiemalfunzionamenti
• Ilsistemaoperativorendeefficientelacomunicazioneversoundeterminatodispositivoperiferico,anchemediantel’utilizzodiun’areadimemoriadettabuffer,incuisiaccodanoidatidirettiversolaperifericaoprovenientidallaperifericaedestinatiaiprogrammi
• L’interazioneconleperiferiche(device,dispositivi)avvieneattraversoappositimodulisoftwaredettidevice driver
DeviceDriver
PhysicalDevice
PhysicalInterface
MemoryBuffer
Processo1
Processo2
Gestionedellamemoriasecondaria
• Lamemoriasecondariaècostituitadaidispositividimemorizzazionepersistente,ossiachemantengonomemoriadelleinformazioniregistrateancheamacchinaspenta
• Lamemoriasecondariaèdisponibileinquantitàmoltosuperiorerispettoallamemoriaprimaria(almeno100voltesuperioresuunnormalepersonalcomputer,adesempio)
• Lamemoriasecondaria,perragionifisicheetecnologiche,hauntempodiaccessoeditrasferimentodeidatimoltopiùaltirispetto allamemoriaprimaria
• Tipicidispositividimemoriasecondaria(omemoriadimassa):harddiskmagnetici,dischiottici,dispositividimemoriaastatosolido(SSD),flashdrive,schededimemoriaXD,ecc.
• Operazioniprincipalisvoltedalsistemaoperativopercontodeiprocessiattivi:– allocazione/deallocazione dellospazioperlamemorizzazionedidati(file)– gestionedellospazioliberosull’unitàdimemoriadimassa– ottimizzazione,serializzazioneescheduling delleoperazionisullamemoriadimassa
• Lagestionedelfilesystemedellamemoriasecondariasonoduefunzionidistintedelsistemaoperativo,anchesesonostrettamentecollegate
• Difattolacomponentedelsistemaoperativochesioccupadellagestionedellamemoriasecondaria,rendetrasparenteaiprogrammiiltipodidispositivodimemoriautilizzato– AdesempioinlinguaggioCsiusanolestessechiamatedisistemaperoperaresufileregistratisu
dispositividitipodifferente
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017
M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 9
Gestionedellaprotezioneedellasicurezza
• Inunsistemamulti-taskemulti-utenteilsistemaoperativosioccupadellaprotezionedellerisorse:laprotezioneèdirettaasalvaguardarelariservatezzadellerisorsedaiprocessiedagliutenti
• Laprotezioneèbasatasu:– autenticazione:proceduradiaccertamentodell’identitàdiunutente– autorizzazione:proceduradiaccertamentodeldirittodiaccedereadunarisorsa(inuna
determinatamodalità)dapartediunutenteodiunprocesso• Leprocedurediautorizzazioneperiprocessisonolegatealleautorizzazioniassegnateagli
utenti:– ogniprocessoèinesecuzionepercontodiunutente– ilprocessoereditaleautorizzazionidell’utentecheloesegueperl’accessoallerisorsedelsistema– iprocessidelsistemaoperativovengonoeseguitidaunutenteconilmassimolivellodi
autorizzazione(root,administrator,ecc.)
• Icriteridiprotezionedellerisorsesonobasatisuregolechemappanoleautorizzazionidiaccessoallarisorsacongliutentidelsistema(es.:autorizzazionidiaccessoadunfile)
• Persemplificarelamappaturadelleautorizzazioni,spessoilsistemaoperativoconsentediaggregaregliutentiingruppi,mappandopoileautorizzazionisulgruppo:gliutentiereditanoleautorizzazionichesonostateassegnateaigruppidicuifannoparte
Gestionedellaprotezioneedellasicurezza
• Isistemioperativimulti-utenteimplementanoproceduredilogin perl’accessoalsistema• Laproceduradilogin:
– autentical’utentesullabasedellecredenzialidiaccessodichiaratedall’utentestesso(usernameepassword)
– 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.:MicrosoftActiveDirectory,UNIXNetworkInformationSystem/YellowPages,ecc.)
– altrisistemidiautenticazioneeautorizzazioneesterni
• NOTA:ilmeccanismodiautenticazionebasatosuusername epassword nonèl’unico,néilpiùsicuro,maècertamenteilpiùdiffuso
• Lapasswordnonèmaimemorizzatasulsistema:– dellapasswordsulsistema(fileodirectoryserver)vieneconservatounhash nonreversibile;– autenticazione:l’utenteinseriscelapasswordinchiaro,ilsistemaproducel’hash dellapassworde
loconfrontaconquellomemorizzatosulrepository dellecredenziali
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017
M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 10
Interfacciaversoleapplicazioniegliutenti
• Ilsistemaoperativooffredellefunzionialleapplicazionipercostruireglistrumentididialogoedinterazioneconl’utente
• Userinterface:– Alfanumerica:ilsistemaoperativooffreunmodelloastrattoditerminaleperpresentarele
informazionisuunoschermoingradodivisualizzarecaratterialfabeticienumericiedacquisirel’inputattraversounatastiera
– Graphical UserInterface(GUI):ilsistemaoperativooffreuninsiemedifunzioniaiprogrammiconcuipossonocostruireun’interfacciautentegrafica,basatasuelementiqualilefinestre eleicone;l’inputavvieneanchemedianteilmouse (ountrackpad ountouch-screen)enonsololatastiera
• Alcunisistemioperativisonostrettamentelegatiadunaspecificainterfacciautentegrafica:inquesticasiilsistemaoperativononfunzionasenzalasuaGraphical UserInterface– Esempi:MicrosoftWindows,AppleOSX
• Altrisistemioperativiinveceprevedonodibasesoloun’interfacciautentealfanumericaeimplementanol’interfacciautentegraficacomeunadd-on nonindispensabile,basatosuunmodelloclient/server– Esempi:isistemioperativiUNIXeLinuxeilsistemaXWindow
Interfacciaversoleapplicazioniegliutenti
• IlsistemaXWindow (X11)èunsistemaclient-server cheimplementaun’interfacciautentegraficadistribuita:– èportabile:neesistonoversioniperognisistemaoperativo,nonsoloUNIX– ilmodelloclient/serverseparal’ambientediesecuzionedell’applicazionechesfruttalagraphical
user interface dall’ambienteincuilagraphical user interface vieneutilizzatadall’utente(condisplaygrafico,mouse,tastiera,ecc.)
– èindipendentedalwindow manageredaldesktopmanager,l’utilitycheaiutal’utenteagestirelefinestresulpropriodisplaygraficoconl’usodelmouse
• ClientX11:l’applicazionecheutilizzaleAPIdelsistemaX11peracquisireinputattraversomouseetastieraeprodurreoutputinunambientegraficocostituitodapiùfinestrevisualizzatecontemporaneamente– 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
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017
M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 11
Interfacciaversoleapplicazioniegliutenti
• IlsistemaXWindow implementailprotocolloX11 perlacomunicazionetraclientgrafico(cheoperasulserverapplicativo)eservergrafico(cheoperasullapostazioneclientdell’utente)
• IlprotocolloX11puòessereveicolatoattraversoun“tunnel”SSHperrenderesicura(cifrata)lacomunicazionetraclienteserver
• Leapplicazioni(X11client)sonoeseguitesulserveredimpegnanolerisorsedicalcolo(CPU,memoria,...)delserver
• L’outputèvisualizzatosulclient(X11server),sfruttandonelecapacitàgrafiche
Sistema Operativo ServerSun Solaris (UNIX)
Sistema Operativo ClientMicrosoft Windows
X11 ClientGnuplot
X11 ClientXterm
X11 ClientXterm
X11 ClientFirefox
X11 Server
I/O di GnuplotI/O di Xterm
Sistema Operativo ClientApple OS X
X11 Server
I/O di XtermI/O di Firefox
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.
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017
M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 12
TWMX11Window ManagerUnaschermatadeldisplaydiunaworkstationgraficaX11inambienteUNIXconilwindow managerTWM