Table Of ContentSistemas Operacionais:
Conceitos e Mecanismos
Prof. Carlos A. Maziero
DINF - UFPR
Catalogação na Fonte: Sistema de Bibliotecas, UFPR
Biblioteca de Ciência e Tecnologia
M476s Maziero, Carlos Alberto
Sistemas operacionais: conceitos e mecanismos [recurso eletrônico] /
Carlos Alberto Maziero. – Curitiba : DINF - UFPR, 2019.
456 p. : il.; color.
ISBN: 978-85-7335-340-2. (E-book)
Inclui bibliografia.
1. Sistemas operacionais (Computadores). 2. Programação de sistemas
(Computação). 3. Gerenciamento de memória (Computação). 4. Segurança
de sistemas. I. Universidade Federal do Paraná. II. DINF -UFPR. III. Título.
CDD: 005.43
Bibliotecária: Vanusa Maciel CRB- 9/1928
SistemasOperacionais: ConceitoseMecanismos
(cid:13)c CarlosAlbertoMaziero,2013-2019
ISBN:978-85-7335-340-2
Sobreoautor: CarlosA.MazieroéprofessordoDeptodeInformáticadaUniversidade
FederaldoParaná (UFPR)desde2015. Anteriormente,foiprofessordaUniversidade
Tecnológica Federal do Paraná (UTFPR), entre 2011 e 2015, professor da Pontifícia
UniversidadeCatólicadoParaná(PUCPR),entre1998e2011,eprofessordaUniversidade
Federal de Santa Catarina (UFSC), de 1996 a 1998. Formado em Engenharia Elétrica
(UFSC, 1988), tem Mestrado em Engenharia Elétrica (UFSC, 1990), Doutorado em
Informática (Université de Rennes I - França, 1994) e Pós-Doutorados na Università
/
degliStudidiMilano–Italia(2009)enoIRISA INRIARennes–França(2018). Atuaem
ensino e pesquisa nas áreas de sistemas operacionais, sistemas distribuídos e segurança
desistemas.
Este texto está licenciado sob a Licença Attribution-
NonCommercial-ShareAlike3.0UnporteddaCreativeCommons
(CC). Em resumo, você deve creditar a obra da forma es-
pecificada pelo autor ou licenciante (mas não de maneira
que sugira que estes concedem qualquer aval a você ou ao seu uso da obra). Você
não pode usar esta obra para fins comerciais. Se você alterar, transformar ou criar
com base nesta obra, você poderá distribuir a obra resultante apenas sob a mesma
licença,ousobumalicençasimilaràpresente. Paraverumacópiadestalicença,visite
http://creativecommons.org/licenses/by-nc-sa/3.0/.
Estetextofoiproduzidousandoexclusivamentesoftwarelivre: SistemaOperacional
GNU/Linux(distribuiçõesFedoraeUbuntu),compiladordetexto LATEX2ε,gerenciador
de referênciasBibTeX, editorgráficoInkscape, criadores de gráficosGNUPloteGraphViz
/
eprocessadorPS PDFGhostScript,entreoutros. Algumasfigurasdotextousamícones
dehttps://www.creativetail.com edeoutrasfontes,soblicençaCreativeCommons.
Versãocompiladaem28dejulhode2020.
Prefácio
Ossistemasoperacionaissãoelementosfundamentaisparaofuncionamentode
praticamente qualquer sistema de computação, dos minúsculos sistemas embarcados
etelefonescelularesaosgigantescoscentrosdeprocessamentodedadosdasgrandes
empresas. Apesar da imensa diversidade de sistemas operacionais existentes, eles
tentam resolver problemas de mesma natureza e seguem basicamente os mesmos
princípios.
Conhecer sistemas operacionais a fundo não é algo reservado a hackers, mas
importanteparatodoprofissionaldecomputação,poisosmecanismosimplementados
pelo sistema operacional afetam diretamente o comportamento e o desempenho das
aplicações. Além disso, o sistema operacional é uma peça chave na configuração de
serviçosderedeenasegurançadosistema.
Existemmuitoslivrosdesistemasoperacionaisdisponíveisnomercado,quase
todosmuitobons,escritosporprofissionaisreconhecidosmundialmente. Entretanto,
bons livros de Sistemas Operacionais podem custar centenas de reais, o que os torna
inacessíveisaumaparcelasignificativadapopulação. Estelivroseriaapenasmaisuma
opção decompra naslivrarias, não fossepor um pequenodetalhe: foi concebidocomo
umLivroAberto,desdeseuinício. UmLivroAberto(doinglêsOpenBook)éumlivro
amplamentedisponívelnaInternetemformatodigital,semcusto. Noexterior,muitos
openbooksestãotambémdisponíveisnaslivrarias,paraaquisiçãoemformatoimpresso.
Eu acredito que “inclusão digital” não significa somente permitir o acesso
a computadores à parcela mais pobre da população, mas também desmistificar o
funcionamento dessa tecnologia e incentivar seu estudo, para fomentar as próximas
gerações detécnicos, engenheirose cientistas, vindasde todasas classes sociais. Nosso
paísnão podemais sedarao luxode desperdiçar pessoasinteligentes somente porque
sãopobres.
Prof. CarlosMaziero,Dr.
Agradecimentos
Este texto é fruto de alguns anos de trabalho. Embora eu o tenha redigido
sozinho,elenuncateriasetornadoumarealidadesemaajudaeoapoiodemuitaspessoas,
deváriasformas. Emprimeirolugar,agradeçoàminhafamília,pelasincontáveishoras
emquemesubtraídeseuconvívioparamededicaraestetrabalho.
Agradeçotambématodososdocenteseestudantesqueutilizaramestematerial,
pelasinúmerascorreçõesesugestõesdemelhoria. Emparticular,meusagradecimentosa
AlexandreKoutton,AltairSantin,AndréWosniack,AntônioBarros,AntônioGonçalves,
CarlosRoland,CarlosSilla,DiogoOlsen,DorgivalGuedes,DouglasdaCosta,Fabiano
Beraldo, Francisco Miamoto, Fred Maranhão, Jeferson Amend, Marcos Laureano, Paulo
Resende,RafaelHamasaki,RafaelObelheiro,RichardReichardt,SilvanaRossetto,Tadeu
Ribeiro Reis, Thayse Solis, Thiago Ferreira, Thiago Vieira, Urlan de Barros e Vagner
Sacramento.
Desejoexpressarmeumaisprofundorespeitopelosautoresdosgrandesclássicos
de Sistemas Operacionais, como Andrew Tanenbaum e Abraham Silberschatz, que
iluminaram meus passos nesta área e que seguem como referências inequívocas e
incontornáveis.
Agradeçoà PontifíciaUniversidadeCatólica doParaná,onde fuiprofessorde
Sistemas Operacionais por 13 anos, pelas condições de trabalho que me permitiram
dedicar-meaestaempreitada. TambémàUniversidadeTecnológicaFederaldoParaná,
ondetrabalheide2011a2015,eàUFPR,ondetrabalhodesde2015,pelasmesmasrazões.
Dedico os capítulos sobre segurança computacional deste livro aos colegas
docentesepesquisadoresdoDepartamentodeTecnologiasdaInformaçãodaUniversi-
dadede MilãoemCrema,onde estiveemum pós-doutoradonoano de2009,com uma
/
bolsaCAPES MEC.OscapítulossobrevirtualizaçãosãodedicadosàequipeADEPTIRI-
/
SA INRIA,UniversitédeRennes1-França,naqualpudepassartrêsmesesagradáveis
/
eprodutivosduranteoinverno2007-08,comoprofessor pesquisadorconvidado.
CarlosMaziero
CuritibaPR,Abrilde2019
SistemasOperacionais: ConceitoseMecanismos (cid:13)c CarlosMaziero,2019
Sumário
Parte I: Introdução 1
1 Conceitosbásicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1 ObjetivosdeumSO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Abstraçãoderecursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Gerênciaderecursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Funcionalidades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Categorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 UmbrevehistóricodosSOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 EstruturadeumSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1 Elementosdosistemaoperacional . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Elementosdehardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Arquiteturadocomputador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Interrupçõeseexceções. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Níveisdeprivilégio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Chamadasdesistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3 ArquiteturasdeSOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1 Sistemasmonolíticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Sistemasmicronúcleo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Sistemasemcamadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4 Sistemashíbridos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5 Arquiteturasavançadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Máquinasvirtuais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Contêineres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Sistemasexonúcleo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Sistemasuninúcleo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Parte II: Gestão de tarefas 39
4 Oconceitodetarefa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1 Objetivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2 Oconceitodetarefa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3 Agerênciadetarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Sistemasmonotarefa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Omonitordesistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Sistemasmultitarefas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Sistemasdetempocompartilhado . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.4 Ciclodevidadastarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5 Implementaçãodetarefas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.1 Contextos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2 Trocasdecontexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3 Processos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Oconceitodeprocesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Gestãodeprocessos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Hierarquiadeprocessos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4 Threads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Definiçãodethread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Modelosdethreads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Programandocomthreads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.5 Usodeprocessosversusthreads . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6 Escalonamentodetarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.1 Tiposdetarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.2 Objetivosemétricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.3 Escalonamentopreemptivoecooperativo . . . . . . . . . . . . . . . . . . . . 72
6.4 Algoritmosdeescalonamentodetarefas. . . . . . . . . . . . . . . . . . . . . 72
First-Come,FirstServed(FCFS) . . . . . . . . . . . . . . . . . . . . . . . . . 73
Round-Robin(RR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
ShortestJobFirst(SJF). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
ShortestRemainingTimeFirst(SRTF) . . . . . . . . . . . . . . . . . . . . . . 76
Escalonamentoporprioridadesfixas(PRIOc,PRIOp) . . . . . . . . . . . . . . 77
Escalonamentoporprioridadesdinâmicas(PRIOd). . . . . . . . . . . . . . . . 79
Definiçãodeprioridades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Comparaçãoentreosalgoritmosapresentados. . . . . . . . . . . . . . . . . . . 82
Outrosalgoritmosdeescalonamento. . . . . . . . . . . . . . . . . . . . . . . . 82
6.5 Escalonadoresreais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
7 Tópicosemgestãodetarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
7.1 Inversãoeherançadeprioridades . . . . . . . . . . . . . . . . . . . . . . . . 86
Parte III: Interação entre tarefas 91
8 Comunicaçãoentretarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
8.1 Objetivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
8.2 Escopodacomunicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
8.3 Aspectosdacomunicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Comunicaçãodiretaouindireta . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Sincronismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Formatodeenvio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Capacidadedoscanais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Confiabilidadedoscanais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Númerodeparticipantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
9 Mecanismosdecomunicação. . . . . . . . . . . . . . . . . . . . . . . . . . . 103
9.1 Pipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
9.2 Filasdemensagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
9.3 Memóriacompartilhada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
10 Coordenaçãoentretarefas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
10.1 Oproblemadaconcorrência. . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Umaaplicaçãoconcorrente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Condiçõesdedisputa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
CondiçõesdeBernstein. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Seçõescríticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
10.2 Exclusãomútua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Inibiçãodeinterrupções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Asoluçãotrivial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Alternânciadeuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
OalgoritmodePeterson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Operaçõesatômicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
10.3 Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
11 Mecanismosdecoordenação . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
11.1 Semáforos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
11.2 Mutexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
11.3 Variáveisdecondição. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
11.4 Monitores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
12 Problemasclássicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
/
12.1 Produtores consumidores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Soluçãousandosemáforos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Soluçãousandovariáveisdecondição . . . . . . . . . . . . . . . . . . . . . . . 135
/
12.2 Leitores escritores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Soluçãosimplista. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Soluçãocompriorizaçãodosleitores . . . . . . . . . . . . . . . . . . . . . . . . 138
12.3 Ojantardosselvagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
12.4 Ojantardosfilósofos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
13 Impasses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
13.1 Exemplodeimpasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
13.2 Condiçõesparaimpasses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
13.3 Grafosdealocaçãoderecursos . . . . . . . . . . . . . . . . . . . . . . . . . . 150
13.4 Técnicasdetratamentodeimpasses . . . . . . . . . . . . . . . . . . . . . . . 151
Prevençãodeimpasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Impedimentodeimpasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Detecçãoeresoluçãodeimpasses. . . . . . . . . . . . . . . . . . . . . . . . . . 154
Parte IV: Gestão da memória 159
14 Conceitosbásicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
14.1 Tiposdememória. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
14.2 Amemóriadeumprocesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
14.3 Alocaçãodevariáveis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Alocaçãoestática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Alocaçãoautomática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Alocaçãodinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
14.4 Atribuiçãodeendereços . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
15 Hardwaredememória. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
15.1 Amemóriafísica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
15.2 Espaçodeendereçamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
15.3 Amemóriavirtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
15.4 Memóriavirtualporpartições. . . . . . . . . . . . . . . . . . . . . . . . . . . 173
15.5 Memóriavirtualporsegmentos. . . . . . . . . . . . . . . . . . . . . . . . . . 175
15.6 Memóriavirtualporpáginas . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Atabeladepáginas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Flagsdestatusecontrole. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Tabelasmultiníveis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Cachedatabeladepáginas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
15.7 Segmentosepáginas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
15.8 Localidadedereferências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
15.9 Espaçodeendereçamentodeumprocesso. . . . . . . . . . . . . . . . . . . . 189
16 Alocaçãodememória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
16.1 Alocadoresdememória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
16.2 Alocaçãobásica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
16.3 Fragmentação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Estratégiasdealocação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Desfragmentação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Fragmentaçãointerna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
16.4 OalocadorBuddy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
16.5 OalocadorSlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
16.6 Alocaçãonoespaçodeusuário . . . . . . . . . . . . . . . . . . . . . . . . . . 200
17 Paginaçãoemdisco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
17.1 EstendendoamemóriaRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
17.2 Apaginaçãoemdisco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Mecanismobásico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Eficiência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Critériosdeseleção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
17.3 Algoritmosclássicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Cadeiadereferências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
AlgoritmoÓtimo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
AlgoritmoFIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
AlgoritmoLRU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
AlgoritmoRANDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Comparaçãoentrealgoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
17.4 AproximaçõesdoalgoritmoLRU. . . . . . . . . . . . . . . . . . . . . . . . . 213
Algoritmodasegundachance . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
AlgoritmoNRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Algoritmodoenvelhecimento . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
17.5 Conjuntodetrabalho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
17.6 AanomaliadeBelady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
17.7 Thrashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
18 Tópicosemgestãodememória. . . . . . . . . . . . . . . . . . . . . . . . . . 224
18.1 Compartilhamentodememória. . . . . . . . . . . . . . . . . . . . . . . . . . 224
18.2 Copy-on-write(COW) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
18.3 Mapeamentodearquivoemmemória . . . . . . . . . . . . . . . . . . . . . . 227
/
Parte V: Gestão de entrada saída 230
/
19 Hardwaredeentrada saída . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
19.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
19.2 Componentesdeumdispositivo . . . . . . . . . . . . . . . . . . . . . . . . . 232
19.3 Barramentosdeacesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
19.4 Interfacedeacesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
19.5 Endereçamentodeportas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
19.6 Interrupções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
/
20 Softwaredeentrada saída. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
20.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
/
20.2 Arquiteturadesoftwaredeentrada saída . . . . . . . . . . . . . . . . . . . . 244
20.3 Classesdedispositivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
20.4 Driversdedispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
20.5 Estratégiasdeinteração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Interaçãocontroladaporprograma. . . . . . . . . . . . . . . . . . . . . . . . . 248
Interaçãocontroladaporeventos. . . . . . . . . . . . . . . . . . . . . . . . . . 250
Acessodiretoàmemória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
20.6 Tratamentodeinterrupções . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
21 Discosrígidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
21.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
21.2 Estruturafísica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
21.3 Interfacedeacesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
21.4 Escalonamentodeacessos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
21.5 SistemasRAID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Parte VI: Gestão de arquivos 270
22 Oconceitodearquivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
22.1 Elementosbásicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
22.2 Atributoseoperações. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
22.3 Formatosdearquivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Sequênciadebytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274