Sei sulla pagina 1di 29

Ing.

Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

Introduzione ai Sistemi Operativi

Cos' un Sistema Operativo?

Nella se"onda parte di #uesto olume trattiamo del so$t!are "%e rende possibile il $unzionamento di ogni "omputer& il Sistema Operati o. 'e $unzioni di un Sistema Operati o (Operating S)stem* O.S.+ sono "os, numerose e di$$erenti "%e - di$$i"ile darne una de$inizione meno generale della seguente& .n Sistema Operativo (S.O.+ - #uell/insieme di programmi "%e permette ad ogni "omputer di eseguire il so$t!are appli"ati o. '/importanza del S.O. - rimar"ata dal $atto "%e esso 0modi$i"a0 le "aratteristi"%e dell/%ard!are. Sullo stesso tipo di %ard!are possono girare Sistemi Operati i di ersi1 dun#ue il S.O. - in grado "i "on$erire 0personalit20 di erse a "omputer "%e %anno %ard!are identi"o. Si pensi per esempio a #uanto di erso pu3 essere lo stesso 45 se i si installa il S.O. MS-6OS oppure 7indo!s* 'inu8 o 9N:. 5i3 "%e l/utente "omune usa ogni giorno non - dun#ue il solo %ard!are del "omputer* ma l/insieme di %ard!are e Sistema Operati o. 5%iameremo 0programma di sistema0 un programma "%e $a parte del Sistema Operati o1 "%iameremo 0programma d'utente0 o 0applicativo0 un programma "%e non $a parte del Sistema Operati o.

Cosa NON un Sistema Operativo


Sulle $unzioni del S.O. spesso non "/- molta "%iarezza per "ui - bene spiegare da subito al"uni tipi"i $raintendimenti. .n Sistema Operati o non -& - un linguaggio di programmazione .n linguaggio di programmazione - la spe"i$i"a astratta di al"une regole "%e permettono di trasmettere istruzioni ad un "omputer1 un linguaggio di programmazione non - un Sistema Operati o* anzi* non - neppure un programma. - un "ompilatore Il "ompilatore - un programma* non di erso da un normale appli"ati o* "%e tradu"e la $orma "on "ui sono s"ritti altri programmi. 6ato "%e la gran parte degli utenti pu3 benissimo $arne a meno* i "ompilatori non $anno parte del S.O. . - una libreria di "omandi Ogni S.O. %a una nutrita libreria di "omandi 0esterni0 (s)stem programs+* "%e %anno "aratteristi"%e simili ai normali programmi dell/utente e possono da #uesti essere sostituiti (si pensi per esempio a ;O<M=T.5OM o 5>?6S?.@:@ di MS-6OS+. 4eraltro il S.O. non - "omposto solamente di #uesti 0"omandi0 esterni* ma %a an"%e altri "omponenti* molto piA importanti* "%e ne "ostituis"ono il 0"uore0. 6un#ue i "omandi di sistema* per #uanto si possano "onsiderare parte del S.O. * non 0sono0 il S.O. . - un programma "%e $a eseguire i "omandi dell/utente Ogni S.O. de e dispone di un programma attra erso il #uale l/utente pu3 "omuni"are #uali "omandi (programmi+ uole "%e siano eseguiti. 9uesto programma prende il nome di 0interprete dei comandi0 e $a parte del Sistema Operati o. '/interprete dei "omandi - l/0inter$a""ia0 piA sempli"e $ra l/utente ed il S.O. 4eraltro un Sistema Operati o S.O. non - "ostituito solamente da un interprete di "omandi ma an"%e da moltissimi altri programmi "%e $anno un la oro molto meno 0 isibile0.

1.1

Classificazione dei Sistemi Operativi

@$$ettuiamo ora una serie di 0"lassi$i"azioni0 distinguendo i S.O. in base ad al"une loro importanti "aratteristi"%e. 4rima per3 - ne"essario de$inire un termine "%e ri"orrer2 spesso nel seguito. 5onsideriamo una 0 risorsa0 una #ualsiasi entit2 della #uale un programma pu3 a er bisogno* "ome per esempio la memoria "entrale (<=M+* la memoria di massa (%ard disB* 56* nastri* $ile* re"ord di $ile+ o tutte le peri$eri"%e (stampanti* tastiera* s"anner ..+. 9uello di risorsa - dun#ue un "on"etto generi"o* "%e nel "aso dei S.O. pre"iseremo meglio in seguito ( edi Gestione delle risorse del sistema+ 'e prin"ipali di$$erenze $ra i di ersi Sistemi Operati i si osser ano "onsiderando il numero dei programmi "%e possono essere eseguiti "ontemporaneamente* e la loro modalit2 di ese"uzione.

S.O. monoprogrammati o multiprogrammati (multitasking


.n Sistema Operati o nel #uale possa girare un solo programma alla olta si di"e 0 monoprogrammato0 (in Inglese 0monoprogrammed o 0single tasking0+. 4er esempio MS-6OS - un S.O. monoprogrammato* progettato per l/ese"uzione di un solo programma per C0CD alla olta. 9uando lan"iamo un programma MS-6OS dobbiamo attendere la sua "on"lusione prima di eseguirne un altro. 01 SO Intro.odt Eer. 0.9.9 2011-0D-0F p. 1 di 29

Ing. Gabriele MONTI

!!!.ingmonti.it

In e"e un Sistema Operati o - 0multiprogrammato0 (multitasking+ #uando $a eseguire piA di un programma 0"ontemporaneamente0. '/uso delle irgolette - d/obbligo ed indi"a "%e la "ontemporaneit2 nell/ese"uzione dei programmi pu3 essere del tutto 0simulata0. Sappiamo in$atti "%e in un "omputer la 54. - l/uni"o dispositi o "%e pu3 eseguire un programma1 per "ui se in un "omputer esiste una sola 54.* "ome su""ede nella maggior parte dei "asi* essa pu3 eseguire in ogni istante le istruzioni di un solo programma. 4er3* se il S.O. lo permette* - possibile $are in modo "%e la 54. enga assegnata 0a turno0 ai di ersi programmi "%e ne %anno bisogno. In #uesto modo "ias"uno di #uei programmi potr2 e ol ere indipendentemente dagli altri. 6ato "%e l/a i"endamento $ra i ari programmi a iene molto rapidamente* per un utente umano 0esterno0 sar2 "ome se i programmi eseguissero 0"ontemporaneamente0.

programma

;igura 1& multitasBing 9uesto "i permette di pre"isare la de$inizione di S.O. multitasBing* a$$ermando& .n sistema - multiprogrammato #uando piA programmi* a iati e non "on"lusi* esistono "ontemporaneamente in memoria e progredis"ono nella loro ese"uzione. In un sistema multitasBing piA di un programma - pronto ad eseguire in memoria* in attesa del suo turno per l/utilizzazione della 54.. 6ato "%e* in un sistema "%e %a una sola 54.* un solo programma alla olta pu3 eseguire* ne "onsegue "%e tutti i programmi sono 0sospesi0* e""etto #uello "%e sta eseguendo in ogni determinato istante. @sempio& le ersioni attuali dei S.O. 7indo!s e 'inu8* s"ritti per 54. di tipo GCD o posteriore* sono multiprogrammate.

p. 2 di 29

2011-0D-0F

01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

;igura 2& lista dei programmi (pro"essi+ in ese"uzione "ontemporaneamente in 7indo!s 9C (s)sin$o.e8e+

;igura G& lista dei programmi (pro"essi+ in ese"uzione "ontemporaneamente in 'inu8 (programma gtop+ Se eseguiamo il seguente programma di sistema in MS-6OS& 5&H $ind 0stelle0 in$erno.t8t H stellin$.t8t 01 SO Intro.odt Eer. 0.9.9 2011-0D-0F p. G di 29

Ing. Gabriele MONTI

!!!.ingmonti.it

Otteniamo* nel $ile stelle.t8t* la lista delle linee del $ile in$erno.t8t "%e "ontengono la stringa 0stelle0. 9uando il programma $ind %a $inito la sua ese"uzione possiamo lan"iarne un altro* al 0prompt0 del 6OS& 5&H $ind 0stelle0 purgator.t8t H stellprg.t8t Se in e"e eseguiamo il seguente "omando di sistema su un S.O. .ni8 (p.es. 'inu8+& I grep /stelle/ in$erno.t8t H stelleIn$.t8t J otteniamo lo stesso risultato* ma il programma iene lan"iato "ontemporaneamente ad altri* si torna al 0prompt0 e se ne pu3 lan"iare subito un altro& I grep /stelle/ purgatorio.t8t H stelle4urg.t8t J Il programma 0grep0 lan"iato per primo esegue "ontemporaneamente a #uello lan"iato per se"ondo ed essi non si disturbano uno "on l/altro.

S.O. monoutente o multiutente (multiuser

.n Sistema Operati o multitasBing $a eseguire piA di un programma alla olta* ma non - detto "%e possa ser ire piA di un utente "ontemporaneamente. .n S.O. monoutente (single user+ permette ad un solo utente di eseguire programmi sul "omputer o e - installato. =l"uni sistemi multitasBing sono monoutente (p.es. 7indo!s 9:+. 9uesti sistemi permettono al loro singolo utente di $ar eseguire molti programmi simultaneamente* ma non gestis"ono piA di un utente "ontemporaneamente. .n S.O. - multiutente (multiuser+ se pu3 eseguire "ontemporaneamente programmi di utenti di ersi. I S.O. multiutente de ono gestire un elen"o di utenti 0a""reditati0* "ias"un utente dispone di parti"olari diritti per l/a""esso alle risorse del sistema.

login

'/inizio di una sessione di la oro da parte di un utente iene "%iamato 0 login0 1 Il pro"esso di "%iusura di una sessione di la oro iene* per "ontrasto* "%iamato 0 logout0 o 0logoff0. Ogni utente %a un suo nome "on enzionale (username+* "%e de e essere digitato 0in "%iaro0* isibile a tutti* al momento dell/a""esso* ed un suo 0"onto0* detto 0account0* nel #uale engono registrate tutte le in$ormazioni "%e lo riguardano. =d un a""ount engono assegnate una "artella di la oro per i suoi $ile ed altre risorse arie del sistema. Il pro"esso di login pre ede l/0autenti"azione0 (aut%enti"ation+ dell/utente* di solito per mezzo della ri"%iesta di una password (parola "%ia e+* da digitarsi dopo a er dato lo username* senza "%e enga $atta 0e"o0 dei tasti digitati (al posto dei dati digitati si ede sempre lo stesso "arattere* in modo "%e "%i ede il monitor del "omputer non la possa a"#uisire+. 4ass!ord 'a pass!ord de e essere "onos"iuta solo dall/utente e dal Sistema Operati o* neppure l/=mministratore del sistema ne a "onos"enza. @ssa de e essere s"elta in modo "%e sia di$$i"ile indo inarla. .n pro"edimento e$$i"a"e pu3 essere il seguente& 1. S"egliere una bre e $rase "%e si possa ri"ordare $a"ilmente ( p. es. la settimana enigmisti"a+ 2. Togliere le o"ali dalla prima parola* le "onsonanti dalla se"onda* le o"ali dalla terza* e "os, ia .. (p. es. leiaangmst"+ G. =ggiungere e entualmente #ual"%e "arattere spe"iale* numeri* o "ambiare minus"ole in maius"ole (p. es. 'F@iaaINgmst"K+ L. Si tenga presente il $atto "%e "%i uole entrare abusi amente in un sistema di elaborazione spesso possiede strumenti automati"i* basati su dizionario* per indo inare la pass!ord per tentati i. 4er #uesto non - una buona idea usare parole intere* "%e possono essere indo inate piA $a"ilmente. F. Si e iti an"%e di inserire nella pass!ord in$ormazioni personali* an"%e non molto note al pubbli"o* per"%M si possono indo inare usando la logi"a e dati personali a"#uisibili piA o meno $a"ilmente* "ome& data di nas"ita* numero di tele$ono* "odi"e $is"ale* data del diploma* nome di parenti o ami"i ..+. =l giorno d/oggi appaiono sistemi piA so$isti"ati di autenti"azione dell/utente* da usarsi in aggiunta od in sostituzione della pass!ord* #uali il ri"onos"imento dell/impronta digitale* della o"e* o dell/iride dell/o""%io (te"ni"%e di 0identi$i"azione biometri"a0+.

1 0log0* in Inglese* signi$i"a 0diario0 o 0giornale di bordo0 (di una na e+. Il termine log-in iene dal $atto "%e all/inizio della sessione di la oro iene "reato un 0$ile di log0 per l/utente "%e si "ollega* nel #uale il S.O. tiene tra""ia delle azioni "%e l/utente %a $atto e delle risorse "%e %a utilizzato. 9ueste in$ormazioni ser ono per si"urezza e "ontabilizzazione e possono essere& il nome di ogni programma lan"iato dall/utente* la #uantit2 di %ard disB usato* il tempo di 54. ed in generale la #uantit2 di risorse del sistema "%e %a utilizzato. Tenere tra""ia di #ueste in$ormazioni pu3 essere utile per $ar pagare all/utente l/uso del sistema in base alle risorse "%e %a e$$etti amente utilizzato.

p. L di 29

2011-0D-0F

01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

;igura L& sessioni di la oro in multiutenza 'a ;igura L mostra L $inestre gra$i"%e 'inu8 nelle #uali di ersi utenti si "ollegano a di ersi "omputer. Nelle $inestre 1 e 2 sono mostrate due sessioni delle stesso utente (guest+ sul "omputer 6otto'inu8* nella $inestra 2 sono mostrati tutti gli utenti "ollegati e tutte le "onnessioni atti e sul "omputer 6otto'inu8. Nelle $inestre G e L sono mostrati due "ollegamenti al "omputer remoto Nrontolo'inu8* in $inestra G - "ollegato l/utente 0root0 di Nrontolo'inu8* in $inestra L l/utente 0gamon0. In $inestra G sono mostrati tutti gli utenti "ollegati e tutte le "onnessioni atti e sul "omputer Nrontolo'inu8. Il "omputer su "ui gira l/ambiente gra$i"o 'inu8 - 6otto'inu8. =mministratore In ogni sistema multiutente de ono esistere un utente od un gruppo utenti 0spe"iali0* "%e %anno parti"olari diritti sulle risorse del sistema* possono "reare gli altri utenti* assegnare ad essi i diritti sulle risorse* stabilire il $unzionamento del sistema. Nei sistemi .ni8 l/amministratore iene detto 0superuser0 ed %a il nome d/utente 0root0* esso - l/uni"o utente 0onnipotente0 "%e esiste nel sistema* ma pu3 "edere al"uni dei suoi diritti ad altri utenti. Nei sistemi 7indo!s per ser er di rete ( edi paragra$o su""essi o+ l/amministratore si "%iama 0=dministrator0* e se ne pu3 "ambiare il nome. @siste an"%e un gruppo di utenti 0=dministrators01 gli utenti "%e appartengono a #uesto gruppo %anno gli stessi diritti dell/utente 0=dministrator0.

S.O. monoprocessore o multiprocessore (multiprocessing


Se in un "omputer esiste piA di una 54.* esso iene detto 0 computer multiprocessore0 (multipro"essor "omputer+. @sistono molti tipi di "omputer multipro"essore1 al"uni "ontengono solo due 54. altri al"une de"ine di migliaia. .n Sistema Operati o "%e - in grado di utilizzare "ontemporaneamente le 54. presenti in un "omputer multipro"essore iene detto S.O. multiprocessore (multiprocessing O.S.+. 5on un Sistema Operati o multipro"essing - possibile una e$$etti a "ontemporaneit2 nell/ese"uzione delle istruzioni dei programmi.

01 SO Intro.odt

Eer. 0.9.9 2011-0D-0F

p. F di 29

Ing. Gabriele MONTI

!!!.ingmonti.it

;igura F& multipro"essing I S.O. per "omputer multipro"essore de ono essere in grado di suddi idere il la oro $ra le di erse 54. presenti. In #uesto "aso la "ontemporaneit2 dell/ese"uzione delle istruzioni - e$$etti a* per"%M ogni 54. presente - in grado di eseguire un programma di erso. KKKK da $are K ;igura D& parte della s"%ermata di inizializzazione di due S.O. multipro"essing. (a+ 7indo!s (b+ 'inu8

S.O. per server di rete


.n server - un dispositi o eOo un programma "%e rende disponibile una risorsa a di ersi utenti o "omputer ad esso "ollegati in rete. Gli 0utenti0 di un ser er engono "%iamati client e di solito sono "ollegati al ser er attra erso una rete di "omputer ('=N* Internet+ . .n "omputer pu3 "ontenere piA di un ser er* "ias"uno dedi"ato ad un risorsa ($ile ser er* print ser er* grap%i" ser er* database ser er* ..+. .na rete di computer - un insieme di "omputer* "ias"uno in grado di $unzionare autonomamente* in grado di s"ambiarsi in$ormazioni attra erso un "erto mezzo di trasmissione. 'e reti di "omputer erranno trattate in grande dettaglio nel prossimo olume. Molti S.O. del giorno d/oggi sono in grado di mettere le proprie risorse a disposizione di altri "omputer* ad essi "ollegati attra erso una rete. 5ome un S.O. multiutente* un S.O. per ser er di rete de e gestire una lista di utenti e "on"edere l/uso delle risorse se"ondo i diritti di "ias"uno degli utenti. = di$$erenza di un sistema multiutente un ser er non esegue i programmi dei suoi utenti2 ma "on"ede ad essi solo l/uso delle risorse1 se e$$ettua elaborazioni esse non sono sotto il "ontrollo diretto dell/utente 0remoto0 ("lient+. =l"uni di #uesti sistemi* "lassi$i"abili senz/altro "ome 0multiprogrammati0* possono essere monoutente* per"%M non eseguono i programmi per gli utenti della rete* ma mettono solo a loro disposizione delle risorse ($ile* stampanti* altri dispositi i+. 4er esempio* 7indo!s NT - 2000 - un S.O. usato per i ser er di rete* "%e permette l/a""esso protetto a tutte le sue risorse da parte di ogni utente in rete "%e ne %a il diritto. @sso peraltro esegue solo i programmi dell/uni"o utente "%e usa il "omputer su "ui il S.O. gira. =l "ontrario sui sistemi .ni8* un utente 0esterno0 al "omputer "%e $a da ser er* "ollegato ad esso per mezzo della rete* in grado di lan"iare suoi programmi sul ser er.

2 nel panorama dei S.O. "ommer"iali si possono tro are al"une e""ezioni a #uesta a$$ermazioneK

p. D di 29

2011-0D-0F

01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

;igura P& Ser er in rete lo"ale

!pplication server
Eedi in seguito KKKK todo K

Sistemi ad ela"orazione distri"uita (sistemi distri"uiti


.n sistema distribuito - "ostituito da di ersi "omputer autonomi "%e* "ollegati attra erso una rete* sono in grado di "on"orrere* tutti assieme* ad eseguire parti della stessa elaborazione. .n S.O. in grado di supportare l/elaborazione distribuita de e essere in grado di di idere 0e#uamente0 il la oro dei "omputer in rete (0bilan"iamento del "ari"o0* 0load balan"ing0+ e di sin"ronizzarli #uando si de ono s"ambiare i risultati. In #uesto modo age ola la realizzazione dei programmi 0distribuiti0. 5ias"uno dei "omputer "%e parte"ipa ad un/elaborazione distribuita - autonomo1 esso - per"i3 in grado di eseguire programmi per i suoi utenti senza il bisogno del supporto di altri sistemi. 4eraltro #uando uno di #uesti "omputer parte"ipa ad un/elaborazione distribuita esso eseguir2 an"%e parte del programma 0"omplessi o0. da $are KKKK ;igura C& Sistema distribuito

S.O. multipiattaforma

Molti S.O. possono $unzionare "on 54. di $amiglie di erse (p.es. 'inu8 o le prime ersioni di 7indo!s NT+. 9uesti S.O. engono detti 0S.O. multipiattaforma0. 9uasi tutti i programmi s"ritti per un S.O. multipiatta$orma sono in grado di girare su 54. di $amiglie di erse sempli"emente ri"ompilandoli o modi$i"andoli solo in minima parte. 5i3 "on$erma il $atto "%e l/astrazione dell/%ard!are $ornita dai S.O. multipiatta$orma - e$$etti amente indipendente dall/%ard!are reale "%e i 0sta sotto0.

1.#

Caratteristic$e dei Sistemi Operativi

Il S.O. mette a disposizione degli utenti di un "omputer un gran numero di servizi* dei tipi piA disparati. @sso - un aggregato multi$orme di moduli so$t!are "%e %anno $unzioni e "aratteristi"%e molto di erse. 'e due $unzioni prin"ipali "%e de e s olgere sono& - gestione dell/interazione "on l/utente ed ese"uzione dei suoi programmi - gestione delle risorse Nei prossimi paragra$i si illustreranno al"une importanti "aratteristi"%e dei Sistemi Operati i.

Interfaccia utente

;anno parte del S.O. i programmi "%e permettono la "omuni"azione $ra utente e S.O.. Eiene detta 0inter$a""ia utente0 la modalit2 "on la #uale un S.O. si presenta ai suoi utilizzatori. '/interprete di "omandi - la $orma piA sempli"e di inter$a""ia $ra utente e S.O.. .n/inter$a""ia utente "omposta dall/interprete dei "omandi e dai "omandi stessi e "%e isualizza i risultati "on 0"aratteri di tastiera0* iene detta 0inter$a""ia utente a "arattere0 (CUI& C%ara"ter User Inter$a"e* o Command User Inter$a"e+. .n/inter$a""ia utente "%e $a uso di gra$i"a a puntini (a 0pi8el0* raster+ iene detta GUI (Grap%i"al User Inter$a"e* inter$a""ia utente gra$i"a+. 'a gran parte dei S.O. odierni possiede una G.I a $inestre* tramite la #uale l/utente pu3 s olgere i "ompiti $ondamentali relati i all/uso del "omputer (lan"io dei programmi* manipolazione dei $ile* gestione dei dispositii+.

01 SO Intro.odt

Eer. 0.9.9 2011-0D-0F

p. P di 29

Ing. Gabriele MONTI

!!!.ingmonti.it

Caricamento ed esecuzione dei programmi% interprete dei comandi

Il S.O. "omprende un programma 0loader0 "%e legge i $ile dei programmi da lan"iare* li "ari"a in memoria e li $a eseguire. 5ollegato al loader - l/interprete dei "omandi (s ell+* "%e 0"apis"e0 i "omandi "%e de ono essere eseguiti e pu3 "on"atenarli e lan"iarli in un ordine stabilito dai $ile di 0s"ript0 (esempio& i $ile .N=T di MS6OS o gli 0s%ell s"ripts0 di .ni8+. .no 0script di Sistema0 - un $ile eseguibile "ostituito di "omandi per il Sistema Operati o1 esso per eseguire %a bisogno di un interpreteG. 5on l/e""ezione di po"%i "omandi* "%e sono "ompilati all/interno del 0"uore0 del S.O. an"%e la maggior parte dei "omandi del S.O. sono normali programmi "%e engono eseguiti in modo analogo a #uelli dell/utente. Se per esempio si "er"a nei dire"tor) di MS6OS si tro a il $ile ;O<M=T.5OM* o MO<@.5OM. 'o stesso a""ade per i $ile grep o more di .ni8. I "omandi "%e sono in"lusi nel Sistema Operati o risiedono in memoria sin dall/a""ensione del "omputer* per #uesto non esistono $ile su dis"o "%e li "ontengano (esempio& 6I< o 56 in MS-6OS* p!d o "d in .ni8+.

&rotezione della memoria e delle istruzioni

In un sistema multiprogrammato girano molti programmi "ontemporaneamente. 4er"%M il "omputer sia a$$idabile si de e $are in modo "%e un errore in uno dei programmi non "oin olga nM altri programmi nM il Sistema Operati o. Il Sistema Operati o* spesso "oadiu ato dall/%ard!are* realizza una 0protezione0 della memoria* assegnando diritti di a""esso a parti"olari 0blo""%i0. 9uando un #ualsiasi programma tenta di modi$i"are lo"azioni di memoria "ui non %a diritto di a""esso il S.O. inter iene* interrompe e 0termina0 #uel programma* prima "%e abbia il tempo di $ar danni ad altri. 'a protezione si pu3 estendere an"%e ad al"une istruzioni di programma* "%e possono essere riser ate ai programmi 0piA importanti0. 9ualora un programma pro i ad eseguire un/istruzione "%e non ne %a il diritto di usare esso err2 terminato dal Sistema Operati o.

'ealizzazione di macc$ine virtuali

'/insieme %ard!are Q Sistema Operati o mette a disposizione dell/utente $unzioni piA so$isti"ate di #uelle possedute dal solo %ard!are. 6un#ue l/insieme %ard!are Q so$t!are "ostituis"e una 0macc ina virtuale0 "on $unzionalit2 aggiunte rispetto al solo %ard!are. Seguono le des"rizioni di al"uni esempi di 0ma""%ine irtuali0.

Multiprogrammazione e multiutenza

.n singolo "omputer pu3 eseguire molti programmi di molti utenti. Ogni programma si "omporta "ome se a esse una 54. tutta per sM* an"%e se la 54. - una sola. 6un#ue un/uni"a 54.* ri estita del so$t!are "%e realizza la multiprogrammazione* "ostituis"e una ma""%ina irtuale "on molte 054. irtuali0. =nalogo dis"orso si pu3 $are "on la multiutenza. Ogni utente ede una ma""%ina irtuale "%e gli appare "ome un "omputer a lui interamente dedi"ato. 5on un S.O. multiutente un "omputer si tras$orma in 0molti0 "omputer* uno per ogni utente.

Memoria virtuale

I programmi "%e eseguono in un S.O. "on memoria irtuale possono ottenere dal S.O. l/allo"azione di piA memoria di #uanta sia la <=M e$$etti amente presente sul "omputer. .na ma""%ina irtuale "%e "omprenda la memoria irtuale pu3 utilizzare piA memoria di #uella "%e il "omputer %a $isi"amente a disposizione. 5ome #uesta $unzione enga realizzata e$$etti amente err2 spiegato su""essi amente.

Virtualizzazione dell'I/O

I programmi dell/utente sono 0isolati0 dall/%ard!are e ne edono una ersione 0astratta0. @ssi possono ignorare tutti i dettagli dell/%ard!are* "%e sono noti solo al S.O. . @/ il S.O. "%e si o""upa di& - programmare i "ir"uiti elettroni"i di IOO del "omputer* s"ri endo nei loro registri di stato - e$$ettuare tutto l/InputOOutput dai dispositi i esterni* interrupt e 6M= in"lusi. - gestire e proteggere le porte di IOO del "omputer Nei S.O. .ni8 l/astrazione dell/%ard!are - tale da tras$ormare ogni dispositi o in un $ile. 4er utilizzare un dispositi o i programmi d/utente .ni8 non $anno altro "%e s"ri ere o leggere da un $ile 0 irtuale0* senza do ersi interessare di al"un dettaglio %ard!are. '/astrazione dei dispositi i $isi"i porta dun#ue ad una sempli$i"azione della loro utilizzazione.

Virtualizzazione dei computer

@/ an"%e possibile* e molto in oga al momento* rendere irtuale tutta l/ar"%itettura di un intero "omputer* irtualizzando non solo la 54.* ma an"%e i "ir"uiti di IOO* la s"%eda ideo* la tastiera ed in generale tutti i dispositi i. 'a irtualizzazione dei "omputer rende possibile l/installazione di molti sistemi operati i sullo stesso "omputer $isi"o. Ognuno di #uesti sistemi ede un "omputer irtuale "%e "rede di a ere a sua "ompleta disposizione* mentre in erit2 l/%ard!are - usato a turno dai molti "omputer irtuali "%e i girano.

G per la de$inizione di interprete si eda il olume pre"edente.

p. C di 29

2011-0D-0F

01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

9ueste te"nologie sono molto usate al giorno d/oggi #uando si uole dare la possibilit2 a molti utenti di "on$igurare a pia"imento la propria ma""%ina* spendendo di meno in %ard!are. @sempi di tali situazioni sono i data"enter* le 0ser er $arm0 per Internet* i laboratori di in$ormati"a delle s"uole e delle uni ersit2. 6a notare "%e la irtualizzazione dei "omputer permette di 0isolarli0 "ompletamente $ra di loro e se* per esempio per errore di "on$igurazione* un S.O. non - piA in grado di $unzionare* "i3 non in$luenzer2 minimamente gli altri S.O. "%e girano sullo stesso %ard!are. Eirtualizzazione "ompleta e para irtualizzazione I so$t!are "%e irtualizzano i "omputer lo possono $are a 0basso li ello0* al di sotto di ogni S.O. installato sull/%ard!are* ed allora si parla di virtualizzazione completa. In #uesto "aso i sistemi irtualizzati de ono essere identi"i* an"%e nell/%ard!are irtuale all/%ard!are $isi"o esistente sul "omputer. 9uesto modo di operare d2 origine a sistemi piA e$$i"ienti* usati nelle appli"azioni pro$essionali* ma %a lo s antaggio "%e il so$t!are di irtualizzazione de e essere l/uni"o a "ontrollare l/%ard!are* per "ui pu3 $unzionare solo su #uei de i"e per i #uali il produttore %a s"ritto i dri er. In prati"a il so$t!are di irtualizzazione "ompleta - un 0pi""olo S.O.0 "%e "ontrolla altri S.O. @sempi di tali so$t!are sono& EM!are Ser er (programma "ommer"iale+ e :@N (programma libero+. '/altro appro""io "%e iene usato - la 0paravirtualizzazione0* o e un/appli"azione "%e gira in un S.O. ospite - in grado di simulare di ersi "omputer. 9uesto modo di $unzionare - di solito piA lento* ma pu3 senz/altro bastare per la simulazione di ambienti di rete e per il "onsolidamento di po"%i ser er sullo stesso "omputer. @sempi di so$t!are "%e 0para irtualizzano0 sono& la ersione gratuita di EM!are Ser er* Eirtual Ser er di Mi"roso$t (programmi "ommer"iali+ e .ser Mode 'inu8 (programma libero+. 6al punto di ista operati o* il programma "%e gestis"e la irtualizzazione dei "omputer iene eseguito nel S.O. 0ospite0* "rea un grande $ile nel #uale mantiene una 0$otogra$ia0 di tutto #uanto gli ser e per emulare il nuo o "omputer e poi lo $a partire. Si apre una $inestra "%e "ontiene #uanto errebbe isualizzato dal "omputer irtuale. Inserendo il 6E6 "%e "ontiene il Sistema Operati o desiderato lo si pu3 installare sul "omputer irtuale e poi utilizzarlo "ome se $osse un "omputer "ompletamente di erso da #uello 0ospite0. Si pu3 an"%e simulare una rete "%e "olleg%i i ari "omputer irtuali "%e sono presenti sul "omputer ospite.

1.(

&rocessi

= #uesto punto si de e introdurre il termine 0pro"esso0 molto usato nella trattazione dei Sistemi Operati i multiprogrammati. .n 0processo0 (pro"ess+ - un programma nel momento in "ui esegue in un S.O. multiprogrammato. 5ome de$inizione di programma ale an"ora #uella data nel olume pre"edente& 0un programma - un insieme di istruzioni "%e risol e un singolo problema0. .n pro"esso - #ual"osa di piA di un programma* per"%M per eseguire un programma in un sistema multiprogrammato non - su$$i"iente possedere il suo "odi"e. In$atti in un sistema in multitasBing ogni programma pu3 essere interrotto dal Sistema Operati o* per $arne eseguire un altro. 6ato "%e un programma pu3 essere sospeso - indispensabile "%e il S.O. 0ri"ordi0 tutte le in$ormazioni* "%e ser ono a riprenderne l/ese"uzione in un se"ondo tempo. .n pro"esso (detto an"%e 0task0* "%e signi$i"a 0"ompito0* 0missione0+ - per"i3 "ostituito dal "odi"e del programma* dai suoi dati* e da un insieme di in$ormazioni "%e ser ono a riprenderne l/ese"uzione #uando essa sia sospesa dal Sistema Operati o* per #ualun#ue ragione. Queste informazioni vengono memorizzate dal S.O. in una struttura dati in memoria, detta " descrittore di processo". Fra questi dati i pi importanti sono: - l'indirizzo della prossima istruzione da eseguire, quando il processo verr fatto ripartire - il valore di tutti i registri della !"# al momento della sospensione del processo. $ssi verranno ripristinati prima di riprendere l'esecuzione del processo. %el seguito si discuter in maggiore dettaglio il contenuto del descrittore di processo. $' importante rimarcare il fatto c&e "programma" e "processo" sono concetti diversi, anc&e se analog&i per molti aspetti. "er esempio ' comune il fatto c&e uno stesso programma possa essere "usato" da processi diversi. (a Figura ) illustra appunto uno di questi casi. * descrittori di processo di "+ e ", contengono un campo c&e li fa puntare all'indirizzo al quale il processo riprender l'esecuzione, indicato come "ind. !odice" in Figura ). (a situazione illustrata nella figura mostra il processo "+ in esecuzione. Si pu- dire c&e viene illustrato il momento esatto in cui "+ &a ripreso ad eseguire dopo una sospensione, infatti il "rogram !ounter punta proprio all'indirizzo contenuto nel descrittore di processo. * processi "+ e ", evolvono indipendentemente uno dall'altro e percorrono il codice "comune" in tempi diversi.

01 SO Intro.odt

Eer. 0.9.9 2011-0D-0F

p. 9 di 29

Ing. Gabriele MONTI

!!!.ingmonti.it

Ogni processo &a il suo spazio di indirizzi autonomo, c&e gli altri processi non &anno diritto di usare, mentre pu- essere presente una memoria comune, sulla quale possono intervenire pi processi. !ome illustrato dalla Figura ) ciascun processo &a una parte di memoria allocata per il suo uso esclusivo, l'indirizzo della quale viene memorizzato nel descrittore di processo. %ella stessa figura ' indicata anc&e un'area di memoria comune, attraverso la quale i processi possono comunicare fra loro e con il Sistema Operativo. ('indirizzo dell'area di memoria comune non ' indicato nel descrittore di processo perc&. si considera, come avviene in S.O. reali, c&e quell'area di memoria parta sempre dallo stesso indirizzo, fisso.

!igura "# due processi condividono in memoria il codice dello stesso programma

1.)

*estione delle risorse del sistema

6ato il "on"etto di pro"esso* - giunto il momento di dare una de$inizione piA rigorosa di 0risorsa0 in un S.O.. Si pu3 de$inire 0risorsa0 una #ualun#ue entit2 %ard!are o so$t!are "%e de e essere usata da un pro"esso e ne "ondiziona l/a anzamento. .na $unzione $ondamentale di un Sistema Operati o - gestire le risorse del sistema ed in parti"olare* nel "aso di sistemi multiprogrammati* il rendere possibile la "ondi isione delle risorse $ra i di ersi pro"essi in ese"uzione. Si possono indi iduare tre "ategorie di risorse da "ondi idere& - risorse %ard!are (es. 54.* memoria* peri$eri"%e+ - programmi (es. librerie "ondi ise+ - dati (es. database* ariabili "omuni a piA programmi+ 4er gestire le risorse il S.O. de e& - mantenerne aggiornato lo stato* gestendo un 0des"rittore0 della risorsa* "io- una struttura dati "%e "ontiene al suo interno tutti i dati utili a rappresentare la "ondizione "orrente della risorsa - assegnare la risorsa ai pro"essi "%e la ri"%iedono* impedendo l/a""esso ad altri pro"essi se ne"essario - realizzare una politi"a per la sua gestione* piani$i"andone l/assegnazione (0sc eduling0+ - toglierla al pro"esso "%e l/%a ri"%iesta #uando esso non ne %a piA bisogno* rendendola disponibile per altri pro"essi Il S.O. 0"rea0 eOo gestis"e le risorse in modo "%e& - sia possibile a""eder i - la loro utilizzazione sia "ondi isibile da piA di un utente - il loro a""esso sia assi"urato solo a "%i ne %a il diritto p. 10 di 29 2011-0D-0F 01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

4ossono essere "onsiderate risorse* per esempio& la 54. (o le 54.+* la memoria* le peri$eri"%e* i $ile* i programmi. 5ontabilizzazione dell/uso delle risorse (accounting+ Nei sistemi multiutente e nei ser er di rete il S.O. pu3 tener tra""ia dell/uso "%e ogni utente $a di ogni risorsa. 9uesto pu3 ser ire per $ar pagare all/utente il ser izio in base all/uso "%e %a $atto delle risorse (p.es. 10 mROms per ogni millise"ondo di utilizzazione della 54.* F mROMN)te per l/o""upazione della memoria+. =n"%e se non interessa $ar pagare all/utente il ser izio* l/a""ounting pu3 essere utile all/amministratore del sistema per "apire "ome esso iene usato e per de"idere meglio "ome modi$i"arlo ed e ol erlo.

Alcuni servizi del S.O.

In #uesto paragra$o elen"%iamo al"uni dei ser izi "%e ogni S.O. de e mettere a disposizione1 altri ser izi* meno isibili all/utente $inale* saranno introdotti in seguito. - "omuni"are "on l/utente - realizzare un/inter$a""ia "on l/utente& isualizzare i programmi* "atturare l/input da tastiera e mouse - permettere all/utente di eseguire e terminare i propri programmi - gestire i di ersi utenti - identi$i"are l/utente (logging 0in0 e 0out0+ - "ontrollare "%e l/utente e$$ettui solo operazioni autorizzate ed abbia a""esso ad in$ormazioni "%e pu3 a"#uisire - permettere la modi$i"a dei diritti d/a""esso dell/utente - addebitare all/utente i "osti dell/uso del sistema (a""ounting+ - garantire un a""esso ordinato a peri$eri"%e* #uali stampanti* dispositi i di memoria di massa* terminali* reti di "omputer - realizzare un 0$ile s)stem0* "io- organizzare i settori degli %ard disB in modo tale "%e gli utenti possano a ere a disposizione un sistema "oerente di $ile e "artelle ("ontenitori di $ile& 0$older0 o 0dire"tor)0+ - gestire i pro"essi* "io- $are in modo "%e gli utenti possano lan"iare piA programmi "ontemporaneamente - rile are e gestire gli errori* #uali p.es.& - o er$lo! ed altri errori nelle operazioni aritmeti"%e - risorse insu$$i"ienti nel sistema (es. po"a memoria allo"ata* 54. so rautilizzata..+ - iolazioni di 0protezione0 (istruzioni eOo a""essi alla memoria non "on"essi+ - iolazioni di si"urezza (a""esso non autorizzato a in$ormazioni+

1.+

,n po' di storia

I S.O. dei primi computer

@NI=5 ($le"troni" %umeri"al Integrator and Computer+ - "onsiderato il il primo "omputer operati o e pienamente $unzionale* ed - senz/altro il primo "%e a"#uis, "%iara $ama. Sui "omputer "ome @NI=5 le unit2 di ingresso ed us"ita erano nastri "arta"ei "%e eni ano per$orati "on i "odi"i binari dei numeri. 5ome dispositi o d/us"ita @NI=5 a e a an"%e lu"i "%e si a""ende ano in base ai numeri binari "%e do e ano us"ire. 9ueste lu"i sono state per de"enni il 0simbolo0 dei "omputer nel sentire "omune. @/ "%iaro "%e i primi programmi s"ritti sui primi "omputer sono stati olti a migliorare un minimo il modo "on "ui l/utente interagi a "on il "omputer (l/inter$a""ia utente+. Si tratta a "omun#ue di strumenti rudimentali1 i primi "omputer non a e ano un ero e proprio S.O.* "%e 0isolasse0 l/utente dalle "ompli"azioni dell/%ard!are* ma solo un programma* detto 0monitor0 "%e a e a solo $unzioni di lan"io dei programmi dell/utente e di minimo "ontrollo delle appli"azioni. 'a sua operati it2 era simile a #uella di un debugger non simboli"o* si pote a lan"iare il programma ed e entualmente tra""iarne il "omportamento 0passo a passo0. Il "omputer era "ontrollato es"lusi amente da un/uni"a tastiera* detta 0"onsole0* a disposizione di un uni"o operatore. Il programma eni a "ari"ato* "orretto ed eseguito direttamente alla "onsole.

Elaborazione batch (a lotti

6ati i "osti astronomi"i dei primi "omputer $u subito ne"essario s iluppare del so$t!are 0di sistema0 in grado di $ar girare in modo automati"o i programmi s"ritti da molti utenti di ersi. I monitor di generazione su""essi a erano in grado di lan"iare automati"amente i programmi ad una "erta ora della giornata1 in #uesto modo $u possibile organizzare l/ese"uzione 0a lotti0 (batc +* durante tutto l/ar"o della giornata. I programmi di utenti di ersi eni ano raggruppati e $orniti al "omputer* "%e le esegui a automati"amente in se#uenza. 'a modalit2 di utilizzazione dei primi sistemi bat"% era la seguente& - Il programmatore s"ri e a il programma su s"%ede di "arta per$orate. 4er #uesto usa a la 0per$oratri"e0 ("ard pun"%er+* una ma""%ina "%e prati"a a "in#ue $ori in "odi"e >ollerit per ogni "arattere "%e eni a digitato sulla tastiera* in "olonna sulla s"%eda* una "olonna per "arattere. - Il programmatore ordina a le s"%ede nella "orretta se#uenza* mettendo una s"%eda di "olore di erso in $ondo. Sulla s"%eda $inale era per$orato il "odi"e di 0end o$ $ile0. - Il programmatore "onsegna a il pa""%etto di s"%ede al 5entro di 5al"olo. - '/operatore del 5entro di 5al"olo ripone a le s"%ede in un "estello* di seguito alle s"%ede di altri programmi. 01 SO Intro.odt Eer. 0.9.9 2011-0D-0F p. 11 di 29

Ing. Gabriele MONTI

!!!.ingmonti.it

- Il "esto eni a posto in un/unit2 di ingresso al "omputer& il lettore di s"%ede per$orate* "%e legge a i "odi"i >ollerit in base al $atto "%e la lu"e passa a o meno dai $ori. I numeri binari "orrispondenti eni ano passati al "omputer. - Il "omputer legge a tutte le s"%ede del primo programma nel "estello* poi lo "ompila a e lo esegui a. - I risultati dell/elaborazione eni ano stampati su "arta da una stampante. =lla $ine dell/ese"uzione del primo programma il "omputer passa a alla "ompilazione ed all/ese"uzione del se"ondo. - =lla $ine del programma l/operatore ra""oglie a le s"%ede ed il tabulato "on i risultati (o "on la lista degli erroriK+ e li mette a in un "estello all/us"ita del 5entro di 5al"olo. - =l"une ore dopo a er las"iato le s"%ede al 5entro di 5al"olo il programmatore andaa a riprendersele* "on il tabulato dei risultati* e$$ettua a le modi$i"%e su nuo e s"%ede* le rimette a in ordine e ri"omin"ia a il pro"esso. 5ome si pu3 ben "apire il sistema era lento e ma""%inoso ed i programmi do e ano $unzionare 0alla "ie"a0 senza al"un tipo di interazione "on l/utente. I sistemi bat"% di se"onda generazione s"ari"a ano programma e dati su nastro* per poter e$$ettuare letture e s"ritture piA rapidamente e per poter leggere i dati da piA lettori di s"%ede 0"ontemporaneamente0. In$atti mentre un lettore s"ari"a a temporaneamente i programmi su un nastro* la 54. pote a eseguire i programmi s"ritti su un altro nastro* e entualmente da un altro lettore.

!igura &'# elaborazione batc Nei sistemi bat"% i programmi eni ano detti 0(ob0 (la ori+. Il termine - usato an"%e oggi* per indi"are #uei programmi "%e engono eseguiti "on regolarit2 e senza al"una interazione "on l/utente. 4er esempio* nei sistemi odierni si "%iamano 0Sob0 #uei programmi per il ba"Bup o la manutenzione del sistema* "%e engono lan"iati automati"amente nel "orso della notte. '/elaborazione bat"% 0pura0 era un sistema po"o e$$i"iente nell/uso del "omputer* dato "%e la 54. do e a perdere molto tempo per attendere "%e la stampante* molto piA lenta* produ"esse i risultati. Spooling .n miglioramento dell/e$$i"ienza a enne "on l/introduzione di pro"essori di IOO dedi"ati* "%e permette ano di 0dilazionare0 il momento della stampa e di suddi iderlo su piA di una stampante. 9uesti sistemi* "%e ser i ano solo per le stampanti* erano in grado di immagazzinare i dati spediti dalla 54. per la stampa e tras$erirli a tempo debito ad una delle stampanti "ollegate. In #uesto modo si pote a a ere una so rapposizione temporale dell/atti it2 di IOO "on #uella della 54.* aumentando l/e$$i"ienza del sistema. 'a te"ni"a in #uestione enne "%iamata spooling (Simultaneous )erip%eral Operations On *ine* piA peri$eri"%e "ollegate 0on line0 "ontemporaneamente+. Il termine spooling - an"ora usato per indi"are tutte le te"ni"%e "%e pre edono la stampa 0dilazionata0 (detta an"%e stampa in 0ba"Bground0+. =l giorno d/oggi "i3 a iene tipi"amente attra erso un so$t!are* in genere $a"ente parte del S.O.* "%e "attura tutti i dati "%e un programma utente in ia ad una stampante* li memorizza in una 0coda dello spooler0 sull/%ard disB* poi li tras$eris"e alla stampante 0"on "omodo0* rispettando i suoi tempi* molto piA lenti rispetto a #uelli della 54.. Il programma utente iene "os, liberato molto rapidamente dalla ne"essit2 di stampare. 4er il programma utente non "/di$$erenza nella stampa sullo spooler o direttamente sulla stampante* lo spooler iene sempli"emente isto "ome una stampante elo"issima.

Sistemi centralizzati interattivi

6ato il "osto dei primi "omputer le 54. erano po"%e e do e ano essere "on"entrate in un uni"o punto nel #uale erano $a"ilmente a""essibili da personale #uali$i"ato. 9uei "omputer erano gio"o$orza dei 0sistemi "entralizzati0* "on un 05entro di 5al"olo0 nel #uale si tro ano tutte le 54. e le prin"ipali peri$eri"%e. Na"#ue presto l/esigenza di $are in modo "%e l/utente potesse inter enire sul programma da una postazione distante dal 5entro di 5al"olo e mentre il programma era in ese"uzione. @ntrambe #ueste esigenze $urono risolte "on i terminali interattivi L. I terminali sono dispositi i separati dall/unit2 "entrale* e entualmente an"%e molto lontani* e permettono agli utenti di lan"iare i programmi* di ederne immediatamente i risultati e di inter enire sul loro $unzionamento mentre stanno eseguendo. I terminali possono essere "ollegati all/unit2 "entrale in di ersi modi* i piA tipi"i sono& "ollegamento seriale* "ollegamento in rete lo"ale* "ollegamento ia modem. .n terminale pu3 essere dislo"ato in prossimit2 della unit2 "entrale o pu3 essere an"%e a grande distanza (terminale remoto+. 5on un "ollegamento tele$oni"o ia modem - possibile "%e un terminale sia a #ualsiasi distanza dall/unit2 "entrale* in un #ualsiasi punto della terra. L 'a parola 0interatti p. 12 di 29
o0 signi$i"a "%e l/utente pu3 "ollo#uiare "on il programma (inter-agire+ mentre esso sta eseguendo.

2011-0D-0F

01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

!igura &&# mainframe I sistemi "entralizzati sono an"ora in uso* an"%e se oggi "on i ono "on ar"%itetture distribuite e sistemi in rete lo"ale. 5i3 signi$i"a "%e an"%e in tempi in "ui le 54. engono inserite negli orsa""%iotti gio"attolo pu3 an"ora essere opportuno "entralizzare le risorse elaborati e. In$atti la "entralizzazione pu3 signi$i"are* se ben gestita* risparmi nella manutenzione dei sistemi e nell/ottimizzazione della loro utilizzazione. Il antaggio prin"ipale dei sistemi "entralizzati risiede "omun#ue nella loro a$$idabilit2 e nella si"urezza. Si tratta in$atti di sistemi il "ui so$t!are di base non - "ambiato radi"almente nel "orso di #uasi trent/anni* per "ui - molto ben "ollaudato ed assolutamente a$$idabile. Inoltre l/%ard!are per i sistemi "entralizzati - pensato per un ser izio a$$idabile e "ontinuati o* 2L ore su 2L* GDF giorni all/anno. 'o s antaggio piA e idente - "%e %a un rapporto prezzoOprestazioni molto piA s antaggioso rispetto ai personal "omputer.

I main!rame
Il "entro del 5entro di 5al"olo - il 0mainframe0F* "io- il "omputer "entralizzato* nel #uale si "on"entra la "apa"it2 elaborati a del sistema. 4er erogare #uesta "apa"it2 elaborati a a molti utenti era ne"essario "%e il Sistema Operati o $osse multiprogrammato e multiutente. 'a modalit2 di elaborazione 0bat"%0* pre"edentemente des"ritta* non si adatta a al la oro "on il terminali interatti i* per"%M pote a las"iare l/utente senza risposta da parte del sistema per lung%i periodi. ;u dun#ue ne"essario $are in modo "%e l/utente al terminale potesse la orare "ome se a esse a disposizione la 54. solo per sM. 9uesta $unzionalit2 $u realizzata nei sistemi 0time s%aring0. +ime-s aring (di isione di tempo + In un sistema time-s%aring il tempo della 54. iene "ondi iso (time s%are T "ondi isione di tempo+ $ra i ari pro"essi interatti i. @ssi %anno diritto ad eseguire solo per un "erto tempo* detto time slice (0$etta0 di tempo &-+ o time ,uantum. S"aduta la time sli"e il S.O. prende il "ontrollo e sospende il pro"esso "%e sta girando* assegnando la 54. ad un altro pro"esso.

F In Inglese la parola 0$rame0 signi$i"a an"%e 0intelaiatura0 o 0s"atola0* l/apposizione del pre$isso 0main0 (0prin"ipale0+ - "omprensibile .. 01 SO Intro.odt Eer. 0.9.9 2011-0D-0F p. 1G di 29

Ing. Gabriele MONTI

!!!.ingmonti.it

;igura 12& time s%aring Time s%aring e realtime "lo"B #n du//io c&e potre//e cogliere il lettore a questo punto ' il seguente. !ome fa un processo d'utente a capire c&e ' finito il tempo c&e &a a disposizione e c&e il S.O. vuole togliergli la !"#, per darla ad un altro processo0 Se la !"# ' una sola il S.O. non pu- eseguire mentre esegue il processo d'utente e perci- non pu- comunicare alcunc&' al processo. $' forse il programma d'utente c&e deve andare a verificare regolarmente un orologio &ard1are per sapere se ' ora di lasciare la !"#0 Questo modo di operare avre//e limitazioni molto gravi, sia per le complicazioni c&e aggiungere//e ai normali programmi d'utente, sia per la /assa efficienza del sistema c&e ne derivere//e. (a risposta ' semplice se ci si fa aiutare dall'&ard1are. "er realizzare un sistema time-s&aring ' indispensa/ile c&e l'&ard1are comprenda una lina di interrupt associata ad un timer2. ('interrupt del timer viene lanciato regolarmente, allo scadere di un intervallo di tempo prefissato, c&e potre//e anc&e non coincidere con una time slice. "er esempio, nei "! con 3S4OS l'interrupt del timer veniva lanciato +5,, volte al secondo, mentre in un moderno (inu6 la frequenza delle interruzioni del 78! ' +999 volte al secondo. (a procedura di risposta all'interruzione del timer fa parte di un programma molto importante del S.O., detto "process sc&eduler" :vedi oltre;. 4unque ad ogni interrupt del timer il processo corrente viene interrotto e viene eseguito il "process sc&eduler", c&e verifica se il processo appena interrotto &a terminato o meno la sua time slice. Se il tempo non ' terminato l'interrupt si conclude con una semplice *7$8, determinando la ripresa dello stesso processo interrotto, se invece il "time slice" ' concluso il S.O. :process sc&eduler; deve: - sospendere il processo corrente, salvandone lo stato nel suo descrittore - decidere quale altro processo dovr sostituire quello interrotto, secondo una sua /en precisa "politica" - ripristinare lo stato del processo c&e deve riprendere l'esecuzione - mettere in esecuzione il processo, c&e riprende a girare come se non fosse stato precedentemente sospeso. *n questo modo il programma utente non &a nessun /isogno di sapere c&e ' finito il tempo a sua disposizione, perc&. a togliergli il possesso della !"# ci pensa il Sistema Operativo, coadiuvato dall'interrupt del timer :78!;. Senza l'intervento dell'interrupt del cloc< sare//e impossi/ile realizzare un sistema in time-s&aring, perc&. in quel caso l'unico modo per togliere la !"# al processo c&e la possiede sare//e una ric&iesta di "autosospensione" fatta dal processo stesso. =edendo la cosa dal punto di vista del processo, esso non si accorge nemmeno di essere stato sospeso, perc&. viene "congelato" mentre sta eseguendo un'istruzione qualsiasi e riprende ad eseguire dopo un po' di tempo, all'istruzione successiva, nelle medesime condizioni in cui era stato congelato.
Una buona scelta della durata della time slice pu avere grande influenza sulle prestazioni del sistema e sulla sua facilit d'uso. La scelta di un tempo piccolo significa che i terminali interattivi sono serviti pi spesso. Ci dar all'utente un'impressione pi gradevole, perch il terminale !risponder! pi rapidamente a ci che viene digitato da tastiera. "aturalmente il passaggio da un processo ad un altro non # !gratis!, per cui la scelta di un tempo di slice troppo piccolo potrebbe implicare un overhead eccessivo, che fa calare l'efficienza del sistema.

I minicomputer
KKKK to be done K
D

5ome di "onsueto "i sono delle e""ezioni. Nei Sistemi Operati i ottimizzati per i sistemi portatili ed il risparmio energeti"o delle batterie si "omin"ia a parlare di 0ti"Bless Bernel0* per esempio in 'inu8. In un S.O. "on 0ti"Bless Bernel0 la 54. pu3 rimanere 0dormiente0 per piA tempo e per"i3 risparmiare energia.

p. 1L di 29

2011-0D-0F

01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

Supercomputer
I "omputer piA elo"i nell/elaborazione dei dati engono detti supercomputer. In passato sono esistiti super"omputer "on una sola 54.. In tali "omputer sia la te"nologia elettroni"a "%e ogni dettaglio ar"%itettoni"o e "ostrutti o erano spe"i$i"amente pensati per massimizzare le prestazioni di elaborazione (0number "run"%ing0+. 4eraltro "i si - resi "onto* gi2 da de"ine di anni* "%e per a ere elo"it2 di elaborazione da ero alte non basta a solo $are 54. ottimizzate per la elo"it2* ma bisogna a eseguire i programmi "ontemporaneamente su piA 54.. @/ nato dun#ue il "on"etto di 0elaborazione parallela0* e si sono introdotti "ome super"omputer i primi sistemi multipro"essore. =l mondo esistono super"omputer "ostituiti da de"ine di migliaia di 54.* "%e al loro interno possono $ar eseguire "ontemporaneamente an"%e #uattro Sistemi Operati i di ersi* "%e si suddi idono e si "ontendono le 54. a disposizione.

-orkstations

'a realizzazione di "ir"uiti integrati sempre piA potenti rese possibile l/integrazione su singolo "%ip di intere 54. della potenza di #uelle dei mini"omputer. 5i3 port3 alla nas"ita delle !orBstation* "omputer potenti e multiutente* "%e di solito engono usati da po"%i utenti per "ompiti "%e ri"%iedono grande "apa"it2 di elaborazione* oppure da molti utenti* ma "ome ser er in una rete. 4er le !orBstation ennero prodotti i mi"ropro"essori <IS5* "ui si a""enna in altra parte di #uesto testo.

"ni#

.ni8 - un S.O. s iluppato da 6ennis <it"%ie e ?en T%ompson agli =TJT 0Nell labs0 ;u s"ritto "on l/intento di mantenerlo $a"ilmente 0portabile0 su molte piatta$orme %ard!are. 5i3 su""esse e$$etti amente ed .ni8 - il primo S.O. "%e si pu3 dire "%e abbia girato su tutte le piatta$orme* es"lusi ($orseK+ i primi personal "omputer a C bit ed al"une "onsole per ideogio"%i. Il primo "omputer su "ui .ni8 $u s iluppato $u un 0glorioso0 mini"omputer* il 6@5 464 11. 4resto i S.O. di tipo .ni8 si $rammentarono in molti 0dialetti0 (al"uni di"ono 0.ni8 $la ours0* 0gusti0 di .ni8 &-+* di$$erenziati per la piatta$orma e per il produttore* "%e ne osta"olarono l/espansione sul mer"ato. 4eraltro le similarit2 $ra le arie ersioni di .ni8 sono al giorno d/oggi molte* ra$$orzate an"%e dalla rati$i"a di standard #uali 04osi80* per "ui lo s iluppo di appli"azioni per .ni8 di ersi non - molto "ompli"ato. Tutto il mer"ato delle !orBstation s"ienti$i"%e - gra$i"%e e dei grossi ser er di rete - basato su S.O. 0.ni8 liBe0.

I personal computer

=n"%e i S.O. per personal "omputer %anno per"orso un/e oluzione analoga a #uella del S.O. destinati ai "omputer piA grossi. KKKK to be done K

I $%

KKKK to be done K

MS&'OS (indo)s *inu#

KKKK to be done K KKKK to be done K KKKK to be "ompleted K Molti appassionati* disponendo di %ard!are di erso dei sorgenti e dell/ottimo g"" (GN. 5 5ompiler+ stabilirono di ersi gruppi "%e realizzarono il porting del sistema sull/%ard!are piA disparato. Tra le prin"ipali piatta$orme ri"ordiamo& 6igital =lp%a =<M e Strong =<M ("ome i nuo i 5orel Net!inder o s ariati modelli della ="orn 5omputer+ Motorola DC? (per i e""%i M=5* =miga e =tari ST+ 4o!er45 (4o!er M=5+ S4=<5 e .ltraspar" (an"%e "on la benedizione di Sun+

.e reti locali

KKKK to be "ompleted K =ppli"azioni 0peer to peer0 'a gran parte della potenza dei mi"ropro"essori del giorno d/oggi resta inutilizzata1 le uni"%e appli"azioni di uso generale in grado di mettere alla $rusta un "omputer odierno sono i ideogio"%i.

01 SO Intro.odt

Eer. 0.9.9 2011-0D-0F

p. 1F di 29

Ing. Gabriele MONTI

!!!.ingmonti.it

;igura 1G& Sistema a ser er $arm

Internet ed i computer ovun/ue


KKKK to be "ompleted KKKK

+.>.+

8erminali

*l terminale ' il pi semplice dispositivo di *?O dei sistemi centrali multiutente. "rima dell'avvento dei personal computer :met degli anni '@9; erano l'unico modo con il quale si poteva usare un computer "interattivamente".

0elescriventi

#na telescrivente :001: telet2pe1riter; ' una tastiera con stampante, c&e non &a !"# ed usa le tecnologie elettromeccanic&e della macc&ine per scrivere.
La telescrivente # stata per lungo tempo il mezzo attraverso il $uale venivano spediti i telegrammi. Una telescrivente cattura i caratteri digitati sulla sua tastiera e ne trasferisce il codice %&C'' ad un'altra ((), collegata ad essa con una rete analoga alla rete telefonica. La telescrivente che riceve il carattere lo scrive sulla sua stampante. *' cos+ possibile la trasmissione bidirezionale di testo da un capo all'altro del collegamento, fra punti $ualsiasi della terra.

*l primo tipo di terminale interattivo utilizzato sui computer fu la telescrivente, c&e gi esisteva e c&e non fu difficile adattare all'uso con un computer. *nvece di spedire i codici AS!** ad un'altra 88B, il terminale 88B li manda all'unit di *?O del computer. (a !"# acquisisce in questo modo i dati /attuti sul terminale. * risultati delle ela/orazioni della !"# venivano poi spediti alla stampante della 88B, c&e cosC li poteva mostrare interattivamente.

0erminali a caratteri (3te4t terminals3

('uso della stampante per ogni dato in uscita dal computer fu presto sostituito da un monitor a !78, analogo a quello della 8=. #n terminale di testo ' costituito da una tastiera e da un video: $sso non &a senza capacit ela/orative, ma solo di *nput?Output, ' collegato all'unit centrale con un'interfaccia seriale :7S ,D,, vedi il prossimo volume;, con un modem :anc&'esso trattato nel prossimo volume;, o con un sistema seriale sincrono quale S%A :terminali per mainframe *E3;. !i- c&e viene digitato nella tastiera viene spedito all'unit centrale c&e lo riceve ed ela/ora, poi lo rispedisce al terminale, c&e lo visualizza sul video, come fa con tutto ci- c&e l'unit centrale spedisce. p. 1D di 29 2011-0D-0F 01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

"er la visualizzazione ' necessaria un piccola quantit di memoria, c&e deve "ricordare" cosa visualizzare fra un passaggio e l'altro del pennello elettronico. * primi terminali video a caratteri erano dispositivi di *?O c&e, come le 88B, non avevano nessuna capacit ela/orativa autonoma. "er questo vengono c&iamati "dum" terminals", "terminali stupidi". !on i primi terminali stupidi si poteva interagire solamente con i caratteri alfanumerici della tastieraF in seguito vennero codificate delle particolari sequenze di caratteri c&e per il terminale erano comandi del tipo: "visualizza i prossimi caratteri in campo invertito, oppure lampeggiante o con certi colori". *n questo modo la qualit dell'output dei computer aument- notevolmente ma ai terminali fu ric&iesta una, sia pur minima, capacit di ela/orazione, per capire i comandi c&e venivano loro inviati.

01 SO Intro.odt

Eer. 0.9.9 2011-0D-0F

p. 1P di 29

Ing. Gabriele MONTI

!!!.ingmonti.it

!igura &-# .a/ ci0 c e viene visualizzato in un terminale a colori1 .b/ ci0 c e viene trasmesso dalla C)U
' comandi per i terminali sono costituiti da particolari se$uenze di caratteri, dette ! sequenze di escape!, i terminali pi moderni hanno centinaia di $ueste se$uenze .

(a Figura +G :/; mostra i caratteri effettivamente spediti quando viene visualizzata la sc&ermata in Figura +G :a;. Si pu- vedere come le sequenze di escape c&e codificano i colori siano spedite per far "cam/iare di stato" la visualizzazione, c&e prosegue con il nuovo colore fino a c&e non viene spedita la sequenza di escape c&e fa tornare al colore "normale". Ogni produttore di terminali invent- la sua serie di sequenze di escape, per cui il S.O. deve sapere c&e tipo di terminale ' collegato ad ogni sua porta, per poter spedire le sequenze di escape giuste. *l tipo di terminale pi usato fu il 4$! =8+99, c&e veniva anc&e emulato da terminali di altre marc&e. Questo terminale aveva alcuni tasti speciali e di funzione c&e venivano usati nei programmi interattivi. 3olti tipi di terminali *E3 usavano il codice alfanumerico $E!4*!, c&e veniva utilizzato nei mainframe, in luogo del codice AS!**, usato invece in tutti gli altri terminali.

0erminali grafici

* terminali grafici sono in grado di visualizzare rapidamente grafica a pi6el @. %ormalmente possiedono anc&e un mouse per l'input in modo grafico. * monitor grafici ottengono dall'unit centrale "mappe di pi6el" :"/itmap";, c&e scrivono nella loro memoria video per poter effettuare la visualizzazione. 4ato c&e si deve spedire il codice di ciascun pi6el da visualizzare il traffico di dati verso un terminale grafico ' molto pi alto c&e nel caso di terminali di testo. "er questo molti terminali grafici sono collegati con interfacce di trasmissione pi veloci della normale 7S,D,, c&e usano doppini sc&ermati :"t1ina6"; o cavi coassiali. *l tipo pi sofisticato di terminale grafico ' H1indo1 :senza s finaleI;. $sso ' uno standard per terminali nato in am/iente #ni6, ma c&e pu- essere usato anc&e in altri S.O. . HJindo1 prevede la spedizione di comandi grafici a pi alto livello, meno prolissi della descrizione a pi6el dell'immagine, facendo "risparmiare" un poco sulla velocit di connessione ric&iesta. *nvece di dire "colora il pi6el :A,E; di verde, il pi6el :!,4; di rosso" e cosC via per ogni pi6el dell'immagine, un comando HJindo1 potre//e suonare cosC: "disegna un rettangolo riempito di rosso delle dimensioni H e B, a partire dal punto :J, K;.
@ un pi6el ' un punto colorato sullo sc&ermo del monitor. "er ottenere una grafica a tutto sc&ermo ' necessario avere una memoria video nella quale ' mantenuto un numero c&e sta/ilisce il colore di ogni pi6el da memorizzare. (a !"# o la sc&eda video devono calcolare e trasmettere alla memoria video un codice per ogni pi6el dello sc&ermo.

p. 1C di 29

2011-0D-0F

01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

('esecuzione di questi comandi ric&iede la presenza di una !"# nel terminaleF essa peraltro non ' coinvolta nell'esecuzione del programma, c&e avviene solo nel computer centrale, ma solo nella visualizzazione dei risultati. * terminali per H1indo1 sono dispositivi piuttosto costosi, dato c&e de//ono includere tutto ci- c&e ' normalmente gi presente in un "! e ric&iedono un collegamento con l'unit centrale ad alta velocit . "er questo non sono molto usati e si preferisce usare programmi di emulazione del terminale H1indo1 c&e funzionano su un normale "!.

Computer in emulazione di terminale

('avvento del personal computer spazz- via il mercato dei terminali. * primi personal computer avevano capacit ela/orative autonome e costo confronta/ile, se non inferiore, a quello dei terminali dell'epoca. "er questo le aziende preferirono acquistare personal computer e dotarli, per il collegamento con in mainframe, di soft1are di "emulazione di terminale". #n programma di emulazione di terminale gira su un "!, ma si comporta esattamente come se fosse un terminale, pi o meno stupido. $quipaggiato con un programma di emulazione di terminale un personal computer si comporta nei confronti del mainframe esattamente come se fosse un terminale. Su "! esistono programmi di emulazione sia per i terminali a caratteri c&e per quelli grafici o HJindo1F un programma di emulazione molto semplice viene fornito con i S.O. Jindo1s :Jinterminal;.
Lo svantaggio principale # il fatto che usando programmi di emulazione la tastiera # diversa da $uella del terminale originale. ' tasti di funzione dei vecchi terminali vengono fatti corrispondere ad alcuni caratteri speciali del tastierino numerico del ,C. ,er i terminali complessi # utile usare una maschera sulla tastiera che indica $uali caratteri speciali e tasti di funzione sono fatti corrispondere a tasti del ,C.

-indo5s 0erminal Services

Nelle ersioni per ser er piA re"enti del S.O. 7indo!s - possibile de$inire 0terminali irtuali0 "%e eseguono programmi sul ser er* per "onto di 45 remoti* a""essibili attra erso una rete lo"ale. Il 45 remoto %a solamente $unzioni di isualizzazione* mentre tutta l/elaborazione iene eseguita sul 0ser er0* "%e di enta in #uesto "aso il "omputer "entrale di un sistema multiutente a tutti gli e$$etti. Il 0"lient0 di 7indo!s Terminal Ser i"es - #uindi di $atto un 45 in emulazione di terminale* an"%e se* in modo un po/ improprio* iene "%iamato appunto 0"lient0. Il antaggio di a ere un sistema "on terminali 7indo!s sta nella gestione "entralizzata dei programmi e nella possibilit2 di usare "ome terminale "omputer e""%i* "%e non sarebbero in grado di $ar girare 0da soli0 le appli"azioni piA moderne e 0pesanti0. 4er l/uso dei ser izi di terminale 7indo!s - ne"essario pagare una li"enza per ogni terminale atti ato sul 0ser er0. 6al lato 0"lient0 si paga in e"e la sola li"enza del S.O. (se si usa 7indo!s1 dato "%e esistono in 'inu8 so$t!are gratuiti di emulazione di terminali 7indo!s* se si usa 'inu8 non si paga la li"enza del S.O. 0"lient0+.

0erminali telnet e SS6

8utti i sistemi multiutente odierni sono in grado di far funzionare una s&ell !#* spedendo i loro dati su una connessione "virtuale" realizzata utilizzando i protocolli di *nternet. *n questo modo la funzione di terminale pu- essere svolta da qualsiasi computer collegato attraverso *nternet e c&e utilizzi il protocollo specifico c&iamato "telnet", c&e fa parte dei protocolli "di *nternet" :detti anc&e 8!"?*";. Se un computer multiutente ' a/ilitato ad usare il protocollo telnet un qualsiasi utente collegato ad esso attraverso *nternet pu- eseguire i propri programmi !#* sul computer ospite, a patto naturalmente c&e disponga di un nome utente e di una pass1ord validi sul quel computer. *l protocollo telnet spedisce dati e pass1ord "in c&iaro," esso non ' quindi sicuro dal punto di vista delle intercettazioni. Se un soggetto pu- intercettare dati c&e passano attraverso un collegamento telnet, egli pu- facilmente a compromettere il sistema. 4unque al giorno d'oggi telnet non viene pi usato su *nternet, ma solo sul collegamenti c&e si possano controllare fisicamente, dal teminale al computer centrale. "er accedere ad una s&ell su un computer remoto attraverso l'*nternet, al giorno d'oggi si usa il protocollo SSL :Secure SLell;, c&e spedisce crittati tutti i dati del collegamento :pass1ord comprese;. * dati vengono decrittati a destinazione. *n questo modo anc&e se i dati del collegamento vengono intercettati, c&i li intercetta non li potr comprendere, non essendo in possesso della c&iave di decrittazione. 6= ;=<@ KKKK !igura &2# Software telnet .pu++3/ collegato da 4indows ad un computer su cui esegue *inu5

3Neoterminali3 (t$in client% net5ork computer% ultra t$in client

7ecentemente il modello di ela/orazione centralizzata &a su/ito un rinnovato interesse, dovuto alla sempre maggiore difficolt di gestione dei "!. Quando una grande Azienda deve gestire migliaia di personal computer l'assistenza e la manutenzione sono un grosso pro/lema. Solamente il cam/io di versione di un programma usato da tutti implica l'installazione del nuovo soft1are su tutte le macc&ine.

01 SO Intro.odt

Eer. 0.9.9 2011-0D-0F

p. 19 di 29

Ing. Gabriele MONTI

!!!.ingmonti.it

*l modello dei "neoterminali"5 prevede un terminale intelligente, o un computer "leggero", c&e si collega, via rete locale od *nternet, ad un server :"application server"; c&e esegue le applicazioni. *l terminale, o "t$in client" :client leggero :sottile;;, non &a unit di memorizzazione locali :n. floppM dis<, n. &ard dis<; e provvede solo alle visualizzazioni ed ad altri lavori di "&ouse<eeping", mentre le applicazioni girano sul server. ('application server spedisce al client le "videate" dell'applicazione e l'utente al terminale lavora come se essa risiedesse sul suo computer. * vantaggi di questo approccio stanno nel fatto c&e /asta aggiornare l'applicazione sul server per fornire a tutti gli utenti l'aggiornamentoF inoltre gli utenti non possono manipolare il proprio computer, aggiungendo applicazioni o facendo pasticci c&e spesso ric&iedono l'intervento dell'assistenza. #ltimo fatto interessante ' c&e con un t&in client l'utente pu- far eseguire solo le applicazioni c&e ' autorizzato ad eseguire e non pu- "perder tempo" con programmi "estranei". Analogo ' il discorso per i cosiddetti "net1or< computer". Anc&e il net1or< computer &a poc&e o nessuna unit di massa locale, i suoi programmi sono scaricati dalla rete in un linguaggio di alto livello :es. Nava;, in modo da velocizzare il tempo di scaricamento, ed eseguiti localmente dalla macc&ina virtuale Nava. * net1or< computer non sono terminali, dato c&e il programma viene eseguito localmente, ma &anno le stesse caratteristic&e dei terminali per quel c&e riguarda la gestione, perc&. i programmi sono memorizzati in remoto. 7eb appli"ations #n modello di ela/orazione molto applicato attualmente ' quello delle "Je/ applications". *n questo caso i programmi vengono eseguiti su un server c&e rispetta il protocollo del Jord Jide Je/ :L88";. * risultati del programma ed i dati dell'utente vengono forniti attraverso un programma "client L88"", cio' attraverso il /ro1ser con il quale si fa normalmente la navigazione Je/ :es. 3S *nternet $6plorer, 3ozilla, Opera ed altri;. *l programma esegue dunque dal lato del server L88", c&e diventa una sorta di application server, e fornisce al client :/ro1ser; pagine scritte nel linguaggio L83(, c&e il /ro1ser interpreta e visualizza. *l programma "lato server" ela/ora i dati forniti dall'utente e produce pagine Je/ diverse in /ase ai dati ricevuti :pagine "dinamic&e";.

%ontrollo remoto+ V,%

Ser er* "lient per il "ontrollo remoto "ompressione* Internet Tutto il "ari"o "omputazionale - "on"entrato sul ser er* il "lient de e solo essere in grado di tras$erire dati dalla rete* di passare i pi8el al displa) e di a"#uisire i dati dalla tastiera. EN5 Troubles%ooting remoto

,ltra t$in client

'/utilizzazione di displa) e tastiere remote "ollegate in rete iene de$inito da #ual"uno 0.ltra T%in 5lient0 (.T5+* per ia delle risorse estremamente limitate "%e ri"%iede dal lato del "lient. In$atti* se non - atti ata la "ompressione* il "lient de e solo leggere i dati dalla rete rispettando il proto"ollo EN5 e tras$erire i pi8el al displa). 6ispositi i del genere sono usati* per esempio* nei displa) delle "asse dei supermer"ati. In ambiente industriale sistemi del genere sono apprezzati per"%- si pu3 mettere il "omputer in un u$$i"io ed il displa) nella $abbri"a. 9uindi solo il displa) do r2 essere parti"olarmente robusto* insensibile all/umidit2 alla pol ere od alle temperature estreme* mentre il "omputer potr2 essere del tutto 0normale0* e "ostare molto meno. .n .T5 si presenta "ome una 0s"atola0 "on una porta <ULF per il "ollegamento in rete @t%ernet* un "onnettore per il monitor EG= ed uno per la tastiera* "%e "ontiene una 54. da ero minimale* il "ui "ompito - solo #uello di realizzare il proto"ollo di "ontrollo remoto (es. EN5+. @sistono mi"ro"ontrollori "%e in"ludono al loro interno tutto l/o""orrente per realizzare un sistema del genere* "ontenendo i "osti in maniera molto signi$i"ati a.

.a console

(a console ' un terminale molto particolare, in quanto ' collegato direttamente all'unit centrale. * messaggi pi importanti c&e il sistema comunica all'operatore vengono emessi attraverso la console. #n programma applicativo emette tutti i suoi risultati sulla console, se non viene "istruito" per farlo "altrove". Alcune funzioni del sistema, relative alla sua amministrazione e alla manutenzione possono essere svolte solamente dalla console.

*l termine ' dell'autore, non ' usato nella letteratura tecnicaI

p. 20 di 29

2011-0D-0F

01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

!igura &6# Sistema centralizzato (a console pu- essere collegata come un normale terminale, attraverso una porta seriale 7S ,D,, oppure, pi pro/a/ilmente, pu- fare uso diretto del monitor e della tastiera dell'unit centrale.

1.7

.ivelli d'astrazione% macc$ine virtuali

'/appro""io a ma""%ina irtuale* del #uale abbiamo a""ennato in pre"edenza* si pu3 generalizzare* pensando ad un/ar"%itettura in "ui siano presenti ma""%ine irtuali in"luse una dentro all/altra. Ogni ma""%ina usa i ser izi della sottostante e $ornis"e ser izi piA astratti a #uella "%e le sta sopra. '/utente* all/esterno di tutti gli strati* pu3 godere di tutti i ser izi del S.O. In modo molto piA sempli$i"ato. 9uesto modo di edere un S.O. iene di solito illustrato "on diagrammi 0a "ipolla0* "ome #uello in ;igura 1P

!igura &7 Stratificazione dei sistemi operativi Il diagramma della $igura - del tutto ideale* non $a ri$erimento a nessun S.O. esistente e ser e solo per indi"are #uali potrebbero essere le risorse rese astratte ed un possibile ordine dal piA $isi"o al piA astratto. I S.O. reali possono a ere strati "on un di erso ordine e* sopratutto* tendono a b)passare al"uni degli strati. @ssi usano raramente una rigorosa ar"%itettura strati$i"ata* sia per ragioni di e$$i"ienza* sia per"%M essi sono programmi "os, "ompli"ati "%e - molto di$$i"ile progettarli in modo 0pulito01 inoltre durante la ita operati a di un S.O. esso subis"e modi$i"%e ed aggiunte di $unzioni* "%e per moti i prati"i tendono a de iare dall/ar"%itettura inizialmente progettata. 01 SO Intro.odt Eer. 0.9.9 2011-0D-0F p. 21 di 29

Ing. Gabriele MONTI

!!!.ingmonti.it

'o strato piA i"ino all/%ard!are della ;igura 1P %a il "ompito di realizzare il "on"etto di pro"esso. .n utente "%e usi i ser izi $orniti da #uesto strato pu3 "reare ed utilizzare pro"essi di ersi* "ome se a esse a disposizione 54. di erse* una per ogni pro"esso. Nella gestione dei pro"essi - ne"essario "%e il Sistema Operati o metta a disposizione $unzioni per& - "reare i pro"essi - assegnare la 54. ai pro"essi (pro"ess s"%eduling+ - realizzare politi"%e di assegnazione delle risorse ai pro"essi (54.* memoria* peri$eri"%e..+ - distruggere i pro"essi (terminazione "ome e ento 0normale0 o per la presenza di un errore+ - realizzare strumenti per la "omuni"azioni $ra i pro"essi (interpro"ess "ommuni"ations+ - realizzare strumenti per la sin"ronizzazione dei pro"essi (primiti e di sin"ronizzazione* edi oltre+ 'o strato su""essi o indi"ato in $igura gestis"e la memoria. @sso realizza la memoria irtuale* la sua allo"azione ai pro"essi e deallo"azione. .n programma "%e usi i ser izi di #uesto strato pu3 usare indirizzi di memoria irtuale* in e"e "%e indirizzi $isi"i. 'o strato su""essi o (gestione dell/IOO+ si o""upa del dettaglio della gestione dei dispositi i* assorbendo al suo interno tutta la parte di IOO di basso li ello* interrupt e 6M= "ompresi. Ogni dispositi o de e a ere un so$t!are spe"i$i"o ad esso dedi"ato* "%e "ostituis"e l/inter$a""ia $ra il S.O. ed il dispositio stesso. 5ompito di #uesto so$t!are* "%e iene detto 0de i"e dri er0* - l/e$$ettuazione di tutte le "omuni"azioni $ra il dispositi o e laOle 54. del sistema. Il de i"e dri er - una 0estensione0 del S.O.* "%e realizza un/astrazione %ard!are del dispositi o* $ornendo al resto del S.O. ed ai programmi di utente la isione di un dispositi o 0standard0. I dri er sono suddi isi in 0tipi0* in base alle "aratteristi"%e dei dispositi i "%e "ontrollano. 4er esempio* tutti i dri er di tipo 0s"%eda di rete0 de ono $ornire al S.O. i loro dati nello stesso modo* indipendentemente dal produttore della s"%eda e del "ir"uito elettroni"o di "omuni"azione usato nell/%ard!are. S"%ede e "ir"uiti elettroni"i possono essere del tutto diersi* ma identi"o de e essere il modo di usarli all/interno del S.O. Il de i"e dri er si de e prendere il "ompito di "ontrollare la s"%eda di rete e passare i dati "%e ne ri"a a agli altri strati del sistema nel modo "%e - stato pre isto dai progettisti del S.O. . Si pu3 dire "%e lo strato di gestione degli IOO - "ostituito in massima parte dall/insieme dei de i"e dri er dei dispositi i presenti sul "omputer. I programmi "%e usano lo strato di IOO* e ne sono 0$uori0* %anno dun#ue una isione astratta dei dispositi i %ard!are* si possono disinteressare dei dettagli relati i all/IOO $isi"o e possono sempli"emente a""edere ai dati. Nei S.O. di tipo .ni8 ogni dispositi o %ard!are de e essere isibile dall/esterno del S.O. "ome un sempli"e file. Nei S.O. di tipo 7indo!s* ogni dri er de e rispettare le spe"i$i"%e di una >=' (>ard!are =bstra"ion 'a)er+ "%e indi"ano al programmatore "%e s"ri e il de i"e dri er tutte le $unzioni "%e de ono essere realizzate ed il modo "on "ui de ono essere passati i dati al S.O. . '/ultimo strato del disegno pre"edente - lo strato di gestione dei $ile (0$ile s)stem0+. .n $ile s)stem si o""upa della realizzazione del "on"etto di $ile. =l di sotto di #uesto strato le in$ormazioni sui dis"%i rigidi sono a""essibili solo "ome un insieme 0sparpagliato0 di in$ormazioni* s"ritte sul supporto $isi"o in modo disordinato. Il file s)stem organizza i settori dei dis"%i in $ile& unit2 logi"%e "%e "ontengono in$ormazioni omogenee e "%e sono a""essibili "on un nome simboli"o. Il $ile sono a loro olta organizzati in strutture gerar"%i"%e ad albero di "artelle (0dire"tor)0 o $older+* la "ui gestione an"%/essa "ompito del $ile s)stem. 5ompito di un $ile s)stem - realizzare il 0"on"etto0 di $ile organizzando e gestendo opportunamente la memoria di massa (%ard disB+1 a #uesto s"opo - ne"essario& assi"urare l/assegnazione e la manutenzione di un 0nome0 per ogni $ile gestire un metodo per assegnare e tenere tra""ia delle "aratteristi"%e dei $ile (0attributi0 dei $ile+ organizzarli logi"amente i $ile in 0"ontenitori0 (0dire"tor)0 o 0$older0+ rendere possibile la loro lettura* s"rittura e "an"ellazione* "ontrollando nel "ontempo "%e l/a""esso ai $ile sia possibile solo da parte degli utenti autorizzati .no o piA degli strati del disegno engono raggruppati a $ormare il kernel 9del Sistema Operati o. Il Bernel* o nucleo* - la parte del S.O. "%e sta a diretto "ontatto "on l/%ard!are. @sso $ornis"e sempre le $unzioni prin"ipali "%e riguardano i pro"essi ed an"%e* ma non sempre* $unzioni di astrazione dell/%ard!are e di memoria irtuale. In al"uni S.O. il $ile s)stem iene realizzato al di $uori del Bernel* #uesto permette di sostituirlo age olmente ed an"%e di usare $ile s)stem di ersi sullo stesso "omputer. Se il $ile s)stem - $uori dal Bernel i relati i pro"essi girano "on pri ilegi d/utente e sono molto piA si"uri per l/a$$idabilit2 generale del sistema.

9 la parola 0Bernel0 signi$i"a letteralmente 0no""iolo0 (della pes"a+ e d2 una rappresentazione piuttosto "alzante* "onsiderando la ;igura 1P &-+

p. 22 di 29

2011-0D-0F

01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

9uando "/- un errore so$t!are in una pro"edura "%e $a parte del Bernel "/- una buona probabilit2 "%e tutto il sistema ada in "ras%* mentre un errore in un programma d/utente di solito pu3 enire re"uperato "on l/interruzione del solo programma "%e %a "ausato l/errore ed il mantenimento del "ontrollo globale. Il Bernel - la parte del S.O. "%e esegue "on i piA alti li elli di priorit21 al Bernel 0tutto - permesso0. Il Bernel di un S.O. - un/entit2 "%e iene "ompilata "ongiuntamente. @sistono Bernel molto pi""oli ed altri molto oluminosi .. '/ar"%itettura strati$i"ata di un S.O. d2 an"%e note oli antaggi per #uel "%e riguarda la s"rittura del so$t!are ed il relatio debugging .. .

A$I

5ome gi2 spiegato il S.O. nas"onde il ero %ard!are del "omputer* presentando ai programmi appli"ati i ed all/utente una ma""%ina irtuale "%e di$$eris"e dall/%ard!are reale ed - di utilizzazione piA sempli"e. 4iA in generale* #uando uno strato di so$t!are nas"onde ai suoi utilizzatori i suoi dettagli implementati i* permettendo una sempli$i"azione nell/uso delle risorse del Sistema* #uello strato si pu3 "%iamare 0 risorsa virtuale0* o 0oggetto astratto0. .na risorsa irtuale permette ai suoi utilizzatori di operare in modo sempli$i"ato nell/uso di una risorsa 0$isi"a0 (o di piA basso li ello+. '/utilizzatore di una risorsa irtuale de e sapere "ome usarla. 'e in$ormazioni ne"essarie per poter utilizzare una risorsa irtuale si "%iamano 0interfaccia0 della risorsa irtuale. 4er esempio* se la risorsa irtuale - un so$t!are* essa - "ostituita da un insieme di $unzioni (pro"edure+. Se "onos"iamo& il nome di "ias"una delle pro"edure della risorsa irtuale la sua $unzione ("osa $a+ il numero* il tipo* l/ordine e la $unzione di "ias"uno dei parametri delle pro"edure siamo in grado di utilizzare la risorsa irtuale. '/insieme delle in$ormazioni appena "itate a sotto il nome di 0 interfaccia software0 o* piA "omunemente di 8)I (8ppli"ation )rogram Inter$a"e+.

Macchine virtuali a livello di linguaggio

Eirtualizzazione di una 54.. @s. Ua a EM* 5'< del .N@T $rame!orB. Non "/entrano "ol S.O. Strati$i"azione del so$t!are 0oltre0 il Sistema Operati o

01 SO Intro.odt

Eer. 0.9.9 2011-0D-0F

p. 2G di 29

Ing. Gabriele MONTI !igura &9 Strati$i"azione del so$t!are del $rame!orB .N@T (da do"umentazione Mi"roso$t+

!!!.ingmonti.it

5ome si pu3 edere dalla $igura si possono aggiungere strati di so$t!are ben oltre i "on$ini del Sistema Operati o.

Virtual Machine Monitor (VMM

Eirtualizzazione di un "omputer. .n EMM tras$orma una singola ma""%ina %ard!are in N istanze di "omputer irtuali indipendenti. 5ias"una di #ueste istanze - una 0"opia0* non ne"essariamente identi"a* della ma""%ina $isi"a* dotata di 54. "on le stesse istruzioni della ma""%ina $isi"a e di sue proprie risorse di sistema irtuali (memoria* IOO* peri$eri"%e+. Non - detto "%e le risorse di sistema "%e engono emulate siano identi"%e a #uelle e$$etti amente presenti sulla ma""%ina ospite.

Virtualizzazione ed emulazione

'/emulazione - una parti"olare $orma di irtualizzazione. Si parla di emulazione #uando un so$t!are "%e - stato "reato per $unzionare "on un "erto insieme di istruzioni iene $atto eseguire in un sistema "%e %a un altro insieme di istruzioni. Il so$t!are di emulazione tipi"amente - un interprete* ri"e e le istruzioni "on un set di istruzioni ed emette istruzioni nel set d/istruzioni della 54. $isi"a. 4eri$eri"%e

%$"
;ile s)stem 4rogrammi di sistema ed utilit) ba"Bup

+.2.+

S.O. "monolitici" o S.O. "modulari"

Se il Bernel di un S.O. - "ostituito da un uni"o $ile* "ompilato e linBato &-( tutto insieme* si di"e "%e esso - 0monoliti"o0. 6ato "%e il Bernel in"lude an"%e i dri er delle peri$eri"%e il $atto di a ere un Bernel monoliti"o non ne $a"ilita l/aggiornamento* per"%M l/aggiunta di una nuo a peri$eri"a signi$i"a la ri"ompilazione del Bernel. 'e prime ersioni del S.O. 'inu8 a e ano un Bernel strettamente monoliti"o1 in e"e oggi esso pu3 "ari"are al"une sue parti* dette 0moduli0* a tempo di ese"uzione. I dri er dei dispositi i sono di solito usati sotto $orma di moduli* per non do erli "ompilare tutti nel Bernel* "ari"ando in e"e solo #uelli strettamente indispensabili. 6a #uesto punto di ista* analoga - la situazione di 7indo!s.

+.2.,

S.O. a micro<ernel

.n S.O. a mi"roBernel %a un Bernel molto pi""olo (mi"ro &-+. Nel Bernel di un sistema di #uesto tipo sono implementate le sole $unzioni strettamente indispensabili* in al"uni "asi solo la gestione dei pro"essi e la parte piA a basso li ello della gestione dei dispositi i. Tenendo $uori dal Bernel tutto il resto si aumenta la $lessibilit2 del sistema* ed an"%e la sua si"urezza. 4eraltro si pu3 perdere in e$$i"ienza* dato "%e an"%e i programmi del S.O.* per ogni ser izio signi$i"ati o* do ranno e$$ettuare "%iamate al Bernel* perdendo tempo. KKKKto be "ompleted K @sempio& il Bernel del S.O. In tempo reale 09N:0 - 10 BN)te* %a solo 1L "%iamate. = li ello 0 (ring 0+ del pro"essore girano solo il mi"roBernel ed i ser izi di risposta alle interruzioni. Tutti gli altri ser izi ($ile s)stem* gestione dei de i"e* ser izi di rete* inter$a""ia utente gra$i"a (G.I+ ..+ girano isolati e protetti dal ring 0* "ome normali pro"essi 0utente0. @siste un parti"olare pro"esso detto 0!at"%dog0 il "ui solo s"opo - "ontrollare "%e non "i siano iolazioni di a""esso alla memoria.

+.2.D

Altre classificazioni

S.O. 3general purpose3 o 3dedicati3

'a gran parte dei "omputer usa Sistemi Operati i generali* progettati per rispondere alle esigenze piA di erse (S.O. 0general purpose0+. 4eraltro al"une appli"azioni 0spe"iali0 possono "%iedere al Sistema Operati o prestazioni o $unzioni "%e un S.O. 0normale0 non pu3 assi"urare. 6un#ue "on "erti parti"olari tipi di appli"azioni non - possibile utilizzare Sistemi Operati i 0general purpose0 ma bisogna ri olgersi a S.O. spe"ializzati. @sempi di S.O. spe"ializzati sono i S.O. realtime od i S.O. per la gra$i"a (nelle "onsole per gio"%i+. p. 2L di 29 2011-0D-0F 01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

S.O. real&time

Ormai an"%e le appare""%iatura piA impensate ra""%iudono una 54.1 #uando #uesto a""ade si usa parlare di dispositi i 0intelligenti0. Molti dispositi i 0intelligenti0 (detti an"%e dispositi i 0 embedded0+ %anno un so$t!are piuttosto sempli"e1 in #uesti "asi la 54. pu3 eseguire un singolo programma "%e "ontrolla tutto il $unzionamento del dispositi o ed il suo 0"ollo#uio0 "on il mondo esterno. 9uando il so$t!are di un sistema embedded 0"res"e0 $ino a di enire moderatamente "omplesso - opportuno usare i serizi di un Sistema Operati o dedi"ato. 'e esigenze dei dispositi i embedded sono spesso molto di erse da #uelle tipi"%e dei normali "omputer1 esigenze analog%e sono poste an"%e da "omputer "%e de ono inter enire su sistemi "omplessi* per assi"urarne il monitoraggio od il "ontrollo. Il in"olo piA importante posto a #uesti sistemi* "%e "%iameremo 0sistemi in tempo reale0 (realtime+* riguarda i tempi di risposta alle solle"itazioni "%e pro engono dal mondo esterno. Tempo reale 9uello di 0tempo reale0 - un "on"etto relati o. Si pu3 dire "%e un sistema - in tempo reale se $ornis"e i suoi risultati in tempo utile per lo s"opo "%e "i si pre$igge. '/entit2 e$$etti a dell/inter allo di tempo massimo oltre il #uale il sistema non - piA in tempo reale dipende $ortemente dall/appli"azione* per esempio& 1. per il 0rendering0 gra$i"o $inale di un $ilm animato si pu3 attendere molti giorni* o di ersi mesi 2. per il "al"olo delle pre isioni meteorologi"%e a medio termine "i si pu3 permettere di attendere di erse ore G. per la regolazione di una temperatura il tempo $ra le attuazioni pu3 andare da po"%i se"ondi a di ersi minuti* in base alle dimensioni ("apa"it2 termi"a+ dell/oggetto da regolare L. per una transazione $inanziaria (es.Nan"omat+ il tempo massimo per lo s olgimento dell/operazione - dell/ordine di una de"ina di se"ondi (altrimenti l/utente si inner osis"e..+ F. per la realizzazione di mo imenti me""ani"i rapidi (es. mo imentazione automati"a di materiale* bra""i di robot+ il tempo per la lettura dei sensori e l/ese"uzione del programma "%e de"ide "ome "omandare i motori pu3 andare dai po"%i millise"ondi al se"ondo D. per prendere de"isioni in un dispositi o elo"e di una rete di "omputer si de e impiegare da al"une de"ine di ns ad 1 Vs (es. 0s!it"%0 di rete lo"ale o router ( edi il prossimo olume++. 4er rispondere ad esigenze "os, di erse in termini di tempo non si pu3 s"egliere sempre la stessa soluzione. 6i solito per i "asi 1* 2 e L engono usati parti"olari "ombinazioni di "omputer 0normali0* "on S.O. 0general purpose0* "ollegati in rete* o an"%e parti"olari sistemi "on S.O. dedi"ati. 4er il "aso D molto spesso non si pu3 $are a meno di ri"orrere al 0puro %ard!are0 (esistono tipi di 54. dedi"ate* progettate proprio per $inire dentro le appare""%iature di ree* "%e engono de$inite 0net!orB pro"essors0+. Negli altri "asi si s"eglie il S.O. 0general purpose0 se l/appli"azione - sempli"e ed i tempi di risposta sono dell/ordine dei 10 ms* ma non de ono essere rispettati strettamente* mentre bisogna pensare ad un S.O. realtime se si %a bisogno di risposte garantite entro po"%i ms* oppure se il sistema - "os, "omplesso "%e un S.O. generale non garantirebbe risposte neppure nell/ar"o di tempo dei se"ondi. 'e esigenze piA tipi"%e "%e portano alla s"elta di un S.O. realtime sono le seguenti& 1. regolarit2 (determinismo+ nei tempi di risposta* 2. elo"it2 dell/IOO G. a""esso agli interrupt %ard!are L. "ontrollo delle priorit2 dei pro"essi F. possibilit2 di modi$i"a delle 0politi"%e0 di gestione del sistema 'e prime due esigenze sono de"isi e ed esprimono l/appro""io di erso "on "ui engono progettati #uesti sistemi. Mentre i S.O. 0general purpose0 sono progettati per massimizzare l/e$$i"ienza nell/ese"uzione dei programmi* #uelli in tempo reale sono pensati per massimizzare le prestazioni in IOO. 4er #uesto possono dare tempi di latenza 0garantiti0* per rispettare i #uali sono disposti ad eseguire i programmi "on una e$$i"ienza leggermente in$eriore. =l"une appli"azioni tipi"%e per i sistemi in tempo reale sono& - Super isione e "ontrollo di impianti "%imi"i* industriali e reti di trasporti (reattori "%imi"i e nu"leari* linee di montaggio robotizzate* automazione $erro iaria* ..+ - 6ispositi i 0intelligenti0 nell/automobile (=NS* airbag* "ontrollo dell/a""ensione* ..+ - 6omoti"a (automazione 0della "asa0& de"oder per pa)-TE* anti$urto* ..+

+.2.G

3emoria virtuale

Si parla di memoria irtuale #uando i programmi possono utilizzare uno spazio di indirizzi molto piA grande di #uello $isi"amente disponibile sul sistema su "ui $unzionano. 4er poter realizzare #uesto obietti o non si utilizza la sola memoria di la oro (<=M+* ma an"%e lW%ard disB. Ogni programma utilizza uno spazio di indirizzi molto ampio* detto memoria irtuale* e si 0illude0 di a ere a disposizione una memoria piA grande di #uelle $isi"amente disponibile. 01 SO Intro.odt Eer. 0.9.9 2011-0D-0F p. 2F di 29

Ing. Gabriele MONTI

!!!.ingmonti.it

Il sistema operati o e la 54. "on"orrono a $ar s, "%e tutta la memoria ri"%iesta dai programmi sia disponibile* o nella memoria <=M* oppure sul dis"o $isso del sistema. Sul dis"o $isso iene riser ata un/area* detta 0area di swap0 (0s!ap area0+* "%e iene destinata a "ontenere #uelle parti della memoria irtuale "%e non tro ano posto nella <=M. 9uesta area iene gestita direttamente dal Sistema Operati o e pu3 an"%e essere un ero e proprio $ile* nel #ual "aso iene "%iamata 0swap file0. =d ogni a""esso alla memoria $isi"a (p.es. per una MOE* in un programma appli"ati o+* parte un me""anismo di tras$ormazione dellWindirizzo irtuale in un indirizzo $isi"o. 9uesto me""anismo - #uasi sempre supportato da $unzionalit2 %ard!are della 54.* "%e andr2 automati"amente a "er"are la "orrispondenza $ra indirizzo irtuale ed indirizzo $isi"o. 9uesta "orrispondenza sar2 tro ata in opportune tabelle* situate in lo"azioni note della memoria. 'Windirizzo $isi"o troato in #ueste tabelle sar2 e$$etti amente utilizzato per a""edere alla <=M. Naturalmente* dato "%e il numero delle lo"azioni di memoria irtuale - molto piA grande di #uello della memoria $isi"a* potr2 darsi "%e la lo"azione irtuale non sia presente in memoria $isi"a. 'a 54. si a""orger2 di #uesta man"anza "onsultando le tabelle ed innes"%er2 un pro"esso di lettura di un blo""o di dati dal dis"o $isso. "er far questo la !"# lancer una particolare eccezione, mappata ad un /en determinato vettore dOinterruzione. (e routine di risposta alle eccezioni fanno parte del Sistema Operativo, perci-, se manca la locazione di memoria virtuale voluta, verr eseguita automaticamente una routine del S.O.. Se la memoria fisica non ' usata completamente, il S.O. legge sullO&ard dis< il P/loccoQ c&e contiene lOindirizzo virtuale c&e non si era trovato e lo e scarica in memoria fisica. Se la memoria $isi"a - "ompletamente piena* il S.O. de"ider2* "on suoi "riteri interni* #uale parte della memoria $isi"a do r2 es"ludere* "opiare sul dis"o rigido* e so ras"ri ere "on il 0blo""o0 "%e "ontiene la lo"azione "%e man"a a inizialmente* letto dal dis"o rigido. 9uesta operazione iene detta 0 swapping0 ( edi +.

;igura 19& s!apping '/operazione di s"rittura in memoria $isi"a di parte della memoria $isi"a 0par"%eggiata0 sull/%ard disB iene detta 0 swap in0* mentre l/operazione "ontraria* dalla memoria all/%ard disB* iene detta 0 swap out0. Il me""anismo "%e $ornis"e la memoria irtuale - trasparente al programma appli"ati o* "%e ede soltanto una memoria molto grande. =l so$t!are appli"ati o sono "elati tutti i dettagli sullWimplementazione e$$etti a della memoria irtuale. X importante sottolineare "%e l/operazione di s!apping - molto piA lenta rispetto alle operazioni* an"%e "omplesse* "%e "oin olgono la memoria <=M* in #uanto "oin olge la memoria di massa. 4er"%M il "omputer sia elo"e il S.O. do r2 $are tutto il possibile per rendere minime le operazioni di s!apping* indi iduando le aree di memoria "%e sono usate raramente ed e$$ettuando lo s!ap out su #uelle.

+.2.>

"rotezione

In un sistema multitasBing si pone il problema di "ome proteggere il Sistema Operati o e gli altri tasB dalle istruzioni di #uei tasB "%e* per errore o per atta""o malizioso alla si"urezza del sistema* tentino di a""edere a lo"azioni di memoria "%e non do rebbero essere a""essibili. 4er e itare "%e un tasB inter$eris"a "on gli altri si de ono mettere in atto due me""anismi di protezione& protezione della memoria - e itare "%e pro"essi non autorizzati possano a""edere ad aree di memoria riser ate protezione delle istruzioni - e itare "%e pro"essi non autorizzati possano eseguire istruzioni peri"olose per la stabilit2 dell/intero sistema. 4rotezione della memoria KKKK to be "ompleted KKKK 4rotezione delle istruzioni istruzioni pri ilegiate (p.es. IOO* modi$i"a dei ettori d/interruzione e del timer* 5'I* STI+ KKKK to be "ompleted KKKK p. 2D di 29 2011-0D-0F 01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

9uando un S.O. appli"a la protezione esso de e essere in grado di distinguere di ersi li elli di pri ilegio* e di assegnare ad ogni pro"esso l/opportuno li ello. =l"uni pro"essi do ranno essere estremamente limitati nell/a""esso alle risorse* mentre altri potranno a ere la piA ampia libert2. @/ "%iaro "%e il Sistema Operati o do r2 poter a""edere ad ogni lo"azione di memoria ed utilizzare tutte le istruzioni della 54.* per "ui do r2 a ere il li ello piA pri ilegiato* mentre i normali programmi dei normali utenti saranno "on$inati* per si"urezza* al li ello meno pri ilegiato. Il modo piA sempli"e di suddi idere i pri ilegi* realizzato an"%e nei S.O. piA usati al giorno d/oggi* - distinguere $ra due soli 0li elli0* uno destinato al S.O. e l/altro usato da tutti gli altri programmi. Si di"e "%e un pro"esso - in 0modo super isore0 (super isor) mode o kernel : mode+ #uando esegue "on tutti i diritti sulla protezione* mentre - in 0user : mode0 #uando non %a al"un pri ilegio parti"olare di protezione. =l"uni Sistemi Operati i del passato %anno a uto di ersi li elli di protezione* peraltro #uesto pu3 "omportare un tale aggra io nella gestione del sistema da renderlo po"o e$$i"iente. 4er esempio* il S.O. Multi"s a e a F li elli di pri ilegio* ma essendo molto "omplesso ed essendo stato s"ritto in un/epo"a in "ui la 54. pote a dare s"arso supporto %ard!are al S.O.* era talmente lento ed ingombrante da non essere mai "ommer"ializzato. Modi utente e super isore Si"urezza Si"urezza nell/a""esso ai $ile. .n sistema pensato per la multiutenza de e tenere tra""ia dei diritti di a""esso per i dire"tor) ed i $ile. =""esso ai ser izi o$$erti dal S.O. 4er a ere a""esso alle $unzioni del S.O. il programma appli"ati o de e e$$ettuare delle 0"%iamate al Sistema0 (S)stem "alls* o 0super isor) "all0+* "%e $unzionalmente sono "%iamate a pro"edure 10.

Multitas-ing .cooperativo. oppure .preemptive..


---%lcuni traducono to preempt con !prelazionare!, termine che sinceramente # bruttino .. .in compenso !preempt! in 'taliano suona proprio male-/.

4oliti"%e In molti "ampi ed in molte o""asioni il S.O. de e prendere delle de"isioni. .na de"isione impli"a sempre una s"elta $ra di erse alternati e. Il S.O. $a le sue s"elte in base a pre"isi "riteri* "%e in genere de ono "er"are il miglior "ompromesso $ra prestazioni e uso di risorse. '/insieme dei "riteri "%e portano il S.O. a prendere de"isioni in un determinato "ampo iene detta 0 politica0 del S.O. in #uel "ampo (s;stem polic;+.

+.2.2
SM$

$la/orazione parallela

Sistemi multiprocessore
Il sistema piA sempli"e e di$$uso di multipro"essing - S<) (S)mmetri"al <ultipro"essing+. I sistemi SM4 pre edono "%e le 54. del "omputer siano del tutto identi"%e $ra loro e $unzionino alla stessa $re#uenza di "lo"B. In #uesto "aso il so$t!are multipro"essore si sempli$i"a drasti"amente1 per #uesto la maggior parte dei S.O. general purpose per "omputer multipro"essore $unziona su sistemi SM4. I sistemi SM4 sono 0simmetri"i0 per"%M sia la 54. "%e il so$t!are del S.O. sono 0identi"i0. Il S.O. non $a nessuna distinzione $ra una o l/altra delle 54. del "omputer1 esse possono eseguire pro"essi #ualsiasi* sia degli utenti "%e del S.O. stesso. Il problema maggiore di SM4 - la 0scalabilit=0 o erosia la di$$i"olt2 ad aumentare signi$i"ati amente le prestazioni all/aumentare del numero delle 54.. In prati"a* se aggiungere una 54. ad un sistema SM4 "on una sola 54. pu3 portare ad un in"remento* poniamo* dell/C0Y delle prestazioni1 aggiungere una 54. ad un sistema SM4 "%e ne %a gi2 F porterebbe ad un aumento del 10Y11. Il "%e signi$i"a "%e usare piA di L o F 54. su un sistema SM4 non - "on eniente& il "osto di un/ulteriore 54. non si 0ripaga0 "on un aumento su$$i"iente delle prestazioni del sistema. In un "omputer multipro"essore risorse di elaborazione sono "ollegate attra erso i bus di sistema* e #uindi "on un mezzo di "omuni"azione elo"issimo.

10 In al"uni S.O. per 54. :CD (MS-6OS* 'inu8+ la "%iamata a iene per mezzo di interrupt so$t!are* "ome gi2 isto. In 7indo!s la gran parte delle "%iamate di sistema sono 5='' a $unzioni 0esterne0 al programma* "%e risiedono in librerie a "ollegamento dinami"o (6''& 6)nami" 'inB 'ibrar)+ +. Gli interrupt so$t!are* an"%e se utilizzano il sistema d/interruzione per il salto alla pro"edura* dal punto di ista della $unzione "%e s olgono sono del tutto analog%i a "%iamate a pro"edura. 11 9ueste $igure per"entuali non sono 0esatte0 per"%M non pro engono da misurazioni* ma sono "omun#ue erosimili.

01 SO Intro.odt

Eer. 0.9.9 2011-0D-0F

p. 2P di 29

Ing. Gabriele MONTI

!!!.ingmonti.it

$arallelismo massivo

Se in un "omputer multipro"essore "i sono "entinaia o migliaia di 54. (0parallelismo massi o0+ i sistemi SM4 non sono piA adatti e si apre la ia ad una grande ariet2 di ar"%itetture* nelle #uali di solito una o piA 54. prendono il ruolo di 0"oordinatri"i0 delle altre e sono le uni"%e "%e possono $ar eseguire i pro"essi del S.O.. I S.O. operati i per "omputer "on ar"%itettura a parallelismo massi o di solito sono molto parti"olari* s"ritti apposta per un parti"olare tipo di appli"azione o per uno spe"i$i"o "omputer1 si tratta dun#ue spesso di Sistemi Operati i 0dedi"ati0 ( edi oltre per la de$inizione+.

Microprocessori multithreading e multicore

In tempi relati amente re"enti* nelle 54. per personal "omputer 0desBtop0 - stata introdotta una $unzionalit2 "%e sta in mezzo tra il monopro"essore ed il bipro"essore* si tratta dell/0 ;pert reading0. 'e 54. "on ar"%itettura di #uesto tipo %anno sul "%ip una singola 54. la "ui @8e"ution .nit - in grado di operare "on due istruzioni "ontemporaneamente. In #uesto modo* utilizzando in parallelo le unit2 di una singola 54.* possono essere eseguite "ontemporaneamente due istruzioni. 'a 54. emula il "omportamento di due 54. e "ome tale appare all/esterno. Il "omputer "%e usa una 54. dual t%reading "rede di a ere due 54.* an"%e se le prestazioni non saranno #uelle di un 0 ero0 sistema "on due 54.. Il passo su""essi o - stato #uello di integrare sul "%ip del mi"ropro"essore due o piA intere 54. (0"ore0 di 54.+ realizzando di $atto un ero sistema multipro"essore 0on "%ip0. = #uesta te"nologia - stato dato il nome 0 multicore0. 6un#ue un "omputer "on una 54. dual "ore - un un ero e proprio sistema bipro"essore di tipo SM4* "%e %a il antaggio di ri"%iedere meno spazio* "onsumo e di $are meno rumore di un sistema bipro"essore "on 54. separate. @/ dun#ue ideale per i "omputer multipro"essore destinati all/uso personale (0desBtop0 "omputer+. '/e oluzione della mi"roelettroni"a porta a realizzare mi"ropro"essori "%e "omprendono un numero sempre "res"ente di "ores di 54..

Sistemi distri"uiti %luster


.n cluster - un insieme di "omputer "%e si presenta "ome un uni"o "omputer. I "omputer "%e $anno parte di un "luster %anno tutti lo stesso Sistema Operati o e sono "ollegati da una rete elo"e* "ome una rete '=N. 'a parola inglese 0"luster0* signi$i"ando 0grappolo0 (dell/u aK+ d2 bene l/idea di un insieme di nodi di elaborazione "%e si "omporta "ome un 0grappolo0 uni"o. Il S.O. per "luster* essendo uguale in tutti i "omputer del "luster* %a gli stessi des"rittori di pro"esso* per "ui* "on opportuni algoritmi di s"%eduling* pu3 $are in modo "%e un pro"esso "%e iene eseguito su un "omputer 0migri0 ad un altro* in base alle esigenze del momento. Se p.es. un "omputer - s"ari"o di la oro* lo noti$i"a in rete a tutti gli altri "omputer del "luster1 se un altro "omputer si tro a in e"e "on un "ari"o di la oro e""essi o pu3 tras$erire al "omputer s"ari"o uno o piA dei propri pro"essi. 'a migrazione di un pro"esso - un e ento 0"ostoso0 in termini di tempo* per"%M la rete "on "ui i "omputer del "luster sono "ollegati - pur sempre molto piA lenta dei bus di sistema. 4er #uesto* il S.O. distribuito de"ider2 di e$$ettuar la migrazione di un pro"esso su un altro "omputer* solo se lo riterr2 e"onomi"amente "on eniente. =l"uni S.O. per "luster possono $unzionare "on un pro"esso "%e %a il "odi"e in un "omputer e la memoria in un altro (almeno temporaneamente* dato "%e la "osa - de"isamente 0strana0+. Il Bernel del S.O. 'inu8 - stato modi$i"ato da di ersi team per poter $unzionare in "lustering (es. le ersioni di 'inu8 0Neo!ul$0 o 0OpenMosi80+. =n"%e le ersioni 0ser er0 di 7indo!s possono essere aggregate in "luster. 4er permettere una migrazione dei pro"essi non troppo penalizzante* la rete "%e "ollega i "omputer messi in "luster de e essere ad elo"it2 relati amente alta. Si pu3 dire "%e la rete de e essere da '=N ;ast @t%ernet (100 MbitOs+ in su. Se le appli"azioni da eseguire in un "luster sono di di$$i"ile 0parallelizzazione0* "io- non si suddi idono $a"ilmente in pro"essi separati "%e "on"orrono insieme all/elaborazione* e "%e ri"%iedono tras$erimenti $ra "omputer a elo"it2 0possibili0* l/utilit2 del "luster di enta s"arsa. I "luster di "omputer sono utilizzati per risol ere problemi 0pro"esso intensi i0 #uali i problemi di "al"olo* e #uelli "%e sono relati i a moltissimi utenti da ser ire "ontemporaneamente. =l"uni esempi di problemi parallelizzabili sono& <endering di immagini digitali es. gli e$$etti spe"iali del $ilm 0Titani"0 sono stati realizzati "on un "luster di un "entinaio di "omputer 'inu8 Neo!ul$ 5al"olo te"ni"o e s"ienti$i"o* pre isioni del tempo e $inanziarie* indagini geologi"%e es. Sun usa "in#ue 0"omputer $arm0 basate su "luster di !orBstation Sun per il "al"olo delle simulazioni di progettazione dei "ir"uiti integrati delle sue 54.. I "luster "omprendono piA di D00 !orBstation multipro"essore* "on un totale di piA di L000 54.* G TN)te di memoria <=M e 100 TN)te di spazio in %ard disB. 'e 54. di #uesta 0"omputer $arm0 la orano "on un tasso di utilizzazione del 9PY. =nalogo dis"orso per Intel "%e per le simulazioni dei mi"ropro"essori usa "luster di "omputer "on la potenza di 10000 !orBstation s"ienti$i"%e. Sistemi ser er "%e de ono "ollegare molte migliaia di utenti "ontemporaneamente. In #uesto "aso ogni utente %a il suo pro"esso* "%e $ornis"e i ser izi "%e #uell/utente ri"%iede. 'a $a"ilit2 di migrazione dei pro"essi da un "omputer all/altro del "luster permette di aumentare le prestazioni del sistema sempli"emente aumentando il numero dei "omputer "%e "ompongono il "luster. es. il motore di ri"er"a 0Google0 basa le risposte alle ri"%ieste dei suoi "lienti su molti "luster di normali 45 0desBtop0 di medie "apa"it2* "on "aratteristi"%e non 0da ser er0* distribuiti in molti punti 0strategi"i0 del mondo e "ostituiti "ias"uno da al"une migliaia di 45 ($ino a 1F000+. p. 2C di 29 2011-0D-0F 01 SO Intro.odt

Ing. Gabriele MONTI 1999 - 2011

Introduzione ai Sistemi Operati i

!!!.ingmonti.it

Google $a uso es"lusi amente di sistemi distribuiti per"%-& 1. >a moltissimi utenti sparsi per tutto il mondo 2. ;ornis"e un ser izio di indi"izzazione automati"a e di ri"er"a su do"umenti. 9uesto - un problema altamente parallelizzabile* per il #uale - relati amente $a"ile di idere il "ompito $ra molti pro"essori G. ottiene l/a$$idabilit2 "on il so$t!are ed in modo distribuito* non "on l/%ard!are. I suoi "omputer non %anno "aratteristi"%e parti"olarmente 0spinte0 ma sono tanti e memorizzano tutti i dati in modo ampiamente ridondante. Se #ualsiasi "osa si rompe pu3 essere sostituita da un altro "omponente analogo presente nel sistema* senza al"una interruzione del ser izio. 'a ridondanza - dell/ordine delle de"ine di olte* o erosia i dati sono repli"ati in di erse de"ine di posti di ersi* e possono essere ripresi dalle "opie di riser a se su""ede #ual"osa alla "opia "%e un 45 sta usando "orrentemente* o se i rompe il 45 stesso.

/rid

0Grid0 - il nome "%e si d2 in .S= alla rete elettri"a e #ui l/analogia - proprio #uella della rete elettri"a. 5os, "ome una 04o!er Grid0 - una rete di distribuzione della energia elettri"a* nella #uale si attinge all/energia non interessandosi da do e iene* "os, una 05omputational Grid0 - una rete di distribuzione della potenza "omputazionale dei "omputer "%e la "ompongono* dalla #uale programmi non interatti i attingono 0"i"li di 54.0 per e$$ettuare i loro "al"oli. Mentre in un "luster i sistemi "%e parte"ipano all/elaborazione tendono ad essere omogenei $ra loro* e ad a ere le stesso S.O.* in una griglia i sistemi sono molto meno 0a""oppiati0 e possono essere molto di ersi. Mentre un "luster - un sistema 0stati"o0* nel senso "%e i "omputer "%e la "ompongono sono de$initi a priori* e per aggiungere un "omputer ad un "luster - ne"essario "on$igurare manualmente il sistema* la grid - un sistema dinami"o* nel #uale le risorse di elaborazione di aggregano 0spontaneamente0 ed automati"amente ed iniziano a parte"ipare all/elaborazione senza l/inter ento espli"ito di un amministratore del sistema. 'a griglia - un sistema 0meta"omputer0* in "ui i Sistemi Operati i "%e 0parte"ipano0 possono essere del tutto eterogenei. 6ata la "aratteristi"a di minore a""oppiamento dei "omputer di una grid ed il $atto "%e i programmi "%e i girano in una non sono interatti i* i "omputer di una griglia sono piA autonomi rispetto a #uelli di un "luster e le reti "%e trasportano le in$ormazioni possono essere piA lente. 'e grid possono usare an"%e Internet per il trasporto dei dati. S@TI Z >ome KKKK

%loud

Non molto di erso dal "on"etto di griglia* la 0nu ola0 - una griglia "%e iene utilizzata "on te"nologie 7eb. '/utente utilizza il bro!ser 7eb per $ar eseguire appli"azioni "%e non sono $isi"amente su un ser er spe"i$i"o* ma sono 0da #ual"%e parte0 nella rete Internet* "%e - la 0nu ola0 della parola 0"loud0. I $ornitori di ser izi 0"loud0 mettono a disposizione data"enter distribuiti "%e danno il antaggio di non do er spendere tempo e risorse per la gestione del sistema* nM per l/a"#uisto di %ard!are potente. 'e uni"%e spese da $are* oltre "%e per i "omputer 0 e""%i0 o po"o potenti "%e si de ono usare "ome "lient* sono i "anoni di 0a$$itto0 del ser izio di "loud "omputing. .no dei problemi prin"ipali "%e de ono a$$rontare i $ornitori di ser izi di "loud "omputing - #uello di rius"ire a garantire li elli di ser izio a$$idabile e "ostante* "io- #uella "%e iene de$inita la 09ualit) O$ Ser i"e0 (9oS+ garantita.

8ilanciamento del carico


KKKK TO6O 5uriosit2 Nel 19C1 un main$rame INM GP0 era un gigante "%e pesa a di erse tonnellate* "on 2 54.* un MN)te di memoria e de"ine di %ard disB* "ias"uno della dimensione di un $rigori$ero* "%e insieme pote ano "ontenere un "entinaio di MN)te. .sa a il Sistema Operati o MESOGP0* "%e a e a un manuale di de"ine di olumi* ed era molto a$$idabile ed e$$i"iente. .na ma""%ina del genere* della potenza di un organizer tas"abile di al"uni anni $a* era in grado di "ollegare "ontemporaneamente* "on prestazioni a""ettabili* i terminali di 2000 utenti. 4er la s"rittura del S.O. .ni8 $u s iluppato un linguaggio ad alto li ello* in #uesto modo $u piA $a"ile rendere il sistema portabile* dato "%e il ri"orso al linguaggio =ssembl) $u da ero minimo. Il linguaggio s iluppato do e a peraltro essere in grado di eseguire istruzioni molto i"ine alla ma""%ina* dato "%e do e a ser ire per s"ri ere un Sistema Operati o. 9uesto linguaggio di 0li ello intermedio0* a met2 $ra lW=ssembl) e gli altri linguaggi di piA alto li ello* ebbe an"%e piA su""esso del S.O. per "ui era stato in entato. Si""ome si ispira a ad un misterioso linguaggio preesistente* "%e si "%iama a 0linguaggio N0* enne "%iamato 0linguaggio 50 (5 language+.

01 SO Intro.odt

Eer. 0.9.9 2011-0D-0F

p. 29 di 29