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

12
Università degli Studi Roma Tre - Corso di Laurea in Matematica a.a. 2016/2017 M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 1 Corso di Laurea in Matematica Dipartimento di Matematica e Fisica Sistemi per l’elaborazione delle informazioni 3. Sistemi operativi Dispense del corso IN530 a.a. 2016/2017 prof. Marco Liverani Premessa Il sistema operativo è il software di base che sovrintende al funzionamento dell’intero computer, all’esecuzione dei programmi, all’interazione con gli utenti È lo strato software che si colloca tra l’hardware della macchina e il software applicativo utilizzato dall’utente e fornisce un’astrazione dell’hardware ai programmi software Il sistema operativo si occupa della gestione delle componenti hardware esecuzione dei programmi interazione con le periferiche interazione con gli utenti È il sistema operativo a definire la modalità operativa del computer È il sistema operativo a definire la modalità di utilizzo del computer da parte degli utenti Alcuni esempi: Microsoft Windows, GNU Linux, Apple OS X, Sun Solaris, HP-UX, IBM AIX, IBM Z-OS, Google Android, Apple iOS, Chrome OS, FreeBSD, NetBSD, Plan9, GNU Hurd, ... Sistema Operativo Processo 1 Processo 2 Processo 3 Computer (CPU, memoria, dispositivi I/O, …) Utenti Software Hardware

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

Page 1: 3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU Hurd, ... Sistema Operativo Processo 1 Processo 2 Processo 3 ... sistema operativo…

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

Page 2: 3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU Hurd, ... Sistema Operativo Processo 1 Processo 2 Processo 3 ... sistema operativo…

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,...)

Page 3: 3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU Hurd, ... Sistema Operativo Processo 1 Processo 2 Processo 3 ... sistema operativo…

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

Page 4: 3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU Hurd, ... Sistema Operativo Processo 1 Processo 2 Processo 3 ... sistema operativo…

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)

Page 5: 3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU Hurd, ... Sistema Operativo Processo 1 Processo 2 Processo 3 ... sistema operativo…

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/

Page 6: 3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU Hurd, ... Sistema Operativo Processo 1 Processo 2 Processo 3 ... sistema operativo…

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

Page 7: 3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU Hurd, ... Sistema Operativo Processo 1 Processo 2 Processo 3 ... sistema operativo…

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/

Page 8: 3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU Hurd, ... Sistema Operativo Processo 1 Processo 2 Processo 3 ... sistema operativo…

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

Page 9: 3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU Hurd, ... Sistema Operativo Processo 1 Processo 2 Processo 3 ... sistema operativo…

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

Page 10: 3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU Hurd, ... Sistema Operativo Processo 1 Processo 2 Processo 3 ... sistema operativo…

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

Page 11: 3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU Hurd, ... Sistema Operativo Processo 1 Processo 2 Processo 3 ... sistema operativo…

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.

Page 12: 3. Sistemi Operativi · IBM Z-OS, Google Android, Apple iOS, ChromeOS, FreeBSD, NetBSD, Plan9, GNU Hurd, ... Sistema Operativo Processo 1 Processo 2 Processo 3 ... sistema operativo…

UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017

M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 12

TWMX11Window ManagerUnaschermatadeldisplaydiunaworkstationgraficaX11inambienteUNIXconilwindow managerTWM