Table Of ContentFUNDAMENTOSDESISTEMASOPERATIVOS
Compilación:2014/12/04-16:13:05Commit:356345b
UNIVERSIDADNACIONALAUTÓNOMADEMÉXICO
Dr.JoséNarroRobles
Rector
Dr.EduardoBárzanaGarcía
SecretarioGeneral
Lic.EnriquedelValBlanco
SecretarioAdministrativo
Dra.EstelaMoralesCampos
CoordinadoradeHumanidades
INSTITUTODEINVESTIGACIONESECONÓMICAS
Dra.VerónicaVillarespeReyes
Directora
Mtra.BereniceRamírezLópez
SecretariaAcadémica
Sr.AristeoTovíasGarcía
SecretarioTécnico
Lic.MaríaSoledadSimónPinero
JefadelDepartamentodeEdiciones
FACULTADDEINGENIERÍA
Mtro.GonzaloGuerreroZepeda
Director
Ing.GonzaloLópezdeHaro
SecretarioGeneral
Dr.FranciscoJavierGarcíaUgalde
JefedelaDivisióndeIngenieríaEléctrica
Mtra.MaríaCuairánRuidíaz
JefadelDepartamentodeApoyoEditorial
FUNDAMENTOS DE SISTEMAS OPERATIVOS
GunnarWolf
EstebanRuiz
FedericoBergero
ErwinMeza
UNIVERSIDADNACIONALAUTÓNOMADEMÉXICO
INSTITUTODEINVESTIGACIONESECONÓMICAS
FACULTADDEINGENIERÍA
4
Índice general
Presentación 11
1. Introducción 17
1.1. ¿Quéesunsistemaoperativo?. . . . . . . . . . . . . . . . . . . . 17
1.1.1. ¿Porquéestudiarlossistemasoperativos? . . . . . . . . 17
1.2. Funcionesyobjetivosdelossistemasoperativos . . . . . . . . . 18
1.3. Evolucióndelossistemasoperativos . . . . . . . . . . . . . . . . 19
1.3.1. Procesoporlotes(batchprocessing) . . . . . . . . . . . . . 19
1.3.2. Sistemasenlotescondispositivosdecarga(spool) . . . . 20
1.3.3. Sistemasmultiprogramados . . . . . . . . . . . . . . . . . 20
1.3.4. Sistemasdetiempocompartido. . . . . . . . . . . . . . . 21
1.4. Ydelladodelascomputadoraspersonales . . . . . . . . . . . . 22
1.4.1. Primerossistemasparaentusiastas . . . . . . . . . . . . . 22
1.4.2. Larevolucióndelos8bits . . . . . . . . . . . . . . . . . . 23
1.4.3. Lacomputadoraparafines“serios”:lafamiliaPC . . . . 23
1.4.4. Elimpactodelentornográfico(WIMP) . . . . . . . . . . . 24
1.4.5. Convergenciadelosdosgrandesmercados . . . . . . . . 25
1.5. Dispositivosmóviles . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.5.1. Reseñahistórica . . . . . . . . . . . . . . . . . . . . . . . . 27
1.5.2. Característicasdiferenciadoras . . . . . . . . . . . . . . . 31
1.6. Seguridadinformática . . . . . . . . . . . . . . . . . . . . . . . . 35
1.6.1. Códigomalicioso . . . . . . . . . . . . . . . . . . . . . . . 36
1.7. Organizacióndelossistemasoperativos . . . . . . . . . . . . . . 37
1.8. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.8.1. Preguntasdeautoevaluación . . . . . . . . . . . . . . . . 39
1.8.2. Lecturasrelacionadas . . . . . . . . . . . . . . . . . . . . 41
2. Relaciónconelhardware 43
2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2. Unidaddeprocesamiento . . . . . . . . . . . . . . . . . . . . . . 43
2.2.1. Jerarquíadealmacenamiento . . . . . . . . . . . . . . . . 44
2.2.2. Interrupcionesyexcepciones . . . . . . . . . . . . . . . . 46
5
6 ÍNDICEGENERAL
2.3. Lasterminales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.4. Dispositivosdealmacenamiento . . . . . . . . . . . . . . . . . . 49
2.5. Relojesytemporizadores . . . . . . . . . . . . . . . . . . . . . . . 50
2.6. Canalesypuentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.6.1. Contención . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.6.2. Accesodirectoamemoria(DMA) . . . . . . . . . . . . . . 53
2.7. Interfazdelsistemaoperativo:llamadasalsistema . . . . . . . . 54
2.7.1. Llamadasalsistema,arquitecturasyAPI . . . . . . . . . 55
2.8. Referenciaaloscomponentes . . . . . . . . . . . . . . . . . . . . 57
2.9. Cuandodoscabezaspiensanmejorqueuna . . . . . . . . . . . . 58
2.9.1. Multiprocesamiento . . . . . . . . . . . . . . . . . . . . . 58
2.9.2. Cómputodistribuido . . . . . . . . . . . . . . . . . . . . . 61
2.9.3. AmdahlyGustafson:¿quéesperardelparalelismo? . . . 63
2.10.Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.10.1. Preguntasdeautoevaluación . . . . . . . . . . . . . . . . 66
2.10.2. Temasdeinvestigaciónsugeridos . . . . . . . . . . . . . 67
2.10.3. Lecturasrelacionadas . . . . . . . . . . . . . . . . . . . . 68
3. Administracióndeprocesos 69
3.1. Conceptoyestadosdeunproceso . . . . . . . . . . . . . . . . . 69
3.1.1. Estadosdeunproceso . . . . . . . . . . . . . . . . . . . . 69
3.1.2. Informaciónasociadaaunproceso . . . . . . . . . . . . . 70
3.2. Procesosehilos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.2.1. Loshilosyelsistemaoperativo . . . . . . . . . . . . . . . 72
3.2.2. Patronesdetrabajoconhilos . . . . . . . . . . . . . . . . 72
3.3. Concurrencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.3.2. Problema:eljardínornamental . . . . . . . . . . . . . . . 76
3.3.3. Mecanismosdesincronización . . . . . . . . . . . . . . . 86
3.3.4. Problemaproductor-consumidor . . . . . . . . . . . . . . 95
3.3.5. Bloqueosmutuoseinanición . . . . . . . . . . . . . . . . 97
3.3.6. Problemadeloslectoresylosescritores . . . . . . . . . . 98
3.3.7. Lacenadelosfilósofos . . . . . . . . . . . . . . . . . . . . 100
3.3.8. Losfumadorescompulsivos. . . . . . . . . . . . . . . . . 102
3.3.9. Otrosmecanismos . . . . . . . . . . . . . . . . . . . . . . 105
3.4. Bloqueosmutuos . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.4.1. Prevencióndebloqueos . . . . . . . . . . . . . . . . . . . 113
3.4.2. Evasióndebloqueos . . . . . . . . . . . . . . . . . . . . . 115
3.4.3. Detecciónyrecuperacióndebloqueos . . . . . . . . . . . 120
3.4.4. Algoritmodelavestruz . . . . . . . . . . . . . . . . . . . 124
3.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.5.1. Preguntasdeautoevaluación . . . . . . . . . . . . . . . . 126
3.5.2. Temasdeinvestigaciónsugeridos . . . . . . . . . . . . . 128
3.5.3. Lecturasrelacionadas . . . . . . . . . . . . . . . . . . . . 129
ÍNDICEGENERAL 7
4. Planificacióndeprocesos 131
4.1. Tiposdeplanificación. . . . . . . . . . . . . . . . . . . . . . . . . 131
4.1.1. Tiposdeproceso . . . . . . . . . . . . . . . . . . . . . . . 133
4.1.2. Midiendolarespuesta . . . . . . . . . . . . . . . . . . . . 134
4.2. Algoritmosdeplanificación . . . . . . . . . . . . . . . . . . . . . 137
4.2.1. Objetivosdelaplanificación . . . . . . . . . . . . . . . . 138
4.2.2. Primerollegado,primeroservido(FCFS). . . . . . . . . . 139
4.2.3. Ronda(RoundRobin) . . . . . . . . . . . . . . . . . . . . . 140
4.2.4. Elprocesomáscortoacontinuación(SPN,shortestprocess
next) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.2.5. Rondaegoísta(SRR,selfishroundrobin) . . . . . . . . . . . 144
4.2.6. Retroalimentaciónmultinivel(FB,multilevelfeedback) . 145
4.2.7. Lotería . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
4.2.8. Esquemashíbridos . . . . . . . . . . . . . . . . . . . . . . 149
4.2.9. Resumiendo . . . . . . . . . . . . . . . . . . . . . . . . . . 151
4.3. Planificacióndehilos . . . . . . . . . . . . . . . . . . . . . . . . . 154
4.3.1. LoshilosPOSIX(pthreads) . . . . . . . . . . . . . . . . 155
4.4. Planificacióndemultiprocesadores . . . . . . . . . . . . . . . . . 156
4.4.1. Afinidadaprocesador . . . . . . . . . . . . . . . . . . . . 156
4.4.2. Balanceodecargas . . . . . . . . . . . . . . . . . . . . . . 157
4.4.3. Colasdeprocesos:¿unaovarias? . . . . . . . . . . . . . . 158
4.4.4. Procesadoresconsoporteahiloshardware . . . . . . . . . 158
4.5. Tiemporeal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
4.5.1. Tiemporealduroysuave . . . . . . . . . . . . . . . . . . 161
4.5.2. Sistemaoperativointerrumpible(prevenible) . . . . . . . 162
4.5.3. Inversióndeprioridades . . . . . . . . . . . . . . . . . . . 162
4.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
4.6.1. Preguntasdeautoevaluación . . . . . . . . . . . . . . . . 163
4.6.2. Temasdeinvestigaciónsugeridos . . . . . . . . . . . . . 164
4.6.3. Lecturasrelacionadas . . . . . . . . . . . . . . . . . . . . 165
5. Administracióndememoria 167
5.1. Funcionesyoperaciones . . . . . . . . . . . . . . . . . . . . . . . 167
5.1.1. Espaciodedireccionamiento . . . . . . . . . . . . . . . . 167
5.1.2. Hardware:launidaddemanejodememoria(MMU) . . . 168
5.2. kb*),elregistrobasecontendría504214,yelregistrolímite . . . . 169
5.3. kb*),laMMUlanzaríaunaexcepciónotrampainterrumpiendoel 169
5.3.1. Lamemoriacaché . . . . . . . . . . . . . . . . . . . . . . . 170
5.3.2. Elespacioenmemoriadeunproceso . . . . . . . . . . . 171
5.3.3. Resolucióndedirecciones . . . . . . . . . . . . . . . . . . 173
5.4. Asignacióndememoriacontigua . . . . . . . . . . . . . . . . . . 174
5.4.1. Particióndelamemoria . . . . . . . . . . . . . . . . . . . 174
5.5. Segmentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
5.5.1. Permisos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
8 ÍNDICEGENERAL
5.5.2. Intercambioparcial . . . . . . . . . . . . . . . . . . . . . . 180
5.5.3. Ejemplificando . . . . . . . . . . . . . . . . . . . . . . . . 181
5.6. Paginación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
5.6.1. Tamañodelapágina . . . . . . . . . . . . . . . . . . . . . 184
5.6.2. Almacenamientodelatabladepáginas . . . . . . . . . . 185
5.6.3. Memoriacompartida . . . . . . . . . . . . . . . . . . . . . 189
5.7. Memoriavirtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
5.7.1. Paginaciónsobredemanda . . . . . . . . . . . . . . . . . 193
5.7.2. Rendimiento. . . . . . . . . . . . . . . . . . . . . . . . . . 195
5.7.3. Reemplazodepáginas . . . . . . . . . . . . . . . . . . . . 196
5.7.4. Asignacióndemarcos . . . . . . . . . . . . . . . . . . . . 205
5.7.5. Hiperpaginación . . . . . . . . . . . . . . . . . . . . . . . 208
5.8. Consideracionesdeseguridad . . . . . . . . . . . . . . . . . . . . 211
5.8.1. Desbordamientosdebuffer(bufferoverflows) . . . . . . . 211
5.8.2. Ligadoestáticoydinámicodebibliotecas . . . . . . . . . 218
5.9. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
5.9.1. Preguntasdeautoevaluación . . . . . . . . . . . . . . . . 221
5.9.2. Temasdeinvestigaciónsugeridos . . . . . . . . . . . . . 223
5.9.3. Lecturasrelacionadas . . . . . . . . . . . . . . . . . . . . 225
6. Organizacióndearchivos 227
6.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
6.2. Conceptodearchivo . . . . . . . . . . . . . . . . . . . . . . . . . 229
6.2.1. Operacionesconarchivos . . . . . . . . . . . . . . . . . . 229
6.2.2. Tablasdearchivosabiertos . . . . . . . . . . . . . . . . . 231
6.2.3. Accesoconcurrente:bloqueodearchivos . . . . . . . . . 232
6.2.4. Tiposdearchivo . . . . . . . . . . . . . . . . . . . . . . . 233
6.2.5. Estructuradelosarchivosymétodosdeacceso. . . . . . 235
6.2.6. Archivosespeciales . . . . . . . . . . . . . . . . . . . . . . 238
6.2.7. Transferenciasorientadasabloques . . . . . . . . . . . . 239
6.3. Organizacióndearchivos . . . . . . . . . . . . . . . . . . . . . . 240
6.3.1. Evolucióndelconceptodedirectorio . . . . . . . . . . . . 240
6.3.2. Operacionescondirectorios . . . . . . . . . . . . . . . . . 246
6.3.3. Montajededirectorios . . . . . . . . . . . . . . . . . . . . 249
6.4. Controldeacceso . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
6.4.1. SistemasFAT . . . . . . . . . . . . . . . . . . . . . . . . . . 252
6.4.2. ModelotradicionalUnix . . . . . . . . . . . . . . . . . . . 253
6.4.3. Listasdecontroldeacceso. . . . . . . . . . . . . . . . . . 254
6.5. Sistemasdearchivosremotos . . . . . . . . . . . . . . . . . . . . 256
6.5.1. NetworkFileSystem(NFS) . . . . . . . . . . . . . . . . . 256
6.5.2. CommonInternetFileSystem(CIFS) . . . . . . . . . . . . 257
6.5.3. Sistemasdearchivosdistribuidos:AndrewFileSystem . 259
6.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
6.6.1. Preguntasdeautoevaluación . . . . . . . . . . . . . . . . 260
ÍNDICEGENERAL 9
6.6.2. Temasdeinvestigaciónsugeridos . . . . . . . . . . . . . 261
6.6.3. Lecturasrelacionadas . . . . . . . . . . . . . . . . . . . . 262
7. Sistemasdearchivos 263
7.1. Plasmandolaestructuraeneldispositivo . . . . . . . . . . . . . 263
7.1.1. Conceptosparalaorganización . . . . . . . . . . . . . . . 263
7.1.2. Diferentessistemasdearchivos . . . . . . . . . . . . . . . 265
7.1.3. Elvolumen . . . . . . . . . . . . . . . . . . . . . . . . . . 266
7.1.4. Eldirectorioylosi-nodos. . . . . . . . . . . . . . . . . . . 267
7.1.5. Compresiónydesduplicación . . . . . . . . . . . . . . . . . 273
7.1.6. Sistemasdearchivosvirtuales . . . . . . . . . . . . . . . 276
7.2. Esquemasdeasignacióndeespacio. . . . . . . . . . . . . . . . . 277
7.2.1. Asignacióncontigua . . . . . . . . . . . . . . . . . . . . . 278
7.2.2. Asignaciónligada. . . . . . . . . . . . . . . . . . . . . . . 279
7.2.3. Asignaciónindexada . . . . . . . . . . . . . . . . . . . . . 280
7.2.4. LastablasenFAT . . . . . . . . . . . . . . . . . . . . . . . 283
7.3. Fallosyrecuperación . . . . . . . . . . . . . . . . . . . . . . . . . 285
7.3.1. Datosymetadatos . . . . . . . . . . . . . . . . . . . . . . 287
7.3.2. Verificacióndelaintegridad. . . . . . . . . . . . . . . . . 288
7.3.3. Actualizacionessuaves. . . . . . . . . . . . . . . . . . . . 288
7.3.4. Sistemasdearchivoconbitácora . . . . . . . . . . . . . . 290
7.3.5. Sistemasdearchivosestructuradosenbitácora . . . . . . 291
7.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
7.4.1. Preguntasdeautoevaluación . . . . . . . . . . . . . . . . 292
7.4.2. Temasdeinvestigaciónsugeridos . . . . . . . . . . . . . 293
7.4.3. Lecturasrelacionadas . . . . . . . . . . . . . . . . . . . . 293
A. Softwarelibreylicenciamiento 297
A.1. Softwarelibre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
A.1.1. FreeasinFreedom:elproyectoGNU . . . . . . . . . . . . . 297
A.1.2. ElsoftwarelibreantesdeGNU . . . . . . . . . . . . . . . 298
A.1.3. Elsoftwarepropietariocomoanomalíahistórica . . . . . . 299
A.1.4. Esquemaslibresdelicenciamiento . . . . . . . . . . . . . 300
A.2. Obrasculturaleslibres . . . . . . . . . . . . . . . . . . . . . . . . 302
A.2.1. LafamiliadelicenciasCreativeCommons. . . . . . . . . . 303
A.3. Ellicenciamientoempleadoparalapresenteobra . . . . . . . . 305
A.4. Lecturasrelacionadas . . . . . . . . . . . . . . . . . . . . . . . . . 306
B. Virtualización 309
B.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
B.2. Emulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
B.2.1. Emulandoarquitecturasinexistentes . . . . . . . . . . . . 311
B.2.2. Deloabstractoaloconcreto . . . . . . . . . . . . . . . . . 313
B.2.3. ¿Emulaciónosimulación? . . . . . . . . . . . . . . . . . . 314
10 ÍNDICEGENERAL
B.3. Virtualizaciónasistidaporhardware . . . . . . . . . . . . . . . . 315
B.3.1. Elhipervisor. . . . . . . . . . . . . . . . . . . . . . . . . . 316
B.3.2. Virtualizaciónasistidaporhardwareenx86. . . . . . . . 316
B.4. Paravirtualización . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
B.4.1. Paravirtualizaciónysoftwarelibre . . . . . . . . . . . . . 319
B.4.2. Paravirtualizacióndedispositivos . . . . . . . . . . . . . 319
B.5. Contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
B.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
B.6.1. Preguntasdeautoevaluación . . . . . . . . . . . . . . . . 322
B.6.2. Temasdeinvestigaciónsugeridos . . . . . . . . . . . . . 324
B.6.3. Lecturasrelacionadas . . . . . . . . . . . . . . . . . . . . 324
C. Elmediofísicoyelalmacenamiento 327
C.1. Elmediofísico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
C.1.1. Discosmagnéticosrotativos . . . . . . . . . . . . . . . . . 327
C.1.2. Almacenamientoenestadosólido . . . . . . . . . . . . . 335
C.2. RAID:Másalládeloslímitesfísicos . . . . . . . . . . . . . . . . . 339
C.2.1. RAIDnivel0:divisiónenfranjas . . . . . . . . . . . . . . . 340
C.2.2. RAIDnivel1:espejo. . . . . . . . . . . . . . . . . . . . . . 341
C.2.3. Losniveles2,3y4deRAID . . . . . . . . . . . . . . . . . 342
C.2.4. RAIDnivel5:paridaddivididaporbloques . . . . . . . . 342
C.2.5. RAIDnivel6:paridadporredundanciaP+Q . . . . . . . 344
C.2.6. NivelescombinadosdeRAID . . . . . . . . . . . . . . . . 345
C.3. Manejoavanzadodevolúmenes . . . . . . . . . . . . . . . . . . 346
C.3.1. LVM:elGestordeVolúmenesLógicos . . . . . . . . . . . 347
C.3.2. ZFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
C.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
C.4.1. Preguntasdeautoevaluación . . . . . . . . . . . . . . . . 349
C.4.2. Temasdeinvestigaciónsugeridos . . . . . . . . . . . . . 349
C.4.3. Lecturasrelacionadas . . . . . . . . . . . . . . . . . . . . 349