Organização de Computadores e Sistemas Operacionais
Compreender os conceitos de funções racionais, trigonométricas, exponencial e logaritmo, para utilizar no desenvolvimento de programas computacionais. Conhecer e utilizar a teoria de conjuntos e subconjuntos no desenvolvimento de banco de dados. Aplicar relações binárias, equivalentes e de ordem, para propor soluções em aplicações e sistemas, no desenvolvimento dos algoritmos.
Geração de Computadores
O estudo das gerações de computadores utiliza seminários preparados pelos alunos, cobrindo as evoluções da 1ª à 4ª geração. A abordagem da sala invertida promove aprofundamento prévio pelos alunos, facilitando a compreensão dos avanços tecnológicos sob a orientação do docente durante as explanações.
Representação da Informação
A disciplina aborda a representação da informação, incluindo dados estruturados e não estruturados, além de explorar os sistemas numéricos binário e decimal, com ênfase em suas conversões. O curso visa fornecer compreensão abrangente sobre a manipulação e representação eficaz de informações em contextos digitais.
Sistemas Numéricos
A disciplina abrange os sistemas numéricos octal e hexadecimal, explorando as conversões entre bases como octal, hexadecimal, binária e decimal. Além disso, inclui a capacidade de realizar conversões genéricas com outras bases numéricas, proporcionando uma compreensão abrangente dos sistemas numéricos.
Operações com Números Binários
A disciplina abrange operações fundamentais com números binários, incluindo adição, subtração, multiplicação e divisão. Os alunos adquirem habilidades essenciais para manipular eficientemente números binários em diversos contextos, como programação e sistemas digitais.
Sistemas Computacionais
A disciplina abrange uma introdução aos sistemas computacionais, abordando classificações por tipo e porte. Explora os componentes essenciais, como memória, processador e barramento, proporcionando uma compreensão abrangente da arquitetura de sistemas computacionais.
Memórias
A disciplina abrange o estudo de memórias em sistemas computacionais, abordando tipos, hierarquia, critérios de classificação, registradores, memória cache e principal. Além disso, incorpora o aprendizado de algoritmos para organização de cache e oferece conhecimentos relacionados ao cálculo de memória RAM.
Unidade Central de Processamento
A Unidade Central de Processamento (CPU) é abordada na disciplina, incluindo definições e conceitos, estrutura do processador, ciclo de processamento, e a análise do paralelismo de instruções, especificamente no contexto do pipeline.
Introdução aos Sistemas Operacionais
A disciplina aborda a introdução aos Sistemas Operacionais, revisando a arquitetura de computadores e definindo um Sistema Operacional (SO) como gestor de recursos e interface com o usuário. Explora tipos de interfaces (GUI e Shell), modos Kernel e usuário, a evolução dos SOs nas gerações de computadores, e conceitos fundamentais como processo, subprocessos, tabela de processos, espaço de endereçamento, sistema de arquivos, entrada/saída e chamadas de sistema. O objetivo é proporcionar uma visão abrangente dos sistemas operacionais.
Processos
A disciplina abrange uma introdução aos processos, explorando sua estrutura, que inclui contexto de hardware e software, espaço de endereçamento e bloco de controle de processo. Aborda os estados de um processo, suas mudanças de estado, e os processos CPU-bound e I/O-bound, bem como os processos em foreground e background. Também são discutidas formas de criação de processos, incluindo processos independentes, subprocessos e threads, juntamente com os processos do sistema operacional. O estudo inclui ainda a análise de sinais em processos.
Threads
A disciplina aborda threads com uma introdução ao ambiente monothread e multithread, explorando a programação multithread. Discute a arquitetura e implementação, abrangendo threads em modo usuário, modo kernel e modo híbrido, além de examinar o conceito de scheduler activations.
Sincronização
A disciplina aborda a sincronização e comunicação entre processos, destacando aplicações concorrentes e a especificação de concorrência em programas. Aborda problemas de compartilhamento de recursos, exclusão mútua com soluções de hardware e software, sincronização condicional, e utiliza semáforos e monitores. Também explora troca de mensagens e aspectos relacionados a deadlock, incluindo prevenção, detecção e correção dessas situações.
Gerência do processador
A disciplina abrange a gerência do processador, explorando suas funções básicas e critérios de escalonamento. Aborda escalonamentos tanto preemptivos quanto não preemptivos, incluindo FIFO, SJF, cooperativo, circular, por prioridades, circular com prioridades, por múltiplas filas e por múltiplas filas com realimentação. Examina também políticas de escalonamento em sistemas de tempo compartilhado e em sistemas de tempo real.
Gerenciamento de Memória Virtual
A disciplina explora o gerenciamento de memória virtual, iniciando com uma introdução e abordando o espaço de endereçamento virtual e mapeamento. Foca em memória virtual por paginação, incluindo políticas de busca e alocação de páginas, working set, algoritmos de substituição de páginas, tamanho de página, paginação de múltiplos níveis, translation lookaside buffer, proteção de memória e compartilhamento de memória. Também discute a memória virtual por segmentação, memória virtual por segmentação com paginação, técnicas de swapping e o conceito de thrashing.
Sistemas de Arquivos
A disciplina aborda sistemas de arquivos, incluindo a organização de arquivos, métodos de acesso, operações de entrada/saída e atributos associados. Explora diretórios, gestão do espaço livre em disco, alocação de espaço em disco através de métodos contíguos, encadeados e indexados. Aborda também mecanismos de proteção de acesso, como senha, grupos e listas de controle de acesso, além de discutir a implementação de caches.
Gerência de Dispositivos
A disciplina inicia com uma introdução à gerência de dispositivos, abordando o subsistema de entrada e saída, os device drivers, controladores de entrada e saída, além de dispositivos de entrada e saída. Foca especificamente em discos magnéticos, explorando temas como desempenho, redundância e proteção de dados.
Sistemas com Múltiplos Processadores
A disciplina abrange sistemas com múltiplos processadores, começando com uma introdução e explorando as vantagens e desvantagens dessa abordagem. Aborda o conceito de tempo em sistemas computacionais, diferenciação entre sistemas fortemente e fracamente acoplados, e destaca sistemas com multiprocessadores simétricos, incluindo a evolução e arquitetura desses sistemas. Também discute sistemas NUMA, clusters, sistemas operacionais de rede, e sistemas distribuídos, enfatizando conceitos como transparência, tolerância a falhas e a criação de uma imagem única do sistema.