Sistemas Operacionais (SO)
Material do professor Lesandro Ponciano . Atualizado em dezembro de 2024.
Notas de Aula
- Nivelamento em Arquiteturas dos Sistemas de Computação. Revisão de conceitos associados a hierarquia de memória, processamento e armazenamento. Contextualização de taxonomias de arquiteturas de sistemas computacionais.
- Contextualização e Funcionamento de Sistemas Operacionais. Apresentação de conceitos básicos associados à interface com o usuário, modo usuário e modo núcleo, chamadas de sistemas e tipos de sistemas operacionais.
- Projeto e Estruturas de Sistemas Operacionais. Análise das estruturas de Sistemas Operacionais: Simples, Em Camadas, Microkernels, Em Módulos. Discussão do papel dos sistemas operacionais no contexto de máquinas virtuais..
- Conceitos Fundamentais às Gerências Implementadas pelo Sistema Operacional. Introdução aos conceitos de Multiprogramação, Memória Virtual, Interrupções e Temporização em Sistemas Operacionais.
- Conceito, Estrutura, Estado e Contexto de Processos. Apresentação de "processos" em sistemas operacionais: Composição na memória, estados do seu ciclo de vida, bloco de controle de um processo (PCB), Threads e Contexto.
- Criação e Encerramento de Processos. Análise da criação de encerramento de processos via código, árvore de processos, identificador de processos e ataque de negação de serviço baseado na criação de processos.
- Threads. Contextualização de threads: Estrutura, Tipos, Criação e Encerramento. Mapeamento de threads do usuário e threads do núcleo: Muitos-para-Um, Um-para-Um, Muitos-para-Muitos.
- Mecanismo de Escalonamento. Análise do escalonador de longo prazo e do escalonador de curto prazo. Impacto de processos intensivos em E/S e intensivos em CPU. Diferenciação do escalonamento com e sem preempção.
- Políticas de Escalonamento da CPU. Exemplo de execução os escalonadores "O primeiro a chegar é o primeiro a ser servido" (FCFS), "O menor job primeiro" (SJF), "Escalonamento com Prioridades" e "Round-Robin" (RR).
- Sincronização. Contextualização da Comunicação Interprocessos (IPC). Exemplificação de seção crítica, condição e corrida, exclusão mútua, espera ocupada e deadlock.
- Vinculação de Endereços na Gerência da Memória Principal. Distinção entre endereços físicos e lógicos. Mapeamento lógico-físico pela MMU simples. Análise da vinculação com relocação e carga dinâmica.
- Alocação de Memória Contígua e o Problema da Fragmentação da Memória. Análise dos esquemas de particionamento da memória: simples, estático (MFT) e dinâmico (MVT). Introdução à fragmentação interna e externa na memória.
- Esquemas de Paginação e Segmentação. Introdução aos conceitos de páginas, segmentos e quadros. Análise do mapeamento e endereços lógicos em endereços físicos em paginação. Tabela de páginas e segmentos.
- Memória Virtual: Algoritmos de Substituição de Páginas. Análise da substituição de páginas em memória virtual empregando os algoritmos first in, first out (FIFO), ótimo (OPT), Least Recently Used (LRU), Least-frequently-used (LFU), Most-frequently-used (MFU).
- Alocação de Quadros da Memória. Análise dos efeitos do tamanho de páginas e quadros. Cálculo da distribuição de quadros aos processos pela alocação igual versus proporcional.
- Interface do Sistema de Arquivos. Introdução aos tipos abstratos de dados "arquivo" e "diretório". Organização e diretório de "Um Nível", "Dois Níveis", "Árvore", "Grafo Acíclico" e Grafo Geral"
- Implementação do Sistema de Arquivos. Estratégias de implementação de diretórios: lista linear e tabela hash. Estruturas de alocação de espaço em disco: contígua, encadeada e indexada. Gerenciamento de espaços livres: vetor de bits, lista encadeada, agrupamento e contagem.
- Estrutura de Armazenamento de Massa: Confiabilidade e Desempenho. Dispositivo em Network-attached Storage (NAS), Storage Area Network (SAN) e confiabilidade e desempenho por meio de Redundant Arrays of Independent Disks (RAID).
- Escalonamento do Disco. Análise de métricas de desempenho e entrada e saída (E/S) e do escalonamento do disco por meio dos algoritmos FCFS, SSTF, SCAN, C-SCAN e LOOK.
- Gerência de Entrada e Saída (E/S). Contextualização de barramentos (bus), controladores e device drivers na operação e entrada e saída. Análise de questões de proteção e desempenho associadas a entrada e saída.
Práticas de Implementação
Práticas de implementação de algoritmos e estruturas de dados são realizadas para melhorar a compreensão e fixação de políticas e mecanismos implementados pelo sistema operacional. As seguintes práticas são especialmente relevantes à unidade curricular.>
- Prática de Implementação: Simulação do Escalonamento de Tarefas em Sistemas Monoprocessados
- Prática de Implementação: Simulação da Alocação da Memória e Substituição de Páginas
- Prática de Implementação: Simulação de Substituição de Páginas em Memória Virtual
- Prática de Implementação: MY Micro File System (mymfs)
- Prática de Implementação: Simulação do Escalonamento do Disco
Cartão de Suporte de SO
Um cartão de suporte (reference card ou support card) foi criado para ser usado na disciplina. O cartão está disponível em Cartão de Suporte de Sistemas Operacionais. O processo de criação de cartões de suporte é descrito no artigo “HCI Support Card: Creating and Using a Support Card for Education in Human-Computer Interaction”.