دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: سیستم های عامل ویرایش: 4th نویسندگان: Andrew S. Tanenbaum, Herbert Bos سری: ISBN (شابک) : 9788543018188 ناشر: Pearson سال نشر: 0 تعداد صفحات: 778 زبان: Portuguese فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 13 مگابایت
در صورت تبدیل فایل کتاب Sistemas Operacionais Modernos به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب سیستم عامل های مدرن نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Prefácio......Page 16
1 Introdução......Page 20
1.1.1 O sistema operacional como uma máquina estendida......Page 22
1.1.2 O sistema operacional como um gerenciador de recursos......Page 23
1.2.2 A segunda geração (1955-1965): transistores e sistemas em lote (batch)......Page 24
1.2.3 A terceira geração (1965-1980): CIs e multiprogramação......Page 26
1.2.4 A quarta geração (1980-presente): computadores pessoais......Page 29
1.2.5 A quinta geração (1990-presente): computadores móveis......Page 32
1.3 Revisão sobre hardware de computadores......Page 33
1.3.1 Processadores......Page 34
1.3.2 Memória......Page 36
1.3.3 Discos......Page 38
1.3.4 Dispositivos de E/S......Page 39
1.3.5 Barramentos......Page 41
1.4.1 Sistemas operacionais de computadores de grande porte......Page 43
1.4.5 Sistemas operacionais de computadores portáteis......Page 44
1.4.8 Sistemas operacionais de tempo real......Page 45
1.5.1 Processos......Page 46
1.5.2 Espaços de endereçamento......Page 47
1.5.3 Arquivos......Page 48
1.5.5 Proteção......Page 50
1.5.7 A ontogenia recapitula a filogenia......Page 51
1.6 Chamadas de sistema......Page 54
1.6.1 Chamadas de sistema para gerenciamento de processos......Page 56
1.6.2 Chamadas de sistema para gerenciamento de arquivos......Page 58
1.6.3 Chamadas de sistema para gerenciamento de diretórios......Page 59
1.6.4 Chamadas de sistema diversas......Page 60
1.6.5 A API Win32 do Windows......Page 61
1.7 Estrutura de sistemas operacionais......Page 62
1.7.2 Sistemas de camadas......Page 63
1.7.3 Micronúcleos......Page 64
1.7.4 O modelo cliente-servidor......Page 66
1.7.5 Máquinas virtuais......Page 67
1.8.1 A linguagem C......Page 70
1.8.3 Grandes projetos de programação......Page 71
1.9 Pesquisa em sistemas operacionais......Page 72
1.10 Delineamento do resto deste livro......Page 73
1.11 Unidades métricas......Page 74
Problemas......Page 75
2.1 Processos......Page 78
2.1.1 O modelo de processo......Page 79
2.1.2 Criação de processos......Page 80
2.1.3 Término de processos......Page 81
2.1.5 Estados de processos......Page 82
2.1.6 Implementação de processos......Page 84
2.1.7 Modelando a multiprogramação......Page 85
2.2.1 Utilização de threads......Page 86
2.2.2 O modelo de thread clássico......Page 90
2.2.3 Threads POSIX......Page 92
2.2.4 Implementando threads no espaço do usuário......Page 94
2.2.5 Implementando threads no núcleo......Page 96
2.2.7 Ativações pelo escalonador......Page 97
2.2.8 Threads pop-up......Page 98
2.2.9 Convertendo código de um thread em código multithread......Page 99
2.3.1 Condições de corrida......Page 101
2.3.2 Regiões críticas......Page 102
2.3.3 Exclusão mútua com espera ocupada......Page 103
2.3.4 Dormir e acordar......Page 106
2.3.5 Semáforos......Page 108
2.3.6 Mutexes......Page 110
2.3.7 Monitores......Page 113
2.3.8 Troca de mensagens......Page 118
2.3.9 Barreiras......Page 120
2.3.10 Evitando travas: leitura-cópia-atualização......Page 121
2.4.1 Introdução ao escalonamento......Page 122
2.4.2 Escalonamento em sistemas em lote......Page 127
2.4.3 Escalonamento em sistemas interativos......Page 128
2.4.4 Escalonamento em sistemas de tempo real......Page 132
2.4.6 Escalonamento de threads......Page 133
2.5.1 O problema do jantar dos filósofos......Page 134
2.5.2 O problema dos leitores e escritores......Page 137
2.7 Resumo......Page 138
Problemas......Page 139
3.1 Sem abstração de memória......Page 144
3.2.1 A noção de um espaço de endereçamento......Page 147
3.2.2 Troca de processos (Swapping)......Page 149
3.2.3 Gerenciando a memória livre......Page 150
3.3.1 Paginação......Page 153
3.3.2 Tabelas de páginas......Page 155
3.3.3 Acelerando a paginação......Page 157
3.3.4 Tabelas de páginas para memórias grandes......Page 160
3.4.1 O algoritmo ótimo de substituição de página......Page 163
3.4.3 O algoritmo de substituição de páginas primeiro a entrar, primeiro a sair......Page 164
3.4.5 O algoritmo de substituição de páginas do relógio......Page 165
3.4.7 Simulação do LRU em software......Page 166
3.4.8 O algoritmo de substituição de páginas do conjunto de trabalho......Page 167
3.4.9 O algoritmo de substituição de página WSClock......Page 170
3.4.10 Resumo dos algoritmos de substituição de página......Page 171
3.5.1 Políticas de alocação local versus global......Page 172
3.5.2 Controle de carga......Page 174
3.5.3 Tamanho de página......Page 175
3.5.5 Páginas compartilhadas......Page 176
3.5.6 Bibliotecas compartilhadas......Page 177
3.5.8 Política de limpeza......Page 179
3.6.1 Envolvimento do sistema operacional com a paginação......Page 180
3.6.2 Tratamento de falta de página......Page 181
3.6.4 Retenção de páginas na memória......Page 182
3.6.5 Armazenamento de apoio......Page 183
3.6.6 Separação da política e do mecanismo......Page 184
3.7 Segmentação......Page 185
3.7.2 Segmentação com paginação: MULTICS......Page 187
3.7.3 Segmentação com paginação: o Intel x86......Page 191
3.8 Pesquisa em gerenciamento de memória......Page 193
Problemas......Page 194
4 Sistemas de arquivos......Page 200
4.1.1 Nomeação de arquivos......Page 201
4.1.2 Estrutura de arquivos......Page 203
4.1.3 Tipos de arquivos......Page 204
4.1.5 Atributos de arquivos......Page 205
4.1.7 Exemplo de um programa usando chamadas de sistema para arquivos......Page 207
4.2.1 Sistemas de diretório em nível único......Page 209
4.2.3 Nomes de caminhos......Page 210
4.3 Implementação do sistema de arquivos......Page 212
4.3.2 Implementando arquivos......Page 213
4.3.3 Implementando diretórios......Page 217
4.3.4 Arquivos compartilhados......Page 219
4.3.5 Sistemas de arquivos estruturados em diário (log)......Page 220
4.3.6 Sistemas de arquivos journaling......Page 221
4.3.7 Sistemas de arquivos virtuais......Page 222
4.4.1 Gerenciamento de espaço em disco......Page 224
4.4.2 Backups (cópias de segurança) do sistema de arquivos......Page 230
4.4.3 Consistência do sistema de arquivos......Page 234
4.4.4 Desempenho do sistema de arquivos......Page 236
4.4.5 Desfragmentação de disco......Page 239
4.5.1 O sistema de arquivos do MS-DOS......Page 240
4.5.2 O sistema de arquivos do UNIX V7......Page 242
4.5.3 Sistemas de arquivos para CD-ROM......Page 243
4.7 Resumo......Page 247
Problemas......Page 248
5.1.1 Dispositivos de E/S......Page 252
5.1.2 Controladores de dispositivos......Page 253
5.1.3 E/S mapeada na memória......Page 254
5.1.4 Acesso direto à memória (DMA)......Page 257
5.1.5 Interrupções revisitadas......Page 259
5.2.1 Objetivos do software de E/S......Page 262
5.2.2 E/S programada......Page 263
5.2.3 E/S orientada a interrupções......Page 264
5.3.1 Tratadores de interrupção......Page 265
5.3.2 Drivers dos dispositivos......Page 266
5.3.3 Software de E/S independente de dispositivo......Page 269
5.3.4 Software de E/S do espaço do usuário......Page 273
5.4.1 Hardware do disco......Page 274
5.4.2 Formatação de disco......Page 279
5.4.3 Algoritmos de escalonamento de braço de disco......Page 282
5.4.4 Tratamento de erros......Page 284
5.4.5 Armazenamento estável......Page 286
5.5.1 Hardware de relógios......Page 288
5.5.2 Software de relógio......Page 289
5.5.3 Temporizadores por software......Page 291
5.6.1 Software de entrada......Page 292
5.6.2 Software de saída......Page 296
5.7 Clientes magros (thin clients)......Page 307
5.8 Gerenciamento de energia......Page 308
5.8.1 Questões de hardware......Page 309
5.8.2 Questões do sistema operacional......Page 310
5.8.3 Questões dos programas aplicativos......Page 313
5.9 Pesquisas em entrada/saída......Page 314
5.10 Resumo......Page 315
Problemas......Page 316
6.1 Recursos......Page 320
6.1.2 Aquisição de recursos......Page 321
6.2 Introdução aos impasses......Page 322
6.2.2 Modelagem de impasses......Page 323
6.4 Detecção e recuperação de impasses......Page 325
6.4.1 Detecção de impasses com um recurso de cada tipo......Page 326
6.4.2 Detecção de impasses com múltiplos recursos de cada tipo......Page 327
6.4.3 Recuperação de um impasse......Page 329
6.5.1 Trajetórias de recursos......Page 330
6.5.2 Estados seguros e inseguros......Page 331
6.5.4 O algoritmo do banqueiro com múltiplos recursos......Page 332
6.6 Prevenção de impasses......Page 333
6.6.4 Atacando a condição da espera circular......Page 334
6.7.1 Travamento em duas fases......Page 335
6.7.2 Impasses de comunicação......Page 336
6.7.3 Livelock......Page 337
6.8 Pesquisas sobre impasses......Page 338
6.9 Resumo......Page 339
Problemas......Page 340
7 Virtualização e a nuvem......Page 344
7.2 Exigências para a virtualização......Page 346
7.3 Hipervisores tipo 1 e tipo 2......Page 348
7.4 Técnicas para virtualização eficiente......Page 349
7.4.1 Virtualizando o “invirtualizável”......Page 350
7.5 Hipervisores são micronúcleos feitos do jeito certo?......Page 352
7.6 Virtualização da memória......Page 354
7.7 Virtualização de E/S......Page 357
7.9 Máquinas virtuais em CPUs com múltiplos núcleos......Page 360
7.11.1 As nuvens como um serviço......Page 361
7.11.3 Checkpointing......Page 362
7.12.1 A história inicial do VMware......Page 363
7.12.2 VMware Workstation......Page 364
7.12.3 Desafios em trazer a virtualização para o x86......Page 365
7.12.4 VMware Workstation: visão geral da solução......Page 366
7.12.6 ESX Server: o hipervisor tipo 1 do VMware......Page 372
Problemas......Page 374
8 Sistemas com múltiplos processadores......Page 376
8.1.1 Hardware de multiprocessador......Page 378
8.1.2 Tipos de sistemas operacionais para multiprocessadores......Page 385
8.1.3 Sincronização de multiprocessadores......Page 388
8.1.4 Escalonamento de multiprocessadores......Page 391
8.2.1 Hardware de multicomputadores......Page 396
8.2.2 Software de comunicação de baixo nível......Page 399
8.2.3 Software de comunicação no nível do usuário......Page 401
8.2.4 Chamada de rotina remota......Page 403
8.2.5 Memória compartilhada distribuída......Page 405
8.2.7 Balanceamento de carga......Page 408
8.3 Sistemas distribuídos......Page 410
8.3.1 Hardware de rede......Page 412
8.3.2 Serviços de rede e protocolos......Page 414
8.3.3 Middleware baseado em documentos......Page 417
8.3.4 Middleware baseado no sistema de arquivos......Page 418
8.3.5 Middleware baseado em objetos......Page 421
8.3.6 Middleware baseado em coordenação......Page 422
8.4 Pesquisas sobre sistemas multiprocessadores......Page 424
8.5 Resumo......Page 425
Problemas......Page 426
9 Segurança......Page 430
9.1 Ambiente de segurança......Page 431
9.1.1 Ameaças......Page 432
9.2 Segurança de sistemas operacionais......Page 434
9.2.2 Base computacional confiável......Page 435
9.3.1 Domínios de proteção......Page 436
9.3.2 Listas de controle de acesso......Page 438
9.3.3 Capacidades......Page 440
9.4 Modelos formais de sistemas seguros......Page 442
9.4.1 Segurança multinível......Page 443
9.4.2 Canais ocultos......Page 445
9.5 Noções básicas de criptografia......Page 448
9.5.2 Criptografia de chave pública......Page 449
9.5.4 Assinaturas digitais......Page 450
9.5.5 Módulos de plataforma confiável......Page 451
9.6 Autenticação......Page 453
9.6.1 Autenticação usando um objeto físico......Page 457
9.6.2 Autenticação usando biometria......Page 459
9.7 Explorando softwares......Page 461
9.7.1 Ataques por transbordamento de buffer......Page 462
9.7.2 Ataques por cadeias de caracteres de formato......Page 468
9.7.3 Ponteiros pendentes......Page 470
9.7.5 Ataques por transbordamento de inteiro......Page 471
9.7.6 Ataques por injeção de comando......Page 472
9.8.1 Bombas lógicas......Page 473
9.8.3 Mascaramento de login......Page 474
9.9 Malware......Page 475
9.9.1 Cavalos de Troia......Page 477
9.9.2 Vírus......Page 478
9.9.3 Vermes (worms)......Page 485
9.9.4 Spyware......Page 486
9.9.5 Rootkits......Page 489
9.10.1 Firewalls......Page 492
9.10.2 Antivírus e técnicas antivírus......Page 493
9.10.3 Assinatura de código......Page 498
9.10.5 Detecção de intrusão baseada em modelo......Page 499
9.10.6 Encapsulamento de código móvel......Page 500
9.10.7 Segurança em Java......Page 503
9.12 Resumo......Page 505
Problemas......Page 506
10.1.1 UNICS......Page 512
10.1.2 PDP-11 UNIX......Page 513
10.1.3 UNIX portátil......Page 514
10.1.5 UNIX padrão......Page 515
10.1.6 MINIX......Page 516
10.1.7 Linux......Page 517
10.2.1 Objetivos do Linux......Page 518
10.2.2 Interfaces para o Linux......Page 519
10.2.3 O interpretador de comandos (shell)......Page 520
10.2.4 Programas utilitários do Linux......Page 522
10.2.5 Estrutura do núcleo......Page 523
10.3.1 Conceitos fundamentais......Page 525
10.3.2 Chamadas de sistema para gerenciamento de processos no Linux......Page 527
10.3.3 Implementação de processos e threads no Linux......Page 530
10.3.4 Escalonamento no Linux......Page 534
10.3.5 Inicializando o Linux......Page 538
10.4.1 Conceitos fundamentais......Page 539
10.4.2 Chamadas de sistema para gerenciamento de memória no Linux......Page 542
10.4.3 Implementação do gerenciamento de memória no Linux......Page 543
10.4.4 Paginação no Linux......Page 547
10.5.1 Conceitos fundamentais......Page 549
10.5.2 Transmissão em redes......Page 550
10.5.4 Implementação de entrada/saída no Linux......Page 552
10.6.1 Conceitos fundamentais......Page 555
10.6.2 Chamadas de sistema de arquivos no Linux......Page 558
10.6.3 Implementação do sistema de arquivos do Linux......Page 561
10.6.4 NFS: o sistema de arquivos de rede......Page 567
10.7.1 Conceitos fundamentais......Page 572
10.7.2 Chamadas de sistema para segurança no Linux......Page 573
10.8 Android......Page 574
10.8.2 História do Android......Page 575
10.8.3 Objetivos do projeto......Page 578
10.8.4 Arquitetura Android......Page 579
10.8.5 Extensões do Linux......Page 580
10.8.6 Dalvik......Page 582
10.8.7 IPC Binder......Page 583
10.8.8 Aplicações para o Android......Page 590
10.8.9 Intento......Page 598
10.8.11 Segurança......Page 599
10.8.12 Modelo de processos......Page 603
10.9 Resumo......Page 607
Problemas......Page 608
11.1.1 Década de 1980: o MS-DOS......Page 612
11.1.3 Década de 2000: Windows baseado no NT......Page 613
11.1.4 Windows Vista......Page 615
11.1.5 Década de 2010: Windows moderno......Page 616
11.2 Programando o Windows......Page 617
11.2.1 A interface de programação nativa de aplicações do NT......Page 620
11.2.2 A interface de programação de aplicações do Win32......Page 622
11.2.3 O registro do Windows......Page 625
11.3.1 Estrutura do sistema operacional......Page 627
11.3.2 Inicialização do Windows......Page 638
11.3.3 A implementação do gerenciador de objetos......Page 639
11.3.4 Subsistemas, DLLs e serviços do modo usuário......Page 646
11.4.1 Conceitos fundamentais......Page 648
11.4.2 Chamadas API de gerenciamento de tarefas, processos, threads e filamentos......Page 653
11.4.3 Implementação de processos e threads......Page 656
11.5.1 Conceitos fundamentais......Page 662
11.5.2 Chamadas de sistema para gerenciamento de memória......Page 665
11.5.3 Implementação do gerenciamento de memória......Page 666
11.6 Caching no Windows......Page 673
11.7.1 Conceitos fundamentais......Page 674
11.7.2 Chamadas das APIs de entrada/saída......Page 675
11.7.3 Implementação de E/S......Page 677
11.8.1 Conceitos fundamentais......Page 681
11.8.2 Implementação do sistema de arquivos NTFS......Page 682
11.9 Gerenciamento de energia do Windows......Page 689
11.10 Segurança no Windows 8......Page 690
11.10.1 Conceitos fundamentais......Page 691
11.10.2 Chamadas API de segurança......Page 692
11.10.3 Implementação da segurança......Page 693
11.10.4 Atenuações de segurança......Page 695
11.11 Resumo......Page 697
Problemas......Page 698
12.1.1 Objetivos......Page 702
12.1.2 Por que é difícil projetar um sistema operacional?......Page 703
12.2 Projeto de interface......Page 704
12.2.1 Princípios norteadores......Page 705
12.2.2 Paradigmas......Page 706
12.2.3 A interface de chamadas de sistema......Page 709
12.3.1 Estrutura do sistema......Page 710
12.3.2 Mecanismo versus política......Page 713
12.3.4 Nomeação......Page 714
12.3.5 Momento de associação (binding time)......Page 715
12.3.6 Estruturas estáticas versus dinâmicas......Page 716
12.3.7 Implementação de cima para baixo versus de baixo para cima......Page 717
12.3.8 Comunicação síncrona versus assíncrona......Page 718
12.3.9 Técnicas úteis......Page 719
12.4.1 Por que os sistemas operacionais são lentos?......Page 722
12.4.3 Ponderações espaço/tempo......Page 723
12.4.4 Uso de cache......Page 725
12.4.6 Exploração da localidade......Page 726
12.5.1 O mítico homem-mês......Page 727
12.5.2 Estrutura da equipe......Page 728
12.5.3 O papel da experiência......Page 729
12.6 Tendências no projeto de sistemas operacionais......Page 730
12.6.3 Sistemas operacionais com grandes espaços de endereçamento......Page 731
12.6.5 Computadores movidos a bateria......Page 732
12.7 Resumo......Page 733
Problemas......Page 734
13.1.1 Trabalhos introdutórios e gerais......Page 736
13.1.4 Sistemas de arquivos......Page 737
13.1.7 Virtualização e a nuvem......Page 738
13.1.9 Segurança......Page 739
13.1.12 Projeto de sistemas operacionais......Page 741
13.2 Referências......Page 742
Índice remissivo......Page 760