SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

Documentos relacionados
Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais

ENADE 2011 SISTEMAS OPERACIONAIS

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Conceitos básicos e serviços dos Sistemas Operacionais

ARQUITETURA DE COMPUTADORES

INTRODUÇÃO. Sistemas Operacionais. Vinícius Pádua

Sistemas Operacionais Aula 3

Introdução aos Sistemas Operacionais

INTRODUÇÃO. Sistemas Operacionais. Vinícius Pádua

Capítulo 5 Entrada/Saída

SSC0640 Sistemas Operacionais I

Segmentação de Memória

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

Sistemas Operacionais João Bosco T. Junior. Sistemas Operacionais João Bosco Junior - V1.3

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Capítulo 4 Gerenciamento de Memória

Administração de Memória

Infra-Estrutura de Software. Sistemas Operacionais Revisão

E S C O L A T É C N I C A E S T A D U A L R E P Ú B L I C A

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Conceitos Gerais Definição e Características dos SOs. Na Aula Anterior... Nesta Aula. O Escopo dos SOs 16/08/2016

Capítulo 2 Processos e Threads

INTRODUÇÃO. Sistemas Operacionais. Vinícius Pádua

Organização de um Sistema Operativo

Arquitetura e Organização de Computadores

2º Grupo Capitulo 11 Página 517 a 530 Camada do Núcleo a Manipuladores. Alunos Wanderson da Silva Serradilha Sérgio Vilela Maia Rúlio Márcio

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Organização e Planejamento didáticopedagógico da disciplina. Elaboração dos

Fundamentos de Sistemas Operacionais

Montagem e Manutenção

Substituição de Páginas

SOP - TADS Fundamentos de Sistemas Operacionais

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

Gerenciamento de Memória

Sistemas de Informação. Sistemas Operacionais

Arquitetura e Organização de Computadores

GERENCIAMENTO DE MEMÓRIA

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

GERÊNCIA DE MEMÓRIA. INF009 Laboratório de Sistemas Operacionais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ESTRUTURA DE UM SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

Apresentação. Sistemas Operacionais. Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D.

Capítulo 5 Entrada/Saída

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

Infra-Estrutura de Software IF677

18/08/2015. Funções dos sistemas operacionais. Capítulo 3: Sistemas Operacionais

Sistemas Operacionais II Unix: Memória e E/S. Geraldo Braz Junior

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

Estrutura do Sistema Operacional

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

Gerência de Dispositivos. Adão de Melo Neto

Arquitetura de Sistemas Operacionais

Infra-Estrutura de Software

Infra-Estrutura de Software

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Infra-Estrutura de Software

Capítulo 11 Estudo de Caso 2: Windows 2000

Lista de Exercícios de INF1019

Sistemas de Computação O Sistema Operacional Unix

SSC0640 Sistemas Operacionais I

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO IM DCC CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I 2010/2 PROGRAMA DA DISCIPLINA

Capítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006

Infra-Estrutura de Software

Técnicas Avançadas de Programação

SSC0640 Sistemas Operacionais I

Sistemas Operacionais. Introdução a Sistemas Operacionais

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Estudo de Caso 1: UNIX e LINUX

Memória Virtual. MAC Arquitetura de Computadores Prof. Siang Wun Song. Baseado em W. Stallings Computer Organization and Architecture

SSC0640 Sistemas Operacionais I

Exercícios de revisão V2

Arquitetura de Sistemas Operacionais

Aula 03 - Concorrência. por Sediane Carmem Lunardi Hernandes

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Aula 1: Introdução aos Sistemas Operacionais. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Sistemas Operacionais. Capítulo 5 Processos

LISTA DE EXERCÍCIOS 02

Plano de Ensino IDENTIFICAÇÃO EMENTA

Sistemas Operacionais II

Gerenciamento de Memória

Atividades Práticas no Ensino Introdutório de Sistemas Operac

Evandro Deliberal Aula 03

SSC0640 Sistemas Operacionais I

GERENCIAMENTO DE PROCESSOS E MEMÓRIA

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Sistemas de Computação. Gerenciamento de memória

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

PROJETO LÓGICO DE COMPUTADORES. Nível do Sistema Operacional. Prof.: Agostinho S. Riofrio

Organização e Arquitetura de Computadores I

Sistemas Operacionais

Gerenciamento de memória Memória Virtual

MEMÓRIA LÓGICA E FÍSICA (1)

Infra-Estrutura de Software. Entrada / Saída

Processos no Minix 3.1.7

Transcrição:

SUMÁRIO 1 INTRODUÇÃO 21 1.1 O QUE É O SISTEMA OPERACIONAL? 23 1.1.1 O sistema operacional como uma máquina estendida 23 1.1.2 O sistema operacional como gerenciador de recursos 24 1.2 HISTÓRIA DOS SISTEMAS OPERACIONAIS 25 1.2.1 A primeira geração (1945 1955): válvulas e painéis de conectores 26 1.2.2 A segunda geração (1955 1965): transistores e sistemas de lote 26 1.2.3 A terceira geração (1965 1980): CIs e multiprogramação 28 1.2.4 A quarta geração (1980 hoje): computadores pessoais 32 1.2.5 A história do MINIX 3 34 1.3 CONCEITOS DE SISTEMA OPERACIONAL 37 1.3.1 Processos 37 1.3.2 Arquivos 39 1.3.3 O shell 42 1.4 CHAMADAS DE SISTEMA 43 1.4.1 Chamadas de sistema para gerenciamento de processos 44 1.4.2 Chamadas de sistema para sinais 48 1.4.3 Chamadas de sistema para gerenciamento de arquivos 50 1.4.4 Chamadas de sistema para gerenciamento de diretórios 54 1.4.5 Chamadas de sistema para proteção 56 1.4.6 Chamadas de sistema para gerenciamento de tempo 57 1.5 ARQUITETURA DE SISTEMAS OPERACIONAIS 58 1.5.1 Sistemas monolíticos 58 1.5.2 Sistemas em camadas 60 1.5.3 Máquinas virtuais 61 1.5.4 Exonúcleos 64 1.5.5 Modelo cliente-servidor 64

14 SUMÁRIO 1.6 VISÃO GERAL DO RESTANTE DESTE LIVRO 65 1.7 RESUMO 66 2 PROCESSOS 69 2.1 INTRODUÇÃO 69 2.1.1 O modelo de processo 69 2.1.2 Criação de processos 71 2.1.3 Término de processos 72 2.1.4 Hierarquia de processos 73 2.1.5 Estados de um processo 74 2.1.6 Implementação de processos 76 2.1.7 Threads 78 2.2 COMUNICAÇÃO ENTRE PROCESSOS 80 2.2.1 Condições de corrida 81 2.2.2 Seções críticas 82 2.2.3 Exclusão mútua com espera ativa 83 2.2.4 Sleep e Wakeup 87 2.2.5 Semáforos 89 2.2.6 Mutex 92 2.2.7 Monitores 92 2.2.8 Passagem de mensagens 96 2.3 PROBLEMAS CLÁSSICOS DE COMUNICAÇÃO ENTRE PROCESSOS 98 2.3.1 O problema da janta dos filósofos 98 2.3.2 O problema dos leitores e escritores 100 2.4 ESCALONAMENTO 103 2.4.1 Introdução ao escalonamento 103 2.4.2 Escalonamento em sistemas de lote 108 2.4.3 Escalonamento em sistemas interativos 111 2.4.4 Escalonamento em sistemas de tempo real 116 2.4.5 Política versus mecanismo 117 2.4.6 Escalonamento de threads 118 2.5 VISÃO GERAL DOS PROCESSOS NO MINIX 3 119 2.5.1 A estrutura interna do MINIX 3 120 2.5.2 Gerenciamento de processos no MINIX 3 123 2.5.3 Comunicação entre processos no MINIX 3 127 2.5.4 Escalonamento de processos no MINIX 3 129 2.6 IMPLEMENTAÇÃO DE PROCESSOS NO MINIX 3 131 2.6.1 Organização do código-fonte do MINIX 3 131 2.6.2 Compilando e executando o MINIX 3 134 2.6.3 Os arquivos de cabeçalho comuns 136

SUMÁRIO 15 2.6.4 Arquivo de cabeçalho do MINIX 3 142 2.6.5 Estruturas de dados de processo e arquivos de cabeçalho 150 2.6.6 Inicialização do MINIX 3 159 2.6.7 Inicialização do sistema 162 2.6.8 Tratamento de interrupção no MINIX 168 2.6.9 Comunicação entre processos no MINIX 3 178 2.6.10 Escalonamento no MINIX 3 181 2.6.11 Suporte do núcleo dependente de hardware 184 2.6.12 Utilitários e a biblioteca do núcleo 188 2.7 A TAREFA DE SISTEMA NO MINIX 3 190 2.7.1 Visão geral da tarefa de sistema 192 2.7.2 Implementação da tarefa de sistema 195 2.7.3 Implementação da biblioteca de sistema 198 2.8 A TAREFA DE RELÓGIO NO MINIX 3 201 2.8.1 Hardware de relógio 201 2.8.2 Software de relógio 202 2.8.3 Visão geral do driver de relógio no MINIX 3 205 2.8.4 Implementação do driver de relógio no MINIX 3 209 2.9 RESUMO 210 3 ENTRADA/SAÍDA 216 3.1 PRINCÍPIOS DO HARDWARE DE E/S 216 3.1.1 Dispositivos de E/S 217 3.1.2 Controladoras de dispositivo 217 3.1.3 E/S mapeada em memória 219 3.1.4 Interrupções 221 3.1.5 Acesso direto à memória 221 3.2 PRINCÍPIOS DO SOFTWARE DE E/S 223 3.2.1 Objetivos do software de E/S 223 3.2.2 Rotinas de tratamento de interrupção 225 3.2.3 Drivers de dispositivo 225 3.2.4 Software de E/S independente de dispositivo 227 3.2.5 Software de E/S em espaço de usuário 229 3.3 IMPASSES 231 3.3.1 Recursos 231 3.3.2 Princípios do impasse 232 3.3.3 O algoritmo do avestruz 236 3.3.4 Detecção e recuperação 237 3.3.5 Prevenção de impasses 237 3.3.6 Evitação de impasses 239

16 SUMÁRIO 3.4 VISÃO GERAL DA E/S NO MINIX 3 243 3.4.1 Rotinas de tratamento de interrupção e acesso de E/S no MINIX 3 244 3.4.2 Drivers de dispositivo no MINIX 3 247 3.4.3 Software de E/S independente de dispositivo no MINIX 3 251 3.4.4 Software de E/S em nível de usuário no MINIX 3 251 3.4.5 Tratamento de impasses no MINIX 3 251 3.5 DISPOSITIVOS DE BLOCO NO MINIX 3 252 3.5.1 Visão geral dos drivers de dispositivos de bloco no MINIX 3 252 3.5.2 Software comum de driver de dispositivo de bloco 255 3.5.3 A biblioteca de drivers 258 3.6 DISCOS EM RAM 260 3.6.1 Hardware e software de disco em RAM 261 3.6.2 Visão geral do driver de disco em RAM no MINIX 3 262 3.6.3 Implementação do driver de disco em RAM no MINIX 3 263 3.7 DISCOS 266 3.7.1 Hardware de disco 266 3.7.2 RAID 268 3.7.3 Software de disco 269 3.7.4 Visão geral do driver de disco rígido no MINIX 3 274 3.7.5 Implementação do driver de disco rígido no MINIX 3 278 3.7.6 Tratamento de disquetes 286 3.8 TERMINAIS 288 3.8.1 Hardware de terminal 289 3.8.2 Software de terminal 293 3.8.3 Visão geral do driver de terminal no MINIX 3 300 3.8.4 Implementação do driver de terminal independente de dispositivo 313 3.8.5 Implementação do driver de teclado 329 3.8.6 Implementação do driver de vídeo 336 3.9 RESUMO 343 4 GERENCIAMENTO DE MEMÓRIA 349 4.1 GERENCIAMENTO BÁSICO DE MEMÓRIA 350 4.1.1 Monoprogramação sem swapping ou paginação 350 4.1.2 Multiprogramação com partições fixas 351 4.1.3 Realocação e proteção 352 4.2 SWAPPING 353 4.2.1 Gerenciamento de memória com mapas de bits 355 4.2.2 Gerenciamento de memória com listas encadeadas 356

SUMÁRIO 17 4.3 MEMÓRIA VIRTUAL 358 4.3.1 Paginação 359 4.3.2 Tabelas de página 361 4.3.3 Translation Lookaside Buffers (TLB) 366 4.3.4 Tabela de páginas invertida 368 4.4 ALGORITMOS DE SUBSTITUIÇÃO DE PÁGINA 370 4.4.1 O algoritmo de substituição de página ótimo 370 4.4.2 O algoritmo de substituição de página não usada recentemente 371 4.4.3 O algoritmo de substituição de página FIFO (primeira a entrar, primeira a sair) 372 4.4.4 O algoritmo de substituição de página segunda chance 372 4.4.5 O algoritmo do relógio para substituição de página 373 4.4.6 O algoritmo de substituição de página LRU (menos recentemente utilizada) 374 4.4.7 Simulando o algoritmo LRU em software 374 4.5 QUESTÕES DE PROJETO PARA SISTEMAS DE PAGINAÇÃO 376 4.5.1 O modelo do conjunto de trabalho 377 4.5.2 Políticas de alocação local versus global 379 4.5.3 Tamanho de página 381 4.5.4 Interface de memória virtual 382 4.6 SEGMENTAÇÃO 383 4.6.1 Implementação da segmentação pura 386 4.6.2 Segmentação com paginação: o Pentium Intel 387 4.7 VISÃO GERAL DO GERENCIADOR DE PROCESSOS DO MINIX 3 391 4.7.1 Layout da memória 393 4.7.2 Tratamento de mensagens 396 4.7.3 Estruturas de dados e algoritmos do gerenciador de processos 398 4.7.4 As chamadas de sistema FORK, EXIT e WAIT 402 4.7.5 A chamada de sistema EXEC 403 4.7.6 A chamada de sistema BRK 406 4.7.7 Tratamento de sinais 407 4.7.8 Outras chamadas de sistema 415 4.8 IMPLEMENTAÇÃO DO GERENCIADOR DE PROCESSOS DO MINIX 3 415 4.8.1 Os arquivos de cabeçalho e as estruturas de dados 415 4.8.2 O programa principal 418 4.8.3 Implementação de FORK, EXIT e WAIT 423 4.8.4 Implementação de EXEC 424 4.8.5 Implementação de BRK 428 4.8.6 Implementação do tratamento de sinais 429 4.8.7 Implementação de outras chamadas de sistema 436 4.8.8 Utilitários de gerenciamento de memória 438 4.9 RESUMO 440

18 SUMÁRIO 5 SISTEMA DE ARQUIVOS 445 5.1 ARQUIVOS 446 5.1.1 Atribuição de nomes de arquivo 446 5.1.2 Estrutura do arquivo 448 5.1.3 Tipos de arquivo 449 5.1.4 Acesso a arquivo 451 5.1.5 Atributos de arquivo 451 5.1.6 Operações sobre arquivos 453 5.2 DIRETÓRIOS 454 5.2.1 Diretórios simples 454 5.2.2 Sistemas de diretório hierárquicos 455 5.2.3 Nomes de caminho 456 5.2.4 Operações sobre diretórios 458 5.3 IMPLEMENTAÇÃO DO SISTEMA DE ARQUIVOS 459 5.3.1 Layout do sistema de arquivos 459 5.3.2 Implementando arquivos 461 5.3.3 Implementando diretórios 464 5.3.4 Gerenciamento do espaço em disco 469 5.3.5 Confiabilidade do sistema de arquivos 472 5.3.6 Desempenho do sistema de arquivos 479 5.3.7 Sistemas de arquivos estruturados em log 483 5.4 SEGURANÇA 485 5.4.1 O ambiente de segurança 485 5.4.2 Ataques genéricos contra a segurança 489 5.4.3 Princípios de projeto voltados à segurança 490 5.4.4 Autenticação de usuário 491 5.5 MECANISMOS DE PROTEÇÃO 494 5.5.1 Domínios de proteção 494 5.5.2 Listas de controle de acesso 496 5.5.3 Capacidades 499 5.5.4 Canais secretos 501 5.6 VISÃO GERAL DO SISTEMA DE ARQUIVOS DO MINIX 3 504 5.6.1 Mensagens 504 5.6.2 Layout do sistema de arquivos 506 5.6.3 Mapas de bits 508 5.6.4 I-nodes 510 5.6.5 A cache de blocos 512 5.6.6 Diretórios e caminhos 514 5.6.7 Descritores de arquivo 516 5.6.8 Travamento de arquivos 517 5.6.9 Pipes e arquivos especiais 517 5.6.10 Um exemplo: a chamada de sistema READ 519

SUMÁRIO 19 5.7 IMPLEMENTAÇÃO DO SISTEMA DE ARQUIVOS DO MINIX 3 520 5.7.1 Arquivos de cabeçalho e estruturas de dados globais 520 5.7.2 Gerenciamento de tabelas 523 5.7.3 O programa principal 531 5.7.4 Operações sobre arquivos individuais 534 5.7.5 Diretórios e caminhos 542 5.7.6 Outras chamadas de sistema 545 5.7.7 A interface de dispositivo de E/S 547 5.7.8 Suporte adicional para chamadas de sistema 552 5.7.9 Utilitários do sistema de arquivos 554 5.7.10 Outros componentes do MINIX 3 554 5.8 RESUMO 555 6 LEITURAS RECOMENDADAS E BIBLIOGRAFIA 559 6.1 SUGESTÕES PARA LEITURAS COMPLEMENTARES 559 6.1.1 Introdução e funcionamentos gerais 559 6.1.2 Processos 561 6.1.3 Entrada/saída 562 6.1.4 Gerenciamento de memória 562 6.1.5 Sistemas de arquivos 563 6.2 BIBLIOGRAFIA EM ORDEM ALFABÉTICA 564 APÊNDICES A INSTALANDO O MINIX 3 575 B O CÓDIGO-FONTE DO MINIX 583 C ÍNDICE PARA OS ARQUIVOS 979 ÍNDICE 981