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
Debates Estruturados
O Debate Estruturado permite aproximar o estudante de Sistemas Operacionais da produção científica que está na vanguarda da área. Há um índice de aulas de Sistemas Operacionais conduzidas usando Debates Estruturados nos últimos anos. No debate são discutidos tópicos emergentes, que ainda não estão consolidados em livros-texto. O debate consiste em uma fase de preparação, com a leitura e fichamento de dois artigos científicos, e uma fase de execução, com uma dinâmica de parlamento inglês realizada em aula. A inspiração para os debates conduzidos na disciplina vem do artigo científico "Debate Estruturado: Uma Estratégia Pedagógica para Ensino e Aprendizagem de Valores Humanos em Interação Humano-Computador"; ele descreve como essa dinâmica foi criada e como ela é conduzida.
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”.