Sistemi Operativi - Dip. di Matematica Roma Tre

Transcript

Sistemi Operativi - Dip. di Matematica Roma Tre
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica
a.a.2016/2017
CorsodiLaureainMatematica
DipartimentodiMatematicaeFisica
Sistemiperl’elaborazionedelleinformazioni
3.Sistemioperativi
DispensedelcorsoIN530a.a.2015/2016
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, i;
pid = fork();
Esegueunacopiadelprocessoattuale
if(pid == 0) {
for(j=0; j < 10; j++) {
printf("Figlio: %d\n", j);
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;
Sefork() restituisce0allorailprocessoèil“figlio”
evieneeseguitaquestapartediprogramma
Sefork() restituisceunvalorediversoda0
allorailprocessoèil“padre”evieneeseguita
quest’altrapartediprogramma
}
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:ilmeccanismodiautenticazionebasatosuusernameepasswordnonèl’unico,néil
piùsicuro,maècertamenteilpiùdiffuso
Lapasswordnonèmaimemorizzatasulsistema:
– dellapasswordsulsistema(fileodirectoryserver)vieneconservatounhash nonreversibile;
– autenticazione:l’utenteinseriscelapasswordinchiaro,
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
•
•
Leapplicazionisonoeseguitesulservered
impegnanolerisorsedicalcolo(CPU,memoria,...)
delserver
L’outputèvisualizzatosulclient,sfruttandolesuecapacità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