Sistemas Operacionais
Exames: Sistemas Operacionais. Pesquise 862.000+ trabalhos acadêmicosPor: ricardohollen • 11/6/2013 • 9.438 Palavras (38 Páginas) • 381 Visualizações
SUMÁRIO
1 INTRODUÇÃO E HISTÓRICO 4
1.1 HISTÓRICO 7
1.1.1 O Monitor Residente 10
1.1.2 Operação Off-Line 13
1.1.3 Buferização 15
1.1.4 Spooling 16
1.1.5 Multiprogramação 17
1.1.6 Tempo Compartilhado 18
1.2 OS CONCEITOS DE INTERRUPÇÃO E TRAP 22
2 PROCESSOS 25
2.1 O NÚCLEO DO SISTEMA OPERACIONAL 31
2.1.1 Um Resumo das Funções do Núcleo 32
2.2 ESCALONAMENTO DE PROCESSOS 32
2.2.1 Escalonamento FCFS ou FIFO 34
2.2.2 Escalonamento Round Robin (RR) 35
2.2.3 Escalonamento com Prioridades 36
2.2.4 Multilevel Feedback Queues 38
2.2.5 Escalonamento com Prazos 41
2.2.6 Escalonamento Shortest-Job-First (SJF) 42
2.3 COMUNICAÇÃO ENTRE PROCESSOS (IPC) 43
2.3.1 Processamento Paralelo 44
2.3.1.1 Comandos PARBEGIN e PAREND (Dijkstra) 45
2.3.1.2 Comandos FORK e JOIN (Conway e Dennis) 47
2.3.2 Exclusão Mútua 47
2.3.3 Regiões Críticas 48
2.3.4 Primitivas de Exclusão Mútua 49
2.3.5 Implementação de Primitivas de Exclusão Mútua 50
2.3.6 Exclusão Mútua para N Processos 52
2.3.7 Semáforos 52
2.3.7.1 Sincronização de Processos com Semáforos 54
2.3.7.2 A Relação Produtor-Consumidor 55
2.3.7.3 Semáforos Contadores 57
2.3.7.4 Implementando Semáforos, P e V 58
2.3.8 Monitores 59
2.3.9 Passagem de Mensagens 65
2.4 DEADLOCKS E ADIAMENTO INDEFINIDO 65
2.4.1 Exemplos de Deadlocks 66
2.4.2 Um Deadlock de Tráfego 66
2.4.3 Um Deadlock Simples de Recursos 67
2.4.4 Deadlock em Sistemas de Spooling 67
2.4.5 Adiamento Indefinido 68
2.4.6 Conceitos de Recursos 69
2.4.7 Quatro Condições Necessárias para Deadlock 71
2.4.8 Métodos para Lidar com Deadlocks 71
2.4.9 Prevenção de Deadlocks 73
2.4.9.1 Negando a Condição “Mutual Exclusion” 73
2.4.9.2 Negando a Condição “Hold and Wait” 73
2.4.9.3 Negando a Condição “No Preemption” 74
2.4.9.4 Negando a Condição “Circular Wait” 74
3 GERENCIAMENTO DE MEMÓRIA 76
3.1 CONCEITOS BÁSICOS 77
3.1.1 Ligação de Endereços (Address Binding) 77
3.1.2 Carregamento Dinâmico (Dynamic Loading) 80
3.1.3 Ligação Dinâmica 81
3.1.4 Overlays 82
3.2 ENDEREÇAMENTO LÓGICO E ENDEREÇAMENTO FÍSICO 83
3.3 SWAPPING 85
3.4 ALOCAÇÃO CONTÍGUA DE MEMÓRIA 89
3.4.1 Alocação com Partição Única 90
3.5 MEMÓRIA VIRTUAL 94
3.5.1 Paginação 94
3.5.2 Algoritmos de Paginação 94
3.5.3 Segmentação 94
PREFÁCIO
O texto existente nesta apostila não é de minha autoria. Na verdade, trata-se de uma síntese de vários autores renomados na área de sistemas operacionais, como Tannenbaum, Deitel, Silberschatz, entre outros.
Entretanto, alguns exemplos e analogias foram adicionados aos textos originais para facilitar a compreensão do assunto. Este material também não se propõe a substituir a riqueza presente nos livros publicados pelos autores mencionados, mas sim, servir como apoio às aulas da disciplina de Sistemas Operacionais do Curso de Ciência da Computação desta Universidade.
Dada a grande quantidade de trechos extraídos praticamente na íntegra de alguns livros, fica impraticável referenciar todos eles. Em compensação, os livros citados na bibliografia, ao final desta apostila, constituem as fontes principais do texto que a partir daqui se inicia.
Espero que realmente este grande “resumo” possa ser útil para que os alunos da disciplina compreendam os aspectos mais importantes dos Sistemas Operacionais.
Prof. Celso Kopp Webber
1 INTRODUÇÃO E HISTÓRICO
Podemos dizer sem receio que um computador sem software não passa de peso para papel. Talvez a prova mais evidente nos dias atuais é o sucesso nos sistemas operacionais da Microsoft Corp. O grande motivo deste sucesso, apesar de muitas pessoas de renome afirmarem que os sistemas operacionais da Microsoft não são tecnicamente bons, deve-se à enorme quantidade de software disponível para estes sistemas operacionais.
Mas afinal, se é importante para as pessoas a existência de bons softwares que ajudem nos seus trabalhos, como pode o sistema operacional influenciar na qualidade e na disponibilidade de tais softwares?
Para responder esta pergunta, precisamos definir o que é um sistema operacional. Ele nada mais é do que um programa de computador, que após o processo de inicialização (boot) da máquina, é o primeiro a ser carregado, e que possui duas tarefas básicas:
• gerenciar os recursos de hardware de forma que sejam utilizados da melhor forma possível, ou seja, “tirar” o máximo proveito da máquina fazendo com que seus componentes
...