EA550 - Introdução a Software de Sistema
Turma: A -
Período: 1/2026 -
Tipo Período: 1o. semestre -
Disciplina:
Obrigatória 4 créditos.
-
Idioma: Português
Ementa: Montadores, ligadores e carregadores. Compiladores: análises léxica, sintática e semântica, geração de código e otimização. Processos e threads (concorrência, regiões críticas, escalonamento). Endereçamento e gerenciamento de memória real e virtual (paginação, segmentação). Sistemas de arquivos (hierarquia, proteção, organização, segurança). Gerenciamento de entrada/saída. Conceitos básicos sobre RTOS (Sistemas Operacionais de Tempo Real). Estudos de caso.
Conteúdo Programático: 1) Introdução ao conteúdo da disciplina 1.1) Visão geral sobre os diferentes tipos de software: de sistema e de aplicação 1.2) Ciclo de vida de um programa desde a compilação até a execução com suporte do SO 2) Compiladores 2.1) Introdução - Tarefas básicas do compilador - Sistemas formais - Gramáticas livres de contexto e regulares 2.2) Análise Léxica - Conceitos fundamentais - Expressões regulares e autômatos finitos - Algoritmo de análise léxica - Ferramentas para análise léxica: exemplos 2.3) Análise Sintática - Estruturas gramaticais e gramáticas livres de contexto - Derivações canônicas e árvores sintáticas - Algoritmos de análise sintática (parsing): Shift-Reduce etc. - Ferramentas para análise sintática: exemplos 2.4) Análise Semântica - Verificação de tipos e coerência de dados e variáveis - Verificação do fluxo de controle - Conversão de tipos - Exemplos 2.5) Geração de Código - Estratégias de geração de código intermediário - Códigos de três endereços - Notação pós-fixa - Exemplos de geração de código 2.6) Otimização - Otimização estática e dinâmica - Otimização dependente e independente de máquina - Exemplos de transformações para eficiência 3) Montadores, Ligadores e Carregadores 3.1) Montadores - Tipos de linguagem simbólica por processador - Interação do montador com compiladores - Estrutura de programas em linguagem simbólica - Macroinstruções e seu processamento - Tabelas auxiliares MOT e POT para o processo de montagem - Montagem em duas etapas - Exemplos de montagem 3.2) Ligadores - Função dos ligadores na criação de executáveis - Resolução de endereços e símbolos - Ligação estática vs. ligação dinâmica - Exemplos de ligação 3.3) Carregadores - Funções dos carregadores e seu papel na execução de programas - Tipos de carregador: absoluto e relocável - Carregador de ligação direta - Carregamento estático e dinâmico - Bibliotecas estáticas e dinâmicas - Exemplos de interações carregador-ligador 4) Sistemas Operacionais 4.1) Introdução - Conceitos gerais e definições de SO - Relacionamento SO-hardware - Estrutura básica de um SO - Conceitos sobre SO de tempo real (RTOS) 4.2) Gerenciamento de Processos - Conceitos de trocessos - Criação e escalonamento de processos - Prioridades estáticas e dinâmicas - Sinalização e comunicação interprocessos - Sincronização interprocessos: concorrência, regiões críticas, semáforo e mutex - Estruturas de dados utilizadas na gestão de processos - Exemplos de aplicações com múltiplos processos 4.3) Gerenciamento de Threads - Motivação para threads - Diferenças entre processos e threads - Criação e escalonamento de threads - Modelos de concorrência e sua implementação - Comunicação e sincronização entre threads - Threads em RTOS - Exemplos de aplicações com múltiplas threads 4.4) Gerenciamento de memória principal - Objetivos: organização e proteção dos espaços físico e virtual - Espaço de endereçaento - Gerenciamento de espaço livre - Troca de processos e a memória virtual - Paginação de memória - Tabela de páginas e TLB (Translation Lookaside Buffer) - Unidade de gerenciamento de memória (MMU) - Algoritmos de troca de páginas - Segmentação de memória 5) Gerenciamento de Arquivos 5.1) Arquivos - Estruturas - Nomeação - Tipos - Atributos - Operações 5.2) Diretórios - Implementação em nível único - Implementação em nível hierárquico - Caminhos - Operações 5.3) Sistemas de Arquivos - Operações básicas: criação, leitura, escrita e exclusão - Estruturas e algoritmos para gerenciamento de espaço físico - Compartilhamento de arquivos: proteções - Mapeamento em memória principal (RAM) - Verificação de consistência, logs e journaling - Desfragmentação - Exemplos 6) Gerenciamento de Entrada/Saída 6.1) Princípios do hardware de E/S - Dispositivos: tipos e características - Controladores de dispositivos - E/S mapeada em memória - Acesso Direto à Memória (DMA) - Sistemas redundantes (RAID) 6.2) Princípios do software de E/S - Programação de dispositivos: drivers e interfaces - E/S programada - E/S orientada a interrupções - E/S usando DMA - E/S independente de dispositivo 6.3) Exemplos de sistemas de E/ S - Discos - Relógios - Teclado - Mouse 7) Conceitos Básicos sobre RTOS (Sistemas Operacionais de Tempo Real) 7.1) Definição e Características de RTOS - Diferenças entre RTOS e sistemas operacionais convencionais - Exemplos de aplicações em tempo real - Aplicações de laço único - Aplicações contrladas por interrupções - Aplicações multitarefas cooperativas - Aplicações multitarefas preemptivas - Arquitetura em camadas: tempo real, executiva, aplicação - Escalonamento em tempo real 8) Estudos de Caso 8.1) Análises e discussões sobre Sistemas Operacionais modernos - Estudo de casos de sistemas operacionais populares (Linux, Windows etc.) - Comparação de arquiteturas e abordagens de gerenciamento - Desenvolvimento de um sistema operacional: desafios e soluções
Plano de Desenvolvimento:
Conforme IN CCG nº 02/2025 - Cláusula de Honestidade e Lisura Acadêmica
Todas as atividades relacionadas às disciplinas devem ser realizadas em conformidade com as orientações fornecidas pelos docentes e com o devido rigor ético.
Caso o(a) docente responsável, no exercício de sua liberdade de cátedra, forme convicção acerca da ausência de lisura ou de condições adequadas para a realização da atividade avaliativa, poderá atribuir nota zero, seja para a atividade única ou, conforme o caso, para o conjunto de atividades do semestre. A ocorrência deverá ser fundamentada e comunicada à Coordenação de Curso de Graduação, podendo o(a) estudante estar sujeito a processo administrativo.
Bibliografia: - Ricarte, Ivan. Introdução à compilação. Elsevier, Rio de Janeiro, RJ, Brasil. ISBN 9788535230673. - Tanenbaum, Andrew S.; Bos, Herbert, Sistemas Operacionais Modernos (Modern Operating Systems), 4ª edição, Pearson, ISBN 978-85-430-0567-6 - Cardoso, Eleri; Henriques, Marco A.; Introdução aos Sistemas Operacionais, notas de aula, DCA-FEEC-Unicamp, 2024
Critério de Avaliação:
Bibliografia complementar: