3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU...

Post on 22-Sep-2018

223 views 0 download

Transcript of 3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU...

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