You are on page 1of 306
Andrew S. Tanenbaum ta Cota ela or | MODERNI SISTEMI OPERATIVI pelt Te eA ee Bruno Crispo eae Pantene) rc = terra s (© 2016 Person fai, Milano Taino Aubevicedreiion fom the Enis lngoage tin, ented: MODERN OPERATING SYSTEMS, 4° ‘civion, by Ane laonbins Herbert Bn pubied by Pearon Eduction, In, poblbing as Penve Hal Coppi ©2015 Ald gis ered. No par of ts ask maybe epee or rare in any fi by any mats cron ech ngs yarn ogee yom tpn fm Poamen Edin bt tala language ition publsed by Peason Telia SpA. Copyright © 2016, i pace, eaografiheeforograiche appancnent all on pout parrenoache er psi analog, pletion, pee pa Pople nisin in que ees Foret adposene dg nent eit Per vcnal aon volte omission ef evortl unburione we Hsin Evita grooms, anche paral oa wo intern dato, con quasi mez, non aura Le fonocopie perso peronae del ere possono esore fletaae nei Et 15% di cian volume/lsccols diceo pagina all SAE del compe previo dalla 68, cama 4c lla legge 22 ails 1941 n. 633 esi ene ai rate peony com divesoda plo peronale posone cure cette seta di spe (Cents License Aworvssont per Te Ripreuons Fates, cose ch mal nteisonacened ary Eat web ween) congmico o comnerdalocomumue pes us sorieazonerbscatada CLEARS, vta Romara t 108, 20122 Milne, CCartridlelbione lana: Brum Crepe, Caio, Paki os Asterisk Traduzione e cazaione oltre dll quarts edi Grea i coperina Manitio Gaol Stompe: LECOPRINT. Ti march cit nel tet son di propre de love deteto 78-98-9190 Luan resto suPrORT DDATTCL ed in aly ove: pao 2016 Rixamps ‘ano 0 OL 02 03. OF Ie 8 19 20 bi Sommario Prefisione all edizione ital Prefizione degli autori Capitolo 1 Introduzione LLL Che cost un sistema operative LLL sistem operativo come macchina etesa 112 Istema operativo come gestore dee rise 1.2 Storia dei sistemi operativi 1.21 Primageneraione (1945-55): valvoletermoioniche 1.22. Seconda everarione (1955-65): arsisore semi batch 123 “en gererne (1965.0): IC mlprogammarone 12% Quant gnrazone (al 1980 ogi pened computer 1:25 Lagu genre (1990-ogpy computer oi 13) Anal delaware 131 Poceso 132° Manors 133 Dink 134 Dipms 135 136 Ariode commer 1.4. Panoramica dei sistemi operativi 1.4.1 Sistemi operativ per mainfiawe 142 1.43 Sistemi operatiri mukiprocessore 144 Sistem opera per penoral computer 145. Sistemi operativi per computer palmari 146 Sistem operativ integra 1A7 Sistem operativ per senori 148 Sistemi operate ralaine AD Sistem operaivi per smart cand * Le pagine contrassegnate con ki °c” sono rere ai capi Mi sonmario 5. Concert di base de sitemi operativi 15.1 Proexsi 152 Spusidegh indivi 153 Fle 154 Inpudourpar 155 Protesone 156 Lashell 15.7 Meoncewo di icapitlaciore 1.6 Chiamaxe di sistema 6.1 Chiamate di sitema per la gstione dei proces 1 162 Chiamate ei sistema per lagestione defile 16.3 Chiamate ai sistema per lagestione dele directory Kod Alrechiamate di sistema 73 Macchine virtual 7.6 Exokerne Progett eli programmaziore di grandi di 1.84 — modell di nintine 1.9. Stato dalla ricerca sui sistemi opeatvi 1.10 Linee general del resto del volume LL11 Uniea metiche 1.12 Riepitogo Capitolo 2 Processi e thread 21 medeto di proceso Sretione del proceso Chinsuea dun processo crarchic di process Sai din proceso Implemenciione dei possi ‘Maxdellaione deka mukipogrammazione 22 Uso de dead Manndll «theca casion “Thread POSIX, plemented chad nell spas wtente ealizzarione i heead nel er Iplementazionibside Schuler activation 36 x6 8 9 2 2 a B 46 9 3 33 3 56 32 38 60 6 6 64 68 68 69 69 7 n n B 4 7 78 82 82 83 cy 86 88 93 97 os or 02 103 24 33 34 Thad pop up Traformaone di colice asingol hon in odie mule wnicufone fra proce Race cand a Regine Maria ecasione co bay wating Slane wan Scmaor Mates Monitor 238 Scambiodi masaggi 289. Bare 23:10 tan Hoke: wady-copy update Iodusione allo scheduling Scheduling batch Schesal Sched contrapposiione al mecsarseno Schecaling shvead problemi di IPC 2.5.1 Prablems dei flosal a cena 25.2 Problema dei lettre stittor Staco della ricerca su processie thread paride ini 3.2.1 Norione di spatio degli ae 2 Sn 3.32. Tabell dllepagine 233° Valocinare a poginazione 334 Tabelle delle pine por grand memorie Algoritmi di sestivione delle pagine 341 Calgoitmo otinale di sostinizione delle pogine 342 Nocrecently used (NRU} 343 Firscin stout (FIFO) 344 Seconda chance BAS Cleck 3.4.6 Least recent used (LRU) 3.47 Simularealgontmo LRU via software 348 Working se 39 WSClock 3.4.10 Riepilogo degli agoviuni di sosituzione delle pagine 104 105, 108 109 110 120 126 BI 14 135 137 a7 13, M3, 50 1 132 1s 154 157 158 159 161 162, 165, 165, 168 170 173 174 178 9 133, 197 197 198 19) 189 199) 199 191 193, 198 35 36 a7 38 Problem di progetazione dei sistem di paginazione 35.1 Paliihe diallocarione global e loci «confiono 35:2 Conwoleo del carico 555.3 Dimensions delle pagine 3.54 lesion! separate espa di dash 35.5 Pagine condivie 35.6 Libreriecondivise 3.5.7 Tile mappa 35.8 Politica di siplivura 355.9. Imceriacca della memovia virtuale Problemi di implementarione 3.6.1. Isistema operative e la paginazione 3.6.2 Gestione dei page fale 3.6.3 Backup delle weruziont 364 Bloceare le pagine in memoria 3.6.5 Memoria secondaria 3.6.6. Separaione ia polideae neccanismo Sqgmentazi Bra ravione dla segnentarione para 722 Segmemiaione can ls paginazione: MULTICS 3.7.3 Segmencaione can paginacione: Mel 86 Sato della ricerca sulla gestione dell, memoria Capitolo 4 File system 4 42 43 44 Tile 41 Nomi dei ile 2 Seamus de file 3 Tpidi file A Atco aie 5 Awwibut dei fle 6 Operacioni ui 7 romped prpwnnberticillmnendtlegion Le directory 42.1" Shc di dreceory lve siglo 422 Swe di dietary go 423 Nomed peor 424 Operon ile directary Implemeniavione del filesystem Taye de fle system Inaplmenazion di fie Ingpkmentarione dle diretory ie conv Fie sytem bas slog seta File stem jouraling Fe ssem viru jestione eottimizzazione del filesystem 4.1 Gestone dl spazio su dsco 442 Backupde! essen 99 199 202 oor 204 205 206 208 209 210 210 au 212 213 213 215 217 219 220 ne 21 22 22 234 235 ASB Cansistenan dl fle system AAA Dretaioni del file system 445 Dsframmentasione dei disci 45. Feompidi Ge system 45.1 I flesystem MS-DOS 45.2. I flesystem V7 di UNIX 453. File stem dei CD-ROM. 4.6 Stato dala ricerca sii filesystem 47 Rispilogo Capitolo 5 Input/output 5.1 Prindpi hardware dell YO Sul Dixpositivi di YO. 52 Ga 313 memoria 5.14 Direct memory acces (OMA) 5.1.5 Ancora sgl incerupe 52 Prin dl software dO 1 Obits eel safeware di YO 2 VO programmaco 5 5.2.3 WO guidato daglt interrupt 52.4 0 conDMA 5.3. Livell dl sofiware di VO 53.1 cori deg incerrupe 53.2 Driver di dapo 5.3.3. Software por 0 indipendente dal disposiivo Sofiwate di ZO nelle spazio wenwe Hardware dei dich Formattaionede dschi Algoritmo scheduling del bracio del disso Gestnde degli nord Memari sable ardwate de clock Sofewate da clack Soft timer 5.6. Imerhece utente tstiors, mouse e monitor one del rsparmio energetico sat haere 582 Pr sl sistema operative 583 Question lative ai program spliaiv 5.9 Stato della ricereasull’nputfoutpar 5.10 Ricpilogo 276 8 233 283 27 204 24 27 27 27 300 303 306 10, 310 au 313 3s Bit Bia 316 319 325 326 326 333, 336 339 3a a5 35 MG 350. 351 355, ant 37 373, 375, 380 38 383 x sommanio Capitolo 6 Deadlock 6.1 Risowse GL Risose preemptalee ronpreempuble 6.1.2 Acqusiione all rione 62. Inttodwione ai deadlock G21 Condizion pe deadlock dele srse 62.2 Modelaine del deadlock 63. Algoritmo ddl struz0 G4. Rilevamencoe rsoluzione dei decdlock G41 Rilevamenio del deadlock on una dsorsa pe ese 642 Rulevamerne dei dalek on pisos per csc 64.3 Resolutions di un deadlock 65, Evitatei deadlock Trlettore delle disor Sea sicurie non sow Aigortmn del hanchiee por una rises singola 654 Alportmo de banchir pr mokeplicrione 66 Prevenie i deadlock 66.1 Aeaccoalls consione dinmatusexlesione 66.2. Auaccoall condzionedipossese cartesn 66.3 Ataccoall condiione ditmposiala di pcasione G64 Acaceoall condone diatesacicolre 67 Utesiosi questo 67.1 Lacking de fai 672 Deadlock dll comunicaioni 67.3 Livelock 674 Sarvation 6.8 Stato dale ricerca sui deadlock 69 Riepilogo Capitolo ¢7 Virtualizzazione e cloud (onlinc) 21 Soo 7.2 Requisiti della vrwal 73. Hypervisor 7A. ‘Tecniche efficient di virualizatione Tél Vitwalieare cidche non i pud vinualzare 742 Cosi dell viwalizatione 7.5. Hypervisor o microkernel? 7.6 Virtualizzazione d 727. Virtualizazzione dell VO 78 Virwal appliance 79 Macchine vizwali su CPU maltiore 7.10 Problemi di licenze 7.11 Cloud TAA Cloud come servizio 7.11.2 Migrazione delle macchine virtua 7AL3 Checkpoint, 385 386 387 389 389 390 592 293 393 595 398 399 399 400 402 403 404 405 405 506 406 407 407 408 409 an an 412 Sommario xi 7.12. Covo di studio: VMware ZA2.1 Gl init di VMware 7.12.2 VMware Warkstation 7.12.3 Problem di vee 712A VMware Workstation: le solo 7.125. Evoluzionedi VMware Werkstat 7.126. ESX Server. hypeevsordi po 1 di VMware 7.13 Ricerche sulla viewualizzarione c sal cloud Capitolo 8 Sistemi a piti processori (online) 8.1 Muliprocesor al 8.2 Mulicomputee 8.2.1 Hardware dei multicomputer 8.2.2 Software di comunicazione di base livelle 823 icazione 4 lvello utente 824 procedura remota 8.2.5 Memoria condivisa dstribuita 826 827 8.3. Sistemi disibu 83.1 Hardware di ret 83.2 Provo 83.3 Middleware baste sui document 83.4 Middleware busaco sul filesystem 83.5 Middlewase basco 1 83.6 Middleware busato sulla coordinarione 84 Sta della ricerca sui sistem a pit processor 8.5. Rispilogo Capitolo e9 Sicurezza (online) 9.1 Ambiente della sicurezza 9.11 Minacce 9112 Aggreser 9.2 Sicurema dei sistem’ operavi 921 E posible reatzaresinern sui? 9122 Trusted computing tase 9.3 Comollo delaccsso alle sorse 331” Damn prtezone 9132 Lind comrade scot 93.3 Capabiliy 9A Mandell formal cl siscern cust SHI Seweea enalvelo sii Sommario 942. Canal impli 9.5. Bri dell aivograia 95.1 Caloris eave eet 955.2 Giga chiove pdbea 9153 Fumsionasemo unk 9.84 Rime digi 91555 ‘Towed plxfoum module 9.6 Avteaticavione 916.1 Scucra dle password dIUNIX 9462 Anteniaionetamiteun ogeto fin 16.3. Astentiarione biometca 9.7. Sfruware gi eror software 3.74 Ataechi di ipo “ble ovetow 972 Wid ipo Tormac sing” 9.7.3 Dangling pointer 97:4 Avtach dt dereFeresizione Ul un 975 auch’ diigo incger oreetlow” 9°76 Arts diigo orand injection 979 —_ewchi ime of check oxime of ee” 98 Anacchi dalfintcen0 9A Bombelogiche 982 fiekdoor 98.3 Sporting del login 9.9 Malware 99.1 Cavalli Tria 992 Vinw 993 Worm 994 Spyware 99:5 Rootkit 9.10 Difese 9.0.1 Firewall 9102 Antivirus eect 9.103 Fema delcodice 9104 fils 9.105 Rileramento delle inersioni bast saan modello 911046 Incapatamente de caice mebile 91107 Securezea in va 9.11 Stato della ricerca sulla sicurera 9112 Riepilogo Capitolo 10 Caso di studio 1: UNIX, Linux e Android 10.1 Storia di UNIX e Li 10.1 UNICS 1on2 UNIXsu PDP-It 10.1.3 UNIX poraile 10.14 Berkeley UNIX 1015 UNIXetandord a soa ia Or 03 05 45 10.1.6 MINIX wort 10.2 Panoramiea di Linux 102.1 Obiecivi di Linue 10.2.2 Imverfcce di Linux 1023 Lashell Linux ‘Concett fondamentalt 10.3.2 Caiamave di sistema pet la gestione del proces in Linux 103.3 lmplemenuzione di proces e teal 1034 Scheduling’ 103.5 Pocessod vio di Linux 104 Gestione della memoria in Linux HOA. Concet fondamencal 10.4.2 Chiamate di sitema per la getione dalla metnoria in Linwx 10.4.3 Implementiione della gesione della memo in Linux 10.4.6 Piginazione in Linus 10.5 Inpurfourpuc in Linux 105.1 Concet fondamentali 105.2 Neworking 105.3 Chiamate di sistema per Tinputfourpur in Linux 105.4 Implementazione delinpucfoutpuc in Liou. 105.5 Modaliin Linux 10.6 Fi 106. 10.6.2. Chiamare del ilesysem in Linus 10.6.3 mplementazione del ik system dé Linx 10.6.4 NES: nerwork filesystem 10.7 Sicurezma in Linux 107.1 Concert fondsmenealk 10:7-2° Chinmate di seta per lasioineett in Line 10.7.3 Implementarione della scuterza i Linx 108 Android 108.1 Aralroid e Google 108.2 Storiadi Android 10.8.3 Obicuivi dala pregenavione 1088 ura di Android 108.5 Estemioni Linwx 108.5 Dalvie 108.7 Binder IPC 10.8.8 Applicazion! Andioid 10.89 men 108.10 Sandbox delle applicaron HORT Sewera 108.12 Madella ci process 10.9 Ricpilogo Sommer rd a7 09 40 a1 B2 BS “7 89 w au 4 41 456 458 459 461 463 469 an a2 43 45 476 479 480 480 485 498 46 soz 502 sod 505 510 512 514 3 31s 37 538 539 540 546 ssi iv Somme Capitolo ¢11Caso di studio 2: Windows 8 (online) TLL Storia di Windows fino a Windows 8.1 HLL Gi anni Oxanta: MS-DOS 11:12. Gianni Novant: Windows kassto 1 MS-DOS, 113 Gi anni Daemile Windows basto su NT 11.2. Progeammarione di Windows 11.2.1 Lintericcia di programmarione applicazion asiva di NT 1122 Limerfsccia di progemecione applictioni nasiva Win32 1112.3 rast di sikema di Windows 11.3 Sunutura del sistema 113.1" Stata del tema opeeaive 1132 Ano di Window 1133 taionc dl gered cpg 34 Sottsivemi, DLL eserviiin modalio ume 11.4. Procesietheead in Windows 1.41 Conctt fondamenta i Haz Chamate API parla gexioed ol, pce teal ibe 1143. Ipkncouazine i proces edited 11.5. Gestione della memoria 151 Conceti fondamenal 11532 Ghiamated sstoma pr lagestione della memoria 11553 Implementarine dla gesione del memoria 11.6 Uso dell cache in Windows 11.7 _Inpudoatputin Windows UZ Gonceti fondamental 117.2. ADL dh inpuoupur 11.733 Iplemenazione daVO 118 Iilesystem NT di Windows H1S.L Conceeé fondamenal 82 Implementrtone dl le ystem NT 11.9 Gestione energetea di Windows L110. Siewseza in Windows 8 1.10.1 Conca fordamenta 1510.2 Chinmaae APL pe la seererza 110.3 plemenaione dll seurean TOA. Ridusione de ahi di seurera iepiloge Capitolo ¢12 Progettazione di un sistema operative (online) 12.1 Nature del problema della progetarione Wl Obisivt 12.12 Peche® difite progetre un sister opertivoz 12.2 Brogeteazione delle incertacce 1 Princip ui 1222 radi 1223 Sommorio 39 rfaccia delle hiamate di stoma 12.3 Implementazione 123.1 1232 1233 1234 1235 123.0 1237 1238 1239 ‘Strutt de sstemi meceanismo rspeto alla pic Orcogonalih| all Gestione dei nomi Binding time Struture statiche rispeto a strucaredinamiche mention eap-coon ehottom-ap Teeniche ui 12.4 Prestazioni 12.5 Gestione. 1240 1242 1243, 1244 1245 12455 1247 125.1 1252 1253 Parchéisigemi opertni sone lene? Che cosa dovrebe sete ot (Compremest spetio-enmpe, proget The Miyhicl Man Month Sieur dl ean Rol delfespericza 2.5.4 No Silver Bulle 12.6 Tendeme nella progetazione dei sistemi operativi 126.1 Viwalizasione cloud 1262 1263 1264 Accowo at dat senaa tolurdone diconeinush 1265. Computer a baterie 126.8 Siem embedded 12,7 Riepilogo Bibliografia (online) Indice 559 Prefazione all’edizione italiana ee Faucore principale, con rachael pg cate nek anni, meme a fruco in questo esto tutes 1s sua lunga esperienza nella serictura di ibs « nelfinsegnamento, spiegando in modo molto chinto la creseente complesitd dei moder stemi opera. I Tibeo & frutte di notevoli competeme, exsendo stato sertta da antori che lace @ un testo axle non solo competenze possone ‘ati ccempi di stem operaivi (Windows, Linux « li progettszione di un sixema operative modern. Gl Android, Android) e nel Capito 12 si pein autori hanno inolreatino a competemse extene molto important pe a parte VMware ¢ Windows, nom limitandosi quindl ad yn solo cserczi di series Uibeo rile aleuni cambiamentdawwenat dal lima ediione, in partcolate Symbian & stato rimpiazzato da Android e i capizala su Windows & aggionn inchidendo la versione 8 del sistema operative. Pisin ger ‘apitol hanno subive tn aggiomamentoeliminando le pard dhe Faevana tferimento a teenologi ormal vent te bwoleteeinsctendo quelle emergent. Non sorpeende quindi che in mold pun i ibro mention’ le piattaforme mobil disponibilo ‘supporto, che srk sicu Come sempre accade per libri di materi scientiiche, abbiamo dovuto trovare un compromesio ragionevole nel decidere quali termini tradusre in italiano © qual lsciare in inglese perché ormai eneeat for parte del lingusggio comune anche degli student italiani, Ci auguriamo di aver ertenuto un risulato gradevole alla leteutae allo ste959 tempo acct rato ¢ fedele alloriginale. Prof. Brieno Critpe Dipartimento di Ingegneria c Scienze dell informazione Universth degli Studi di Trento Prof. Claudio E. Palace Dipartimento di Matematica Universied degli Saudi di Padova Prefazione 1a quarts edizione di questo porate numerose pivcole mod lc, mantenende le dimension del volume a ows Vista & stato eliminato, peiché Vi I suexewo che si asperava. Ach lo su Symbian & sao ei she Symbian non ite. H materiale riguardhnte Visa & stato sosttito da quello riguardante Windows 8, mentre Symbian & stato sestituito da Android. stato inolie aggiunto un capicolo completamente nuovo riguardante la vinualizzazione ¢ ‘lenco delle modifiche appertate, capitolo per capitolo. + 11Capitolo 1 & sito ampiamente modificto e aggiornato in diverse parti; ino, & sato aggiunto un paragrafo completamente nuovo riguardante i computer mo: bili, + UCapitolo 28 stato aggiomato. II materiale pitt obsoleto stato climinato ca & stato aggiunto del materiale nuovo. Per esempio, & sata aggiunta la primitive di sincronizazione fuvex e una sezione riguardante come evitare i lock con Realy: ‘bil. I capivolo viguardan segmentazione esu MULTICS, + Dal Capitelo 4 abbiamo eliminato i CD-Rom, che non seno pit molto comun ¢ li abbiamo sosituiti con soluzioni pit modeme (come le unih fash). Al para. trafo sul RAID abbiamo agsiunco il RAID Fvello 6. + I Capitoto 5 & sato pesantemente mi mina vecehi dispo- T ei CD-Rom, mentre sone stiteaggiunte nove teen logie come i touch serce + ILCapitolo 6 ha subito poche modifiche. | deadlock e9no un argomento che cam- bia poce e non ci sono nui sisulatiimporand + I Capitolo 7 & completemente nuove e trata degli importantisim ayomenti dalla virwalizzazione e del cloud. Come caso di studio 8 stato aggiunto wn para: grafo riguardance VMware. + Capitolo 8 & una versione aggiornata del precedente materiale riguardamte is: stem multiprocessore. Ci si conceneia maggiormente sui sistemi multicore © manycore, che sono diventat sempre pit important nel corso degli ultim sna Di recente, li coerenza della cache & divencata un problema sempre pit sentco & ‘ora se ne parla in questo capitol, + I Gapitolo 9 & stato pesamtenence rvisto € riorganizzato, mentre® siato aggiunro parecchio nuovo maceriale riguardancs Fexploit dei bug de codice, il malware le relative difese. Gli attacchi come il dereferenziamento dei puntatori null ei bufler ‘con maggiore approfondimento. Vengono inokre esaminaci con attenzione anche i meccanism’ di difesa come i canatini il bic NXe la casu lizzazione dello spazio degli indiizzi, nonché i modi in cui i pocenziali a ‘overflow sono eat + Capitola 10% suto anchiesw molificavo profondaments Il materiale riguanan- we UNIX e Linux ® stato aggiornato, ma Taggiunea pitt importante ® un lunge parogeafo riguardance i sstema operative Android, che oggi & diffaisinno su smariphone e tablet. + ICapitolo 11 della tera edizione riguandava Windows Vista. E stato sostinuito da ‘un capitolo riguardante Windows 8, in paticolare nella sua versione Windows 8. Tata lt ratazione riguardarte Windows @ stata quindi aggiomaia. #1 Capitola 12 2 tina versione riveduta e cortenta del Capitola 13 dalVtivione precedente. + Anchela bibliografia®siata aggiornata, con un elenen di letture consghate. Inoltre, @ stato aggicenato anche Felerco dei riferimenti, con 223 nuovi hwvori pubbiicai dopo Tuscita della terza edizione di questo libro. + noite, le parti riguardantéh ricerca, nel cons di tutto il fibro, sono state cute sivedute, per rispondere megio alle ultime ricerche sui sistemi oper Ringraziamenti Un certo numero di persone mi ha siuato nella stesura di questa nuova edirione. Ju prints, il Prof, Herbert Bos della Vrije Univenitet di Amsterdam & stavo aggiunto come coautor. E-un esperto di sicurezza, UNIX e in generale di sistemi, ed una risorsa preziosissima. Ha scritto la magaior parte del nuovo materiale, parte quelo riportato qui di seguito. II nostro editor, Tacy Dunkelberger, ha svolio un lavoro magistale, mettendo insieme tutto il ma- teriak e riuscendo a organizzarlo perfetamente ~ e a farlo consegnate in perfetto oratio. Inolre, siamo stati molto faci di ayere nuovantente con noi la nosiraeditor di produzione, Camille Temacose. Le sue nuimerose cempetenze ci hanno saat in diverse occasion’. Samo stati felicisim di averla di nuove con nei, dopo unlaseema di diversi anni, Carole Snyder ha svolto un fancasico lavoro di coordinamento delle diverse persone che hanno lavarato a questo bo. I materiale del Capitolo 7 rigusrdante VMware (Patagrafo 7.12) 2s Edouard Bugnion di EPFL a Losinna, in Svizera. Bd 8 stato ano dei fondatoridelPaienda ‘VMware © conosce questo materiale meglio di chiunque alto al mondo, Lo ringraziamo ‘Ada Gavriloska di Georgia Tech, unespera di Linus, ha tole 10 a par- tire dlls tera edizione del libro, anch’eso serio da lei matcrale st Android nel Capitolo 108 taro serito da Dianne Hackborn di Google, una delle pitt imporantisvilappacre’ del efaziono sieve ‘Andrcid. Android 8 il sem operacvo pit difio exgll earphone, pean atmo deveeo oki Dison per vee shia una mann Oval Cy onto linge «detaglino ni Fan di UNIX, Linex © Android poscneimparare moh Socio loggedolo, Fore vale pons sore cho eaplzle pit Lung e tecnlao di questo Hed sate scrip da doc donne: Nei abltane clianto eon lavoro it fc Noa d simo pes dimentcat di Windows, Deve Protere di Micromet ba vio Capitolo 11 da editone precedente. Oral epiteo pada epprofordinimene &i Windows 21, Dave bs una conosco appofondia di Windows et raficentmer langivirane re dove Mico a Geo meno fs see gia I fan di Windows po 2 da qt epioe, i ibe A rolo mighow grate al slate dal loro di mii quae caper. Vogl incon. ing poed bro atm iota Samo anche sti Freund ad overe cats persone che haan dete i manos suggeend nuovi problemi di fine capitlo, Fut quer elsono Trudy Levine, Shiv Mitr Krishna Stalingam e Ken Wong. Steve Armtrong ha realizar le dips Powerline per gi rete! che engono tn condi informatics cannes edocs questo Hho. ‘Normalmente, revisor e redattori non ricevono ringrisiamenti ma Bob Lente (sev sore) ¢ Joc Ruddick (redattore) hanno svolto un lavoro cecslso. In particolae, Joe riesee & trovate la differen fra wna virgola in corsivo e una in condo da venti metti, Ciononostant, ali autor si assumono la picna responssbilies di eventual errori presenti nel libro. Lettori she notassero qualche crrore pessono contattare uno di noi Taine, de Jue not leit, Barbara e Marvin sono stati meraviglioni, come sempre, gs no in un modo unico especial. Danicle Matilde sono le nuove presenze della nostra fami iia. Aron ¢ Nathan sono ragizzini fantastici © Olivia & un cesoro, E ovviamente, vorrei Fingraciare Suzanne per il suo amore « la sua pavienza, per non parla dei druitens dei serene del sineauppelap, nonché di wt gl alti prodoxt agicoli (AST), orci ingrariare Maricke, Duo «Jip. Maricke peril suo amore per aver sopporta 1 tutte ke nowt pasate in pid a layorate a libro, ¢ Duko ¢ Jip per essere stati capaci di strapparmi ogni tanco dal lavoro, facendomi vedere che ei sono cose pit important’ nella ‘Come Minecralt. (HB), Andrew S. Tanenbasm Herbere Bos Lantivia didatica edi apprendimenco del corso & proposta allintemo di un ambiente digi- tale per lo studio, che ha Pobiectivo di completare il libro offrendo risorse didatiche fruibi- Trin modo autonome o per asegnaziore del docente. cesibile per diciotio mest ~ tga ¢ monitora Vativid iduale di studio con r+ sorse multimedia: strumen- per Vautovalutazione e per pass ck concerti chiave, esetctazioni interactive sgruppi di studio e aule vir tual, animate da strumend per Papprendimentocollabo- rative (chat, forum, wiki, blow). Le risorse multimediali sono contrite per rispondere a un precio objetivo formativo ¢ sono organizzate sttorno alfindice del manual a All'interno della piatiaforma — “ipa bo le ne digital libro (eText), arricchita da funzionalita che permettono di personalizzar- ne fa lettara, evidenziare il test, insrie segnalibri ean~ notazior duals © ae dere note anche su tablet con eeseremoeeitat Vapp Pearson ¢Text Global. Tea eri inte ivi sono disponibili: + cingue capitoli aggiuntivi: Capitolo ¢7 ~ Virualizzazione ¢ cloud Gapitolo e8 — Sistemi a pit procesoxt Capitolo e9 ~ Sicurerza Capitolo el | ~ Casi di Studio 2: Winclows 8 itolo el — Progettazione di un sistema operativo rAppendice A in inglesc: Multimedia Operating System; a Bibliografia completa divisa in capitol Jn set di problemi di fine capitolo con le relative soluzionis tuna raccolta di esercizi dit varia tipologia ~ Lab exercises, Simulation exercises ~ dedicati ad ogni capitolo, Nelle Riorse docente sono disponibile slide in inglese dei singoli capitoli in formaco PowerFoint. Capitolo 1 Introduzione Un computer mederne & cesticuivo da i processor, dalla memoria cenerale, de dischi, sempanti, tastier, mouse, video, inceracve di sete e ale disposi. Si tata quindi di un sistema complesso. Se ogni progemmatore di applicazioni dovesse ‘essere in grado di comprendere nel dettaglio to di wet questi componen’ vertebhe scritta mai aleuna riga di codice. Ino, la gestione « impicgo octimale dellinsieme «di questi components rappresentano tin lavoro eecessivamente impegnativo, Per questo motivo i computer dispongono di uno strato di software chiamato sistema operativo, compito ¢ di fornite ai progrmmi utente un moddlo dal computer mighiore «pi hare i gstire tunel ics pen ie, Ques ‘La maggior parte dei lestori ha sicuramente avuto a che fare con un sistema operative come Windows, Linux, FreeBSD © Mac OS X, ma'apparcnza inganns. Il programma «ui gli utenti interagiseono, solamente chiamato shell quando & in modalicd esto « GUI ical user interface) quando wtiliza icone, non & in reals parts del sistsma operativo, sebbene lo utilizzi per compiere il proprio lavore, ‘Una panoramica generale dei component pi ipali di cui discuteremo in questo libro & presemtaca nella Figuen 1.1. Alla base ei sono i componenti hardware: chip, tchede, disci, taticra, video © oggetti fic sin Sopra Thardware € il sofware. maggior parte dei computer ha de modalics operative: kennel utc Il sisena ope v0 ilcomponente software di maggie importanza evienceseguite in modalita kernel (hiamata anche modal superviso). In questo modo ha acceso a eato Phardware epae Segue qualunque meruzione che la macchina sain grado di solgere Il vesto del sofivrare fics in modal ucente, disponibile solo un sowoinsieme di struzioni macchina. In panicolare i programs in modi wtentesono vitae quel istzioni che pregidicano i conwolo della macchinao gestiseono F/O (mpuouxput). Nel corso del libro rtorneremo ‘iperuramente sulle dfferenz fra modalia kernel ¢ moda utente. Vinterfacls utente, ‘hell © GUL, &il ivllo psi basso di software in modalta utente consente all utente di svviare ai programmi, come browser, programmmi per la letura della posta cettronica 0 Jeqori di file musicali, Anche questi programmi fanno un uso intensivo del sistem ope- imivo. 1 posiionamento del sistema operativo & mostrat nella Bigura I. 1. Gia sul’hardware Jn sero strettoe forisce la base per tuto Valeo sofia. 2 Captolo 1 Inroduzione ators Lenore Bowcor GIPOIA sicale oe" Sitwonica _( ee) Mosatarome Sisters operative Figura 1.1 Disposizione dei componeni dol sistema operative, Untimportante diferenaa fin i siteme operasiva © il normale software (modal font) che oe a an cts tom fete ua petcvae lator di poem eoronia Gt Hero di eogoene un slo od eevee uo nao ov prfeeen mon & liber ever tn ovo genore det invrrape del cock, che ® pact del sema operatho ¢ che € ponce tari menhoure da ponet Ui weit ca pa Soli ver Quest dfferenne earavn, clr meno evidonte met dre bedded sed inngutiche posione anche nen ace lk modal kernel) 9 nel sens iverpreta (ome iniece operead Ua Jane che Gano tn mrpreres non llasivare per apical component Incl in moti semi ci see programm che vergono equi in modi sion me he sta i skin oc 9 he eur fon prea De Gomme: | iegieme che’ d tin un propane che courte aff ioe Ji cantall Ir propia password ie programmanton § pars de stern cpertivoe non gin moda Fl nel, ma soe charamenc ua anetone delicate dew exereproreno in un mad species In lean’ Seem! quoi enremizam ¢ peci di ab che wudiiondnencll corsideratosinema operative (come per rcmpio if ata) vengono esgu mele ae tio utes, In que sac ¢ dif nelre un confine ben dfiina Tuso G2 che viene txeguito in mais ermel &chiranente parte del sinema operatvo, ma anche sen Fetzer che vengono cxguid nonin modilia kernel nc swe fore parce Guano El Dre artanciscomiai sce: Trees pees ilfaecono di programvai wrens Gules dll apsiconatl in molt ale] mdi, sue che per tlre sede: In parcours cx sono mole gr comple edilunga via ILcodecsoxgoe dium sincma operative come Linux o Wind EaaPondins dt “h coli, er fee aide di che com sgl penste di namparecingue milion a sighed odie allimerno dun Horo, con 0 igh ne wohumi di 1000 pagine (ata le dimension di questo br). Per scrivere a operas dl eonchbere almeno 100 vohimi~ setanzalmen tcc brea: Immaginave diese ssune per far manurcrions dla ston ol tative che votre cap il primo giorno lvoro vi por davai a una ibe com Colic cvi die: “Impara uo quate’, E equente cosicché {questo tempo sprecato non &significtivo. Con l'hborarione di dati commercial i tempo AF aucss daPWO pud essere dll 80 al 90 percento del tempo totale, sieché quakosa deve ‘verela (ccstesa) CPU inativa cos a hungo cere Fato per evitare 12 Stora dei stems operat 11 La selinione penta fe cai pe aisqgnando un divesa er iciona Gat msceats alls Figua (3) esti ie eros nts in anesa del campletamenta dell 10, a sto poteva usaf della CPU, Se paevane twrre tent in memoria aUbasanzalavosconvemperaneamenre, fi CPU suche saa tconca occupats quis al 100 percente dl temper Avere molepic avril sro in feomoiisFchicle tn hanlodts priate per prompgnr ogy ver tulle inceforeran shirsy no 3360 w:g set csmertci tara gierstioie eave eeaipaggiat om qnea hardware i ages lvoe cede cl dics appara onreno pot in ols mache, Co, appenstermunare wn boo in escxntone, dco fos naka par erative poteva caicarne uno n0¥8 ‘ora vuota ed exoguitla, Queuta tecnica & chiamata spoaling (a simuleancous peripheral operation on line - operuzione periferica simultanca in linea) caanche in output, Con lo spooling, i 1401 non farone pitt necestarie il trasporto lc sre pers A cai op at Ga yo eT i imporens diborctoal & dod cummercal, sl ero snes fovdumanelinos tite batch. Moki progamna poverano fore da machina in mod elas per acne ae cst fa come loro Popanni ocean ‘Con sewn di cea gesrone, Fecal fansite ela de lvoe ISceion lf toe cm pteredprorhie eee antec gla unos ag iron Eli compas e cial pogustnaire und peli um mens fort &lavera Lesigenza di un compo mpidto di nnd Is stada al imesharing, wna va {ells muliprogrammazione, in oui ogni utente dispone di un cerminale attivo. Iinun sistema, inncsharing 4 vi sono 20 ucenti college 17 di loro stanno pensando o patlande o bevendo caf la CPU pud essere asegnata ai ere lavori che la rchiedono, Poiché le persone che ‘gone il debug dei programm! gencralmentseseguono comand brevi (por esempio com- pile una procedura' di cingue pagine) piuttosto che lunghi (per esempio ordinate recon!),il computer pd lomire un servizio velocee interativo a numero uch in background, quando la Cl popolace finché "hardware di prosezione necessario non si diffuse durance la terea sgenerazione, Dopo il succesio del sistema CTSS, MALT, Bell Labs ¢ General Blectrie (ano dei principal prodateori di computer) decisero di imbarcarsinello aviluppo di una computer ‘wility, wa macchina che potesse supportare centins inwodello cra il sistema clererico — quando si ha bisogno di cletricitd, semplicemence si preat nel muro econ qucito semplice gosto si ottiene tanta encrgia quanta se Wt qui fb wei Rivero 12 Gopitelo | Inodazione ee mee PSS) ein weet Paamoca cnet figerat.5. Un sistema di snuhiprogammacione eon tr jb in memoria. ne necesita. I progettit di questo sista, conosciuto come MULTICS (MULI information and computing servic - servizi informativo e di caleolo MULTiplexed), avevang la visione di una macchina cnome in grado di foraite porere di caeolo a wate, Tare di Beaton, Lides che macchine 10.000 vole pit veloc dl oro mainframe CE-645 sarcbbeto state venduts (© por meno di L000 della) in milion di pezzi solo 40 a tu pura fantascicnsa, Qualcoua di simile allatale idea di un sottomarine supersonico tcansatlantico u rota. TT MULTICS fu un succeso colo partial Fu progetaco por supportn di tend 9u di uno macchina appena pit porene di un PC bance su cecnotogin Intel 586, sctbene con mola pit capaci di /O. Tao eid nom & folle come sembra poict allocas sapevano serivere progsammpiccali cd ffizien, doteche Bandata pera nel tempo, Leragiont per cui il MULTICS nonsfondd nel mondo sore molt, non ultimo peri at che cia scxito in PLL: il compilitore PLIT era ateso danni quando finalmente aur finzionavaa malapcna. tI MULTICS ingle er estremamente ambizioso peri suo tempi molto pit di quanto lo fose il motere analiio di Chasles Babluage peril XIX seco, In breve MUETICS intrediase molt iee fondamental nella leteratara dei com puter, ma tramucre in-un prodott serio in un succes commerciale di wast scala fi nolo pia difficile di quanto cist apectasse. I Bel Labs abbondonateno il progesto e General Elect abbanddond il mereao dei computer. IIMAL.T., catia, perssetee ifine ruse a far funzionarell MULTICS, Ala fincfu venduto come un prodotw commerciale dall'riends mputer di Gencral lecteic (Honeywell) e instalaco da iret 80 univers in uo 1 mondo, Anche sei loro numero era bas, gh went General Motors, Bord ¢ [Agentia di Sicutezza 5. penscra | loro MULTICS aoe alla Fine degli anni rastto lascato e dopo ann di tencatvi di aggion ond degh Sat Uni per cmp "So, ental dopo che MULTICS name dl haae co Honey ‘All fine del OX secols i eoneto diana “computer ily” es rienuto insddfe powebbe torial bala ono forme dicloud comping, incl una ode Computer flamer plcol (inca anche smaraphone, abl sim) sono connesia dt mrver che id sons pot a grande doanan che guano tal ioe dchbrioe, nonsense gous anne Fei thate, La muthacbncin eno ci potelbecucre che a magior pane del stot na opis amminstrre un stead camplosih spre aggre refeica che oD a Ainun team di prosionisd che laorine perf sock che ene dara comer com 1.2 Storia dei sstemioperaivi 13 io eletionicos sta git evolvendo in questa direzione, con molte societh che gestiscono i clettronici su server multiprocessore a cui semplici mace ndosi molto allescnza della progettzione del MULTICS ‘Nonostance lt sua mancanza di succssso commercial, il MULTICS ha avato una grossa influciva sui sstemi operatvisuccesvi, desert in mole pubblicazioni ein wn libro (Corbuté cal, 1972; Corbats ¢ Vssotsky, 1965; Daley eTennis, 1968; Organick, 1972; Sales, 1974). Ha incre avuto (€ eutora posscde) un sto web, al indivizzo ween twokissime informazion’ sl sistema, sui stoi proggttin Un'alta tappa fondamencale della terza gencrazione & rappresentata dalla cresi fenomenale dei minicomputer, a partite dal DEC PDP-1 nel 1961. II PDP-1 aveva solo ‘4K di parole a 18-bic, ma si enwdewe come caramnelle a 120.000 dollatia macehina (meno del 5% di un 7094). Per aleuni tipi di daborazioni non numeriche era veloce quasi come ‘un 7094 e dette Favvio a uniinters nuova industria, Fu rapidamente seguito da una serie nuovi PDP (diversamente dalla famiglia IBM, cuttiincompatibili) che culminarono net Pt ‘Uno degli seienziati dei Bell Labs che aveva lavorato sul progetto MULTICS, Thompson, suceessivamente tHovd un piccolo minicomputer PDP-7 che nessuno uti- lizzavae si mise ascrivere una versione ndotta, monoutente del MULTICS, Questo lavoro sisvluppd in seguito nel sistema operative UNIX®, che divenpe popolare nel mondo acra- dlemico, in moke agenzie governatve e in molte aziende. La storia di UNIX & stata narrata in aki testi (per esempio Salus, 1994). Pare di ‘questa storia sar riportata nel Capitolo 10. Per ora basti dite che, poiché i eodice sorgente «a ampiamente disponibile, molte organizzazionisvlupparono le loro personali (¢ ineom- patil) versioni il che portd al eaos. Le due principal versioni sviluppate, System V di ATS’T ¢ BSD (Berkeley software distribution) dl Universita dela California a Berkeley. Anche queste a loro volta presentarono delle vatianti minor. Per far si che Fosse possibile Scrivere programmi che giassero sa ogni sistema UNIX, IEEE sviluppo uno standard per UNIX, chiamavo POSIX, attuaimente supportato da malte versioni di UNIX. POSIX de- finice unjinverfaccia minima per le chiamate di sistema che isistemi UNIX conform deb- bono supportar. Infatt, alti sistem operativi supportano ora interfavcia POSIX. Per incso, vale la pena ricordawe che nel. 1987 [Autore rilasc un piccolo clone di UNIX, chiamato MINIX, a scopi ddattici. Dal punto di vista funzionale. MINIX® molto simile» UNIX ione originale si evoluca in ti sso ha la capacith di dispesitivo di HO} non nva un riavvio e senza distarhare i progeamnmi ans. org, contenente inclividuate e sostituite “sl volo” moduli (come i driver di funaionanti a addiriteura andadi in crash in eweuziane. E anche disponibile un libro che des le sue operazioni interne e presenta in appendice il litato del eodice sorgente (Tanenbaum ¢ Woedbull, 2006). I sistema MINIX 32 disponibile gratuitamente (incluso il eodive songente) su Internet all indirizxo owes minivd.org I desiderio di‘ una versione lib ‘eondusie uno studenre finkinde sli MINIX (per esempio i filesystem di MIND). E: stato poi svilupputo in molt modi, ma ‘ttora mane con una structura sotestance comune a MINIX © UNIX. I lewor interest 16 Capitolo 1 Introduzione alla sori dettagliata di Linux eal movinento open souveapprezzeranne illibeo di Glyn Moody (2001). Moke delle ffermazioni conesnute in questo bro riguardo a UNIX si applicano a System V, MINIX, Linux e anche ad deze version cloni dil UNIX. 1.2.4 Quarta generazione (dal 1980 a oggi): i personal computer Con lo sviluppo dei circuit LSI (large seale integration ~ integrazione su larga scala) a eooeu ‘mento | [ation | [sone ‘un | oni oi carea t=] doco-| mento | [-sitca @ 16) Una pipeline aie fast dy Una CPU suporscalare, 13 Anal dlVhardware 21 ‘tap wa pe Tne arene, a per atic a ga eta pe operavioni booleane. Sono prese duc o pit istruzioni per volta, decodificatee carieae in tun buffer che le trattiene sino alla loro esecucione Appena & disponibile un'unité di esecuzione, questa guard nel buffer per vederese 8 ‘una istrusione che posst gesir: se &cosi la rimuove dal buffer la esegus, Vimpliczione «i questa progettarione& che spesso Ie isieuzioni dei programmi sono eseguie senza ordi Nella maggior parte dei casi starebbe al! hardware garantire che il iultaro ottenuto sia il rmedesimo che si sarebbe raggiunto con una esecuzione sequenviale, ma, come vedremo, viene imposta a sistema operativo una fistdiosa quantita di complessia. udlemolto semplic site nei sistemi integra ("embedded"), Fhanno due modal keme! e uteace, come deto in precedenzs. Abitualmente, un bit nel PSW ire ogniistruzione del suo insieme machine deshtop e server il na operativo gia in modalich kemel co hardware, Nella maggior arte dei sistemi integra solo una piecola parte &esepuita in modics kernel, mente il resto el sistema operativo & in modal utente 1 programmi utente girano in modalih ute sotoinsieme di istrurioni, con Taccesso solo 2 un sottit ‘tee istruzioni riguardanti P1/O ela prow cente, Nauuralmence ¢anche proibit hernel Ter ottenere servizi dal sitema operativo, un programma utente deve fre una chiamata ai sistema aystem call), che entra el em rihiams il stema opera, Ui he consemic che sia eseguito solo un dj carateristiche. Di solito, carbiare il bit del WW’ da modalish utente Sato completo il contollo & reatute al pro che segue la chiamata di sistema. Spieghctemo il dettaglio del meccanismo della chizmata di sistema pprocedura che ha la propriet particolae di passare da modalcs dafirh kemel, Come carattere tipografico, per indicate chiamae di sicema allintcrno del testo usctemo il Courier minuscolo, per eiempio: read, Vale la pena notare che computer impiegano altri mo rap per eseguire una chiamata di sistema, La maggior parte degli alt rap & cansita dcallhardwace che awisa che sit veri situazione eccerionale virgola mobi ‘openitivo prende if conirolloe decid fare. Tales il pro- deve essere terminato con un ettore. Alte volte Ferrore pid esere ignorato (an in virgola mobile non significative pud essere considerato 0). Alla fine, qu il programma ha indicato in anticipo che cosa voglia fare in determinate condi coniallo pud essere restituito al programma per conscetirgli di affrontare il problema. Chip multithread e multicore La legge dé Moore alfotma che il numero di tansistor su di un chip si aldoppia ogni 18 mesi. Questa “legge” non ® un qualcosa di fisico, ma unlosservazione di uno dei fondatori sii Inte, Gordon Moos ‘8 quanto rapidamente gli ingegneti delle ariende pro lucie di semicondute in gra di comprimere ilove iransistor La legge di Moore si ® mancenata vertiers per ereaanni, fino « questo momento, ed & prevedibile che sued 2 Capitolo 1 Introduzione 1a per almeno altri 0 di atomi per transistor diventor troppo cxiguo ¢ ls meccaniea quantitica inisier a rvestive un ruole molto importance, impedendo unvulteriore ridusione nel numero di transistor Labbondaniza di transisor cause un problems: che cosa farne? Abbiamo visto prima tun approceio possibile: Parchitettura superscalare, con unied furvionali multiple, Ma rrentando il numero di transistor ® possibile Far di pitt. Una cosa ovvia da fa ‘che pit grose sul chip della CPU e questo sa sicuramente aceadendlo, ma alla fi riggiunco il punce di rendimento decrescente Lowio passo successive & quelle di replicare non solo le unith funsionali ma anche pare della logica di controll, II Pentium 4 ¢ aleune alzee CPU hanno qussts propriety iamata multithreading o hyperthrading (il nome assegnatole da tc) In prima analis tid che avviene & consemtire alls CPU di tenere lo stato di due diversi thread e passare da wno. in un nanosecond, (Unchread Puna specie di piccolo procesio,il quale, a sua volta, & un programma in esccuioneslo vedreme in dettaglio nel Capitole 2) Ter esempios se ino dei procesi ha bisogao di leggere una parola dalla memoria (il che richiede mole ciel di clack) una CPU multthcead pud semplicemence passare a un altro thread. I mul thrcading non offre an parallelismo wale. Gira un solo processo per volta, ma il tempo di ssaimbio dei thread & rides ‘dei nanosecond lin apparel sicema operative come unaCPU separats. Considerate un i reali, ogouna con duc throu perativo le veded come quattro CPU. & abbastanza lavoro per teacre impegnate solo due CPU, il sistema operativo potr’ iniente schedlare duc thread sulla stessa CPU, con Valera CPU completamente ‘Questa celta & molto meno dFiciente di quella che utlzza un thread su ogni CPU. =PU con duc 0 i completio core st di loro, [chip multicore della Figura 1.8 feaivamente haane quattro minichip su di lore, ognuno con la sua CPU indipendence. (Le eache saranno spiegate pit avanti). Aleani provessori, come Intd Xeon Phi e sllo sesso chip; utilizzare un chip multicore di questo tipo richiede assolu threading ha delle imphcazioni per il sistema operativo perché ogni thesad ‘duc CPU ache a @ » Figura 1.0 (a) Un chip a quatt core ccn memoria cache di tipo L2 condvisa 16) Unchip a quatvo core can memorie cache di tipo 2 separate, 1.3 Amalis dellhardware 25 stema operative mulkiprocessore. Fra parentesi, per quanto rignarda i puri numeri, niente supera una moderna GPU (geaphies processing unit — us Una GPU & un processore contenente letteralmente miglsi i daborazione grafica). i microscopici core, Sono processor eecezionali per Pesecuzione panllela di piccoicalcoli come il rendering poligonale nelle applicasioni iff Inoltrs, sone mole ‘operativ (per es iche, ma non sono alerettanto performant nello svolgere compici serial «da progrummare. Mentre le GPU tornano utili peri siseemi io per la critografia@ I'clabonazione del tralfico di rte), non probabile che grosse parti d'un sistema operativo vengano eseguite su una GPU. 1.3.2. Memoria {i seconde componeate principale di ogai computer #la memoria. Meslmente w Fa dovrebhe escere estremamence veloce (pi veloce deleseewzione di una istrurione in ‘node da non bloceaze b CPU), molto a soddista questi tre obi ‘costruco come degl vi, cos siadotea un approce arti gerarchici, come mostrato nella Fi tha la veloc: maggiore, la minor eapacitd ¢ basso, spesso di un fittore di un miliardo 0 pi ve ea basso coxta, Nessana tsenologis arate diverse. Il sistema della memoria & ara 1.9. Il primo steatodall'ato ispeto allo strato pit Lo strate alla sommith consiste di registe is alto costo per intern alla CPU. Sono fatti dello seesso materiale della CPU e sono veloc come Io 8 la CPU. Di zone dispo Ax 64 gestive I secondo strato eon nseguenva aceeden eal loro cyst (ciot deci i non comporta alcun ricardo. La eapacith di memori no & solitamence di 32 x 32 bit in icin una CPU a 64 bit. In 2 CPU a 32 bit edi wrambi fai meno di U KB. I progr devon, ‘die cosa tenerviallinterno) da sli ene la mer " | memosia principale t suivsa in linee di eache,tpicamente da 64 byte, con indiizi dla (a 63 nella linea di cache 0, indisizai da 64 2 127 nel cach, parte concrollata dll hard: linea di cache 1 cost via. Le line di cache usate pai frequentemente sono tenute in una cache al alta velocita posizionata dentro © molto vicina alla CPU, Quando il programma ha bisogno di leggere una. parola circa due ci Le richiest alla cache che non possono essere sod ‘com una sostanzale penalizazions hardware della cache concoll se la linea richiesta & nella cache, Se cesudita dalla cache; nessuna richiesta di memoria principale. I cache hit impiegano normalmente te devono andarealla memo: tempo. La dimensione della memoria cache Temps acceso ico Capac pea tne Regt He 18 as cone J [pssoeigryvg 48 tons saa pepe 1809 tons ‘sco magrotco 118 Figura 1.9 Una tipica gerarchia di memoria. I numeti sono notevolmente approssimat 24 Capitolo 1 Introdazione 8 limita a causa dd suo alto costo, Alcune macchine hanno duc o penino tre live di cache, ognuno piti Lento e pis grandedi quello precedente Liutlizao della cache & di fondamentale importansa in moke aree delVinformatics, solo per que! che riguarda le lince di ache della RAM, Ovungue ei suadivisibile in pezzi, aleuni dei quali utilizzai pitt Frequentemente di sles, per mighorsre le prestazioni si ricorre speaso alla cache. I sistem operativi lof ‘molii sistem operativi tengono (pez i) file wat frequen al fine di evitare di recuperadli dal disco ripetucamen cconversione di hunghi percorsi di file come Mhomclestipreiecisinivthrlkernelock nellindirizzo del disco dove si trova il file pud esere messo in cache per evitare di ripetere Ia ricerca, Infine, quando Vindirizzo d. una pagina web (URL) viene convertito in an rizzo di rete (inditizzo [P) iL rsultaco pud esiere messo in cache per usi futur, Esistono. rmolii ales imp In ogni sistema di cache, sorgono albbastanza presto pavecchie don a una rsorsa grande 10 sempre. Per esempio principale, ato dela inde, fa ea quando mettre un nuove oggewo nella cache; in quale linea di cache metre il nuovo oggetto: ‘quale oggetto rimuovere dalla cache se ct bisogno di un posto: love meutore un oggetto tolto di recente in una memoria garde Non tutte le domande sono importanti ogni voka che viene usata una cache. Per le linee di cache di memoria principale nell cache dellt CPU, generalmente viene inserico un ‘nuovo clemento ogni volta che non viene trovato un valore nella cache. La linea di cache da sare viene generaimente caleolaca usando alcuni bit ali dellindirizzo di memoria deteemi- rato, Per esempio, con 40% linee di cache di 64 byte e inditzzi a 32 bit, ibit da 6a 17 poxrebbers essere usati per specifica linea di cache, con i bitda0 a 5 per clcolare il byte nella linea di cache. n quest caso eemento da rimuovere& Io steso in cui vanno mes rnyori dati, ma in alti sistem pourebte essere diveso, Inline, quando uns Finea di cache & riscrita nella memoria principale (se stata modificatada quando? sata mess nella cache) 1h positione nella memoria in eu riscrive question. La walidea delle cache &tale che e CPU moderne ne possiedono due. Il primo livello © cache LL & sempre interno dela CPU e fomisce di soto itruzioni codificate al rmotore di esecuzione della CPU. Moti chip dispongono di tina seconda cache LY per parole di dati usate frequentemente. Le exche LI sono tipicsmente di 16 KB ciascuna Inokirec’ una seconda cache, chiannta eache 12, cantenente molti megabyte di parole te, La dfferenza fra Ie cache L1 e quelle L2 sta nelle tempi sticke. Laceesso alla 1 avviene senzaritardi, mentee Paccesso alla L? comporta un rtardo dino 6 due ciel di clock & unicamente determinata dallinditizzo in di memoria usate rece compico dei progetinisbilie dove diporre le cache sui chip multicore. Nell Figura 1-(6) 2b una singla cache 1 condivie fra uti com, Quente approceo dunia tet chip Intd kicore Al contavioy nll Figurn 1.800) ogni cone hal un cache L2. Bi metodo di AMD. Ogni strategia ha i atoi pro ist Ia cache L2 con. contro, Dor esemp incegeth della ciche 12 sia p Nella gorarchia della Figura ial aeela. Bl guia principle ganerd mente #chinmem RAM (Gasdena access eamrery’— sentria ad'cccnees camalel Ai Yoechi emp om cinonea core aecxory,poiché | compuver negli nei '50 «60 unavane piceoli pes di feito ma tretizabll come memoria principale (cr). Atunente le memore vino da centr di Inogabyre sino « parechigigbytee crscono rapidement. Tae le richene della CPU che non possono caer sdf dalls cache vano alla memoria principale. equa di memes won volatile nen perde aud acceso caale non vl isuoi contenu una volta spent Vinterutore del PC. La ROM (read only memory — necrotic soa lara) prog Bit, E eloce ol economic. Iv acuni computer il progeanuna di carkamento allavio thatp per fut partie computer inte nella ROM. Anh sleune sched di 1/0 3 basa su una ROM per il concllo dei disposi di base lvllo ‘Anche le EEPROM (electrically erasable PROM ~ PROM cancllabile det mente) ¢ le memorie flash 5 Cancellite€ ierite, Sriverle chide tacevin uno che serie sulla RAM, per eal sono asate come le ROM, cal antag che & posible coneggere che contengono,racrivendote em nie comuncinente use conve support di memorizz rei dispostivideuronil poral ds disco ne letori musta por hanno una yelecie icra feu kt RAM edie, pe ccllate troppe volte, esauricono. Un alto tipo di memoria la CMOS, che & volatile, Moi ria CMOS per memorizare ora cla data corns, La memort Tologio che ne incrementa Tora sono alimentai da una picols bates, in modo che Tora tm epee coneterrene agionts, ance 2 compute salto dala rete densi. La ‘memoria CMOS pu anche mantener paranett di coafigurazions, come i iso da rgia che lla al origin sal computer pesos scarica dopo parccchi anni Con, quando a cau, computer sembra soie del morbo di Aizhcimer,dimenticando cose ‘it anni, come da quale herd eis esegire avo della machina. naca dal cost {ore © non pid essere cambiata in se re due loro utilizei. Le memorie Mssh 9 diversamente dal disco, se can= avviare la macchina. La CMOS & utilizata perché richiede talmente poca bacteria 3° Dischi Uclememto siecesivo nella gerarchia ¢il disco magnetico (hard disk). La memoria su disco di duc ordini di grandezza pitt economics della RAM e spesso di due ordini di ‘voluminoss. Lunico problema & che il empo daccesso casuale ai dati c 3 di eve ondini di grandczza pits lento, La Lentersa & dovuts al fatto che wn disco 8 ‘meccanics, come mestrato nella Un disco 2 formato da uno © ninato. Un braccio meccanico punta sui piati da un angolo, come il bcc e la pun: 1 di un yecchio gieadischi, Vinformazione viene seria sul disco in una serie di verchi 26 Capitolo 1 Introduzione ‘Testnad tra/srttua (1 pe supertice) Supetics 7 Siporich 8 Supeticio 4 — Supemice 9 Deane del movinerto dl oracle Supe 2 — Superici 1 Supeticis 0 — Figera 1.10 Stuttura di uo unit disco. conceatrici. A ogni dau posizione de braccio, ognuns delle es pu’ leggere ura egione anulate chi naca traceia. Insieme, cu le cracce di specifica posizione del braecio formane tun cilindro, Ogoi eracciadivisa in an certo numero di scttor, gencralmente 512 byte pee sewore i clindri exemi contengone pits sttori di quelli inc Moovere il braecio da un eilindro al suecessive richicde cites I'm, 2 seconds dell Mooverlo su un cilindso easuale i braccia & sulla acc corretta, Punta deve ater Ja testinal che comporta un ulterior ritardo dai 5 ‘minuto delfunitd. Quando i seworet sou fa testing kggeteo scrivere comport um rape pow di 50 MBs sui dischi lenti ed. 160 MB/s sui pitt veloc. “Molti computer supporano unoschema conosciuto col nome di memotia: Aiscutctemo pitt ampiamente nel Capitolo 3. Questo schema rende possbi sgn pit grandi delle memoria sia metendoli sul disco fiso e wsanc lam Cipale comeunna specie di cache por ke pati exeguite pits invensivamene. Queso se indrizi ci memoria ‘al volo” perconvetie Tindiizze che i programma, inditizzo fisico della RAM in cui & posiionat la parla. Questa mapparurt 1 parte della CPU chiamata MMU (memory management unit ~ unita Ai gestione della memoria), come mpstrato nella Figura 1.6. La presenza dela cache ¢ MMU possono avere un impatto fortemente postivo sulle pre- stazioni. Inn sistema mulkiprogrammazione, in cui si passa da un programma a un altro, talvolta chiamato cambio di conteste (context switch), potrebbe rendersi necessitio sca: ‘are ttt blocchi modifica dalla cache e cambiare i registri mappatidélla MMU. Entrambe sono operazioni costose ¢ che i programmatori cercano di evitae a ogni costo, Vedremo prossimamente alcune delle implicazioni delle loro straegi ie Jhede da $ 2 10 ms, a seconds dellanie’, Una vole che re che il sere seezionato roti sou 10 ms, a seconds dl numero di gril tale, che seguir 1.3.4 Dispositivi di VO I satema opemitivo non ha sole CPU © mcmora da gestive. Anche diapositiv di 10 in: tergiscono frequentemente con il siaema operstivo. Come visto nella Figura 1.6, i digpo- 1.3 Analisi delhardware 27 sixvi di JO generalmente sono costitaiti da due parti un controller e il dispositive sess. I controller & un chip 0 un insieme di chip che fsicamente conttela il dispositive. Accecta comandi dal sistema operativo, per esempio per leggere dae dal disposiive e trasportari jn moki casi, il controll eflettivo del dispositivo & molto complicato ¢ devagliaco, compito del coniroller preseneare uainterfaccia pits semplice al stems operative (wecavia moleo complessa). Pensiamo a un controller del disco che potrebbe accettare un commande per Ieggere il sextore 11.206 dal disco 2. I controller dovrebbe poi convertire n sctiore linea in un cilindro, un scttore © una tetina ‘Tale conver fatto che i ciindsi esterni abbiano pits sctori di quell, ati siano stati imappati verso ale. Hl controller deve inate su quale clindo il braccio del disco & posizionaco e dargl la sequenza di impalsi per muoversi alinterno o aesterno del numeto di cilindr ridhiesto, Deve at ere finche il settore corretto abbia girao sotto la testa e poi iniziae a leggere € Fizzare i bi con come escono dal dispo wovere Fintestazione e ealcoare ile tiollo numerico, All fine deve assomblee i bitin parole esalvarte in memo piete tueto questo lavoro, i controller spesso contengono dei piccoli compu Progeammat a tale copo, Lala pare & eostituita dal dispositive stesso. I dspesitivi hanno interfceabbastanza semplic, sia perché non hanno molti compiti da swalger, sia per far sche sana stand. Quest ultimo asparco &necessrio in modo che, per esempio, tin contrelle: del disco SATA su in grado di gestire ogni disco SATA. SATA’ sia per Serial ATA mentre ATA sta per AT attachment, Sc voleste sapere per che cosa sta la sigla AT, & presto det si trattva della seconch gencrazione di “personal computer advanced technology” di IBM, costrutiincomo, alloca potentissimo processore 80286 a 6 MHz, introdotto dalfazienda nel 1984, ygere nuove leterea sige gid uso di parole come “advanced!” (avanzaro) & a volte un po! esigetato, SATA’€ arcualmente il tipo di disco standard su molt computer. Dato che la reale intciacia dl dispositivo & nascostadieto al eonteolle,cutto quello che il sistema operative sede &Vincrfaccia del controller, che pud esere abbsstanza differente dallintrfacia del slsposiivo, Poiché ogni tipo di controller® diverse, €2 bisogno di un software diverso per conttol- Larne ciascuno. Il sofware che comunica con un controler, impartendogli i comand e ac- and le risposte. ¢chiamto driver del dispositive (device drives). Oni produttore di conueoler deve fornite un diver po erativo che supporta. Cosieché uno scanner potrebbe presentarsi con driver per OS X. Windows 7, Windows 8 e Linu, per Per esere usta, il driver deve esere inserito nel sistema operative, cosi pud girare in ‘nodal kernel. I feu i driver postone anche grate al di fori del kernel. ma solo pochi Sistemi, come MINIX 3, supportano questa possibiliti, poiché rchiede Ia capacith di pee- allo spario utente di un diver di accedere al dispastivo in modo contollio, una coraeristicararamente supporata Gi somo tre od incu un driver pd escre messo nel kernel. I primo & di sicollegare ii kernst col nuovo driner¢ poi riawiaelo, Mol vecchi sistem UNIX funzionano eos I tocondo 2 di cteare una voce in an file del sistema operativo indieando che necessta del diver © poi riavviare ata d ravi che aleuai setwori danne ever Percom- integratt sistema, Al momento dellavvio, il stems operativo parte © wova i 28 Capitol 1 Introdezione 11 bisogno ¢ Ii carica. Windows lavora in questo modo Il terz0 metedo con: 1d fare in modo che i sistema operativo aecetti nuovi driver mente # in exeeazione © li in corsa senza necessith di ravvio, Questa modaltd era rara, ma 0 cescre mito pi frequente, Dispostiri vollegabili s caldo, come dispositivi USB « IEEE 1394 (discuss in seyuito) hanno scanpre bixogno di driver eariaci dinamicamente. ‘Ogni controller ha un piccolo namero di registeiusato per comunicare. Per esempio, tun conttller di disco miaimo pouebbe avere regi per specifcare indiriezo del disco, indivizwo di memoria, comeggio del swore e ditecione (lewura o serietura). Per ativare i controler, driver prem un ma operativo, quindi To taduce nei val appropriad’ da seivere nei ragiati de dispositive. La raccolta di wut i regitt d forma lo spazto di una porta di 1/0, un soggew su cui vornexcio nel Capitol 5. ‘su alcuni computer i regis dell pati ello spario degli indirizei del sistema operaivo (gh indiiciche put uilizzae)cesieché pessone essere ltt e seri come normal parole di memoria. Su questo ipo di n sono rihiest special istrurion 4: VO ei programm utente possono essere enuti alla larg dalfhareware non mewerto ‘quest inciizzi di memoria alla loro yorata (per esempio usando resist’ base € reper li mit). {n alti computer ie j sono collocatinello spazio di una porta di WO speciale, con ogni egistio con un indirizzo di porta. Su queste nadalica kernel sono disponibili sp serivere i registi. Il primo schema elim luna partedelo spazio degli india. secondo non usa lo spazio deg inci iscrurioni special. Enteambi sono moto usa nue Foutpa possono essere gest in te modi diversi. Col metodo pit semplice, tun programma utente invia una chiamata di sistema, che poi il Kernel rad a Cchiamata di procedura al driver appropria. Il driver poi avvia I'VO « i sofler Ciclo rapido € continuo incerrogando di continuo il dispositive per controllate se eutto stato exegito (di salto vi sono alcuni bic che indicano se il dispositivo & ancora occupato). Completato IO, il driver mette i dai (se ve ne sono) dove sono necessai¢ ritoma. Il tema operative resttusce poi i conwollo al chiamance, Questo metodo & chiamato busy ‘iting c halo svantaggio di impegnace a CPU nelfinterrogazion: continua del dispesitivo fincné F/O non sia werminato. ‘Col secondo metodo & il driver che avvia il dispositvo e gli richiede un interrupt quando termina, A gud punto i driver citorna. I sistema operadvo blocca il chiamante se deve e vetfica se ci stano alti bvori in sospeso. Quando il controller rieva la fine del ra- sfetimento, gevera un interrupt (interuzione) che seypala il completamente. Gli inierrupe sono veramente importanti nei sistemi operativi, quindi & il caso saminarl pit approfonditamente, Nella Figura 1.11(a) vediamo un processo di WO tte passi. Nel passo | il driver indica al controller che cosa fare scrivendo nei suoi regis Ii controller poi avvia Ix macchina. Cuando il controler ha terminato la lett laser tura del numero di byte che gli? stat richiesto di trasferir, al passo 2 segnala interrupt al chip del controller usando cere lirce di bus. Se il controller deg interrupt & preparato fad accettare interrupt (potiebbe non esserlo se & impegnato con un inverrupt a priorita pitt alta), epli fa un appunco nella CPU, informandola, nel passo 3. Nel paso 4, i con- troller degh interrupt mecce il numero del dispositivo sul bus, si che la CPU possa eggerlo e sapere quali dispositivi hanno appena finito (pit di un dispesiivo potrebbe ess Hi di TO, mia usa i, marichiede 1.3 Anais delthardware 29 "aaa Jisttuzione successiva ara oo [oF [Game 2. mone] — te tat erie Enos Geson ont B ® Figura 1.11 (ah passagy elatvi alla di un disposi (b) Processae un intereupt sgtica pend dlVinterupt eritomaresal programma tent, interop ‘ccguire il geste uso contemporancamente). Quando la CPU hha deciso di prendere Finervupy il eoncavore «li programma e PSW sono poi generalmente inserti nello stack atwale ela CPU gira modalia kemnd, I! numero del dispositive pud essere usaco come indice per 1 Vindirizzo del gestore degli interrupt per questo disposi chiamata vettore degli volta che il getore de per il dispositivo che nerrupe) inizia, eso timuove il contatore di pro _grammia cil PSW dallo stack e [i salva, quindh interroga il dispositive lostao. ‘Quando il gestore a terminato, ricomaalla prima istuzione non eseguita del programma utente in esecuzione in precedenza. Le fasi sono mostrare nelle terz0 metodo per gestite VO utiliza un hardware speciale: memory access ~ accesso diretto alla memoria) in grado di contrellace i fh memoria e alcuni controller senza Fintervento costante della CPU. La CPU imposta il chip DMA, comunicandegli quanti byte trasterte, il dispositivo ¢ Pinditiz20 di memoria coitwvolti lt direzione; poi lo lascia andare. Quando il chip DMA ha finite, causa un intesrupt gestito come descritto precedentemente. Lhardware DMA e'/O a livello generale siranno discuss con maggiori dettagh nel Capitolo 5. ‘Gli interrupt spess possono aceadere in moment decisamente inopportuni, per esem- pio mentre ¢ in corso un altro interrupt. Per questo motivo la CPU ha un modo per disa- bilitare gl incerrupe e rabilicarl in seguito, Mentre gh interrupt sono disabilitati, qualunque cispositivo che tetmini continu a inviare i suoi interrups, ma la CPU non viene interrotca finche gli interrupe non yengono nuovamente abilitati. Se pit: di un dispositive finisce ‘entre git interrupt sono disabiliai, il contioller degli interrupt decide quale far passire per primo, generslmente basandosi sulle priorita statiche assegnate a ogni dispositiv. I ‘ispositivo con la priorita pi alta vince e viene gestto subito; gl ali devono attendee. ‘generate

You might also like