

Sistemas Operacionais
Entender e aplicar os conceitos de Organização de Computadores. Aplicar conceitos de Sistemas Operacionais no desenvolvimento de Softwares. Conhecer e aplicar conceitos de Theards e gerenciamento de memórias, no desenvolvimento de sistemas e projetos.
Geração de Computadores

A primeira geração utilizou válvulas eletrônicas, seguida pela segunda geração com transistores. A terceira geração introduziu circuitos integrados, enquanto a quarta viu o surgimento dos microprocessadores. A quinta geração testemunhou a popularização dos computadores pessoais, avanços em software e a ascensão da computação móvel e em nuvem. Cada fase trouxe melhorias significativas.
Representação da Informação

A representação da informação em sistemas operacionais abrange a forma como dados são organizados e armazenados. Isso inclui códigos de caracteres, formatos numéricos, organização de memória, sistemas de arquivos e conjunto de instruções da CPU. Esses aspectos são fundamentais para garantir a correta processamento de dados pelo hardware e software do sistema operacional.
Sistemas Numéricos

Sistemas numéricos são métodos de representação de números, sendo os mais comuns o decimal (base-10), binário (base-2), octal (base-8) e hexadecimal (base-16). Cada sistema utiliza uma base e dígitos específicos para expressar valores. A conversão entre sistemas numéricos é comum em computação, facilitando a representação eficiente de dados em diferentes contextos.
Operações com Números Binários

As operações com números binários envolvem as operações matemáticas básicas, como adição, subtração, multiplicação e divisão, aplicadas a números representados no sistema binário (base-2). Essas operações são fundamentais em aritmética binária e são amplamente utilizadas em sistemas de computação. Essencial para o desenvolvimento de algoritmos e manipulação de dados binários.
Sistemas Computacionais

Conjuntos complexos de hardware, software e redes que colaboram para realizar operações de computação. Incluem componentes hardware, (software), redes para comunicação, diversas arquiteturas, medidas de segurança, manutenção contínua e tecnologias emergentes. Esses sistemas desempenham um papel central em diversas áreas, sendo essenciais para a sociedade moderna.
Memórias

Memórias em computação são dispositivos que armazenam dados temporária ou permanentemente. Exemplos de Memóra: RAM; ROM; Memória secundária, como discos rígidos e SSDs; Memória cache de disco melhora o acesso a dados em discos. Essas memórias desempenham papéis cruciais, equilibrando velocidade e capacidade de armazenamento conforme necessário.
Unidade Central de Processamento

A CPU é o componente principal de um computador responsável por executar instruções de programas e processar dados. Composta por núcleos, cada um com registradores, cache, unidade de controle e uma Unidade Lógica e Aritmética (ULA), a CPU interpreta e executa instruções armazenadas na memória, desempenhando um papel crucial no funcionamento do computador como o "cérebro" do sistema.
Introdução aos Sistemas Operacionais

Explora diferentes tipos de interfaces (GUI e Shell), os modos Kernel e usuário, a evolução dos sistemas operacionais ao longo das gerações de computadores, além de 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 é uma compreensão dos sistemas operacionais.
Threads

O curso explora tópicos relacionados a threads, iniciando com uma introdução aos ambientes monothread e multithread, com foco na programação multithread. Analisa a arquitetura e implementação, abordando threads em modos usuário, kernel e híbrido, enquanto também investiga o conceito de ativações de escalonamento. O uso eficiente evita problemas de concorrência .
Sincronização

Sincronização em computação refere-se à coordenação entre threads ou processos para assegurar a consistência e integridade dos dados compartilhados. Envolve conceitos como mutexes, semáforos, barreiras, sinalização, monitores, exclusão mútua. Essas práticas são essenciais para prevenir problemas e assegurar que operações concorrentes ocorram de maneira organizada.
Gerência do processador

Prática de coordenar e otimizar a execução de processos em um sistema computacional. Isso envolve o uso eficiente do processador, alocação de tempo de CPU para diferentes tarefas e a implementação de estratégias de escalonamento para garantir a equidade e eficiência na execução de processos concorrentes. Essa prática é fundamental para o desempenho do sistema operacional.
Gerência de Memória

Refere-se ao conjunto de práticas utilizadas para controlar e otimizar o uso da memória em um sistema computacional. Isso inclui a alocação eficiente de espaço na memória para processos em execução, a liberação de espaço quando necessário, e o gerenciamento de conflitos de acesso concorrente a regiões de memória compartilhadas. Garante o aproveitamento dos recursos de memória.
Processos

Inclui o contexto de hardware e software, o espaço de endereçamento e o bloco de controle de processo. Explora os estágios de um processo, suas transições de estado e as distinções entre processos orientados pela CPU e E/S, assim como entre processos em primeiro plano e segundo plano. Examina processos individuais, subprocessos, threads e análise de sinai.
Sistemas com Múltiplos Processadores

Analisa sistemas com múltiplos processadores, com suas vantagens e desvantagens. Aborda o conceito de tempo, diferenciação entre sistemas fortemente e fracamente acoplados, sistemas com multiprocessadores simétricos, incluindo a evolução e arquitetura desses sistemas. Enfatiza conceitos como transparência, tolerância a falhas e a criação de uma imagem única do sistema.
Sistemas de Arquivos

Inclui 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.