Sistemas Operacionais - Conceitos e Mecanismos
✍ Scribed by Carlos Alberto Maziero
- Publisher
- UFPR
- Year
- 2019
- Tongue
- Portuguese
- Leaves
- 470
- Category
- Library
No coin nor oath required. For personal study only.
✦ Table of Contents
Introdução
Conceitos básicos
Objetivos de um SO
Abstração de recursos
Gerência de recursos
Funcionalidades
Categorias
Um breve histórico dos SOs
Estrutura de um SO
Elementos do sistema operacional
Elementos de hardware
Arquitetura do computador
Interrupções e exceções
Níveis de privilégio
Chamadas de sistema
Arquiteturas de SOs
Sistemas monolíticos
Sistemas micronúcleo
Sistemas em camadas
Sistemas híbridos
Arquiteturas avançadas
Máquinas virtuais
Contêineres
Sistemas exonúcleo
Sistemas uninúcleo
Gestão de tarefas
O conceito de tarefa
Objetivos
O conceito de tarefa
A gerência de tarefas
Sistemas monotarefa
O monitor de sistema
Sistemas multitarefas
Sistemas de tempo compartilhado
Ciclo de vida das tarefas
Implementação de tarefas
Contextos
Trocas de contexto
Processos
O conceito de processo
Gestão de processos
Hierarquia de processos
Threads
Definição de thread
Modelos de threads
Programando com threads
Uso de processos versus threads
Escalonamento de tarefas
Tipos de tarefas
Objetivos e métricas
Escalonamento preemptivo e cooperativo
Algoritmos de escalonamento de tarefas
First-Come, First Served (FCFS)
Round-Robin (RR)
Shortest Job First (SJF)
Shortest Remaining Time First (SRTF)
Escalonamento por prioridades fixas (PRIOc, PRIOp)
Escalonamento por prioridades dinâmicas (PRIOd)
Definição de prioridades
Comparação entre os algoritmos apresentados
Outros algoritmos de escalonamento
Escalonadores reais
Tópicos em gestão de tarefas
Inversão e herança de prioridades
Interação entre tarefas
Comunicação entre tarefas
Objetivos
Escopo da comunicação
Aspectos da comunicação
Comunicação direta ou indireta
Sincronismo
Formato de envio
Capacidade dos canais
Confiabilidade dos canais
Número de participantes
Mecanismos de comunicação
Pipes
Filas de mensagens
Memória compartilhada
Coordenação entre tarefas
O problema da concorrência
Uma aplicação concorrente
Condições de disputa
Condições de Bernstein
Seções críticas
Exclusão mútua
Inibição de interrupções
A solução trivial
Alternância de uso
O algoritmo de Peterson
Operações atômicas
Problemas
Mecanismos de coordenação
Semáforos
Mutexes
Variáveis de condição
Monitores
Problemas clássicos
Produtores/consumidores
Solução usando semáforos
Solução usando variáveis de condição
Leitores/escritores
Solução simplista
Solução com priorização dos leitores
O jantar dos selvagens
O jantar dos filósofos
Impasses
Exemplo de impasse
Condições para impasses
Grafos de alocação de recursos
Técnicas de tratamento de impasses
Prevenção de impasses
Impedimento de impasses
Detecção e resolução de impasses
Gestão da memória
Conceitos básicos
Tipos de memória
A memória de um processo
Alocação de variáveis
Alocação estática
Alocação automática
Alocação dinâmica
Atribuição de endereços
Hardware de memória
A memória física
Espaço de endereçamento
A memória virtual
Memória virtual por partições
Memória virtual por segmentos
Memória virtual por páginas
A tabela de páginas
Flags de status e controle
Tabelas multiníveis
Cache da tabela de páginas
Segmentos e páginas
Localidade de referências
Espaço de endereçamento de um processo
Alocação de memória
Alocadores de memória
Alocação básica
Fragmentação
Estratégias de alocação
Desfragmentação
Fragmentação interna
O alocador Buddy
O alocador Slab
Alocação no espaço de usuário
Paginação em disco
Estendendo a memória RAM
A paginação em disco
Mecanismo básico
Eficiência
Critérios de seleção
Algoritmos clássicos
Cadeia de referências
Algoritmo Ótimo
Algoritmo FIFO
Algoritmo LRU
Algoritmo RANDOM
Comparação entre algoritmos
Aproximações do algoritmo LRU
Algoritmo da segunda chance
Algoritmo NRU
Algoritmo do envelhecimento
Conjunto de trabalho
A anomalia de Belady
Thrashing
Tópicos em gestão de memória
Compartilhamento de memória
Copy-on-write (COW)
Mapeamento de arquivo em memória
Gestão de entrada/saída
Hardware de entrada/saída
Introdução
Componentes de um dispositivo
Barramentos de acesso
Interface de acesso
Endereçamento de portas
Interrupções
Software de entrada/saída
Introdução
Arquitetura de software de entrada/saída
Classes de dispositivos
Drivers de dispositivos
Estratégias de interação
Interação controlada por programa
Interação controlada por eventos
Acesso direto à memória
Tratamento de interrupções
Discos rígidos
Introdução
Estrutura física
Interface de acesso
Escalonamento de acessos
Sistemas RAID
Gestão de arquivos
O conceito de arquivo
Elementos básicos
Atributos e operações
Formatos de arquivos
Sequência de bytes
Arquivos de registros
Arquivos de texto
Arquivos de código
Identificação de conteúdo
Arquivos especiais
Uso de arquivos
Introdução
Interface de acesso
Descritores de arquivos
A abertura de um arquivo
Formas de acesso
Acesso sequencial
Acesso aleatório
Acesso mapeado em memória
Acesso indexado
Compartilhamento de arquivos
Travas em arquivos
Semântica de acesso
Controle de acesso
Interface de acesso
Sistemas de arquivos
Introdução
Arquitetura geral
Espaços de armazenamento
Discos e partições
Montagem de volumes
Gestão de blocos
Blocos físicos e lógicos
Caching de blocos
Alocação de arquivos
Alocação contígua
Alocação encadeada simples
Alocação encadeada FAT
Alocação indexada simples
Alocação indexada multinível
Análise comparativa
Gestão do espaço livre
Diretórios e atalhos
Diretórios
Caminhos de acesso
Implementação de diretórios
Atalhos
Implementação de atalhos
Tradução dos caminhos de acesso
Segurança
Conceitos básicos de segurança
Propriedades e princípios de segurança
Ameaças
Vulnerabilidades
Ataques
Malwares
Infraestrutura de segurança
Fundamentos de criptografia
Terminologia
Cifradores, chaves e espaço de chaves
O cifrador de Vernam-Mauborgne
Criptografia simétrica
Cifradores de substituição e de transposição
Cifradores de fluxo e de bloco
O acordo de chaves de Diffie-Hellman-Merkle
Criptografia assimétrica
Criptografia híbrida
Resumo criptográfico
Assinatura digital
Certificado de chave pública
Infraestrutura de chaves públicas
Autenticação
Introdução
Usuários e grupos
Estratégias de autenticação
Senhas
Senhas descartáveis
Técnicas biométricas
Desafio/resposta
Certificados de autenticação
Infraestruturas de autenticação
Kerberos
Controle de acesso
Terminologia
Políticas, modelos e mecanismos
Políticas discricionárias
Matriz de controle de acesso
Tabela de autorizações
Listas de controle de acesso
Listas de capacidades
Políticas obrigatórias
Modelo de Bell-LaPadula
Modelo de Biba
Categorias
Políticas baseadas em domínios e tipos
Políticas baseadas em papéis
Mecanismos de controle de acesso
Infraestrutura básica
Controle de acesso em UNIX
Controle de acesso em Windows
Outros mecanismos
Mudança de privilégios
Mecanismos de auditoria
Introdução
Coleta de dados
Análise de dados
Auditoria preventiva
Virtualização
O conceito de virtualização
Um breve histórico
Interfaces de sistema
Compatibilidade entre interfaces
Virtualização de interfaces
Virtualização versus abstração
Tipos de máquinas virtuais
Critérios de classificação
Máquinas virtuais de sistema
Máquinas virtuais de sistema operacional
Máquinas virtuais de processo
Construção de máquinas virtuais
Definição formal
Suporte de hardware
Níveis de virtualização
Técnicas de virtualização
Emulação completa
Virtualização da interface de sistema
Tradução dinâmica
Paravirtualização
Aspectos de desempenho
Migração de máquinas virtuais
Virtualização na prática
Aplicações da virtualização
Ambientes de máquinas virtuais
VMware
Xen
QEMU
KVM
Docker
JVM
FreeBSD Jails
Valgrind
User-Mode Linux
Apêndices
O descritor de tarefa do Linux
📜 SIMILAR VOLUMES