Sistemas Operacionais: Processos, Memória e Arquivos
Conceitos Básicos de Sistemas Operacionais
Paralelismo: Coexistência de processos.
Presenças: Paralelos entre os processos relacionados que requerem sincronização.
Calendário: A correspondência entre a ordem temporal, derivada dos processos de comunicação entre eles, necessária para garantir a exclusão mútua.
Threads (Fios): Relação de dominação e dependência entre o sistema operacional e os processos.
Variáveis Compartilhadas: Variável que pode ser atualizada por dois ou mais processos.
Seção Crítica: Localização do programa onde uma variável compartilhada é acessada.
Primitiva: Estruturas de controle de paralelismo ou simultaneidade; estado composto por pares de afirmações que indicam, respectivamente, a divisão e fusão de linha de comando (Parbegin / Cobegin-Coend).
Exclusão Mútua: A técnica de programação usada para executar a seção crítica de um programa.
Tipos de Algoritmos de Exclusão Mútua
Espera Ativa: Algoritmos que baseiam seu trabalho no estabelecimento da espera para entrada na seção crítica com um laço a ser quebrado no momento de certa condição. Chamada de espera ativa porque o processo não é bloqueado durante a execução, competindo constantemente pelo processador. Por esta razão, estes algoritmos sobrecarregam o sistema desnecessariamente (Maia e outros, p. 82).
Algoritmo de Dekker: Baseia o desempenho em uma tabela lógica bidimensional de dois elementos (switches).
Mutex: Utiliza um interruptor chamado Mutex através do qual ocorre a sincronização.
Alternância: Utiliza uma variável chamada Tempo para sincronia.
Mecanismos de Espera e Sincronização
Espera Ativa (Continuação): Algoritmos que aguardam para entrar na seção crítica bloqueando o processo, certificando-se de concorrer ao processador até a condição de liberação (Maia e outros, p. 82).
Semáforos: Baseiam a operação em uma variável inteira utilizada como contador de pedidos de entrada em uma seção crítica, compartilhada por todos os processos. Desenhado por Dijkstra (1965), é chamado de "luz" pela capacidade de gerenciar o tráfego de processos que desejam acessar dados compartilhados.
Regiões Críticas: Permitem que dados compartilhados sejam acessados apenas de determinadas áreas, sendo transparentes para o resto. Apresentam pequenos problemas de tempo e não permitem múltiplas operações de leitura simultâneas.
Regiões Críticas Condicionais: Melhoria do método anterior para corrigir problemas de tempo.
Monitores: Diferente dos mecanismos acima, onde o programador deve prover explicitamente o método de sincronização, os monitores garantem a exclusão mútua no compartilhamento de dados sem intervenção explícita do programador. Atendem funções sobre dados compartilhados em um único módulo e devem ser suportados pela linguagem (ex: Modula e Ada).
Contadores de Eventos: Baseados em uma variável inteira com operações de acesso, permitindo atividades sincronizadas sem impor exclusão mútua.
Mensagens: Mecanismo cooperativo baseado em uma área de memória compartilhada gerenciada pelo SO, oculta aos processos. Um processo envia uma mensagem para um tanque na memória e o receptor a lê.
Comunicação por Mensagens:
- Direta: Processos enviam e recebem mensagens diretamente entre si.
- Indireta: Mensagens são enviadas e recebidas através de caixas de correio.
Chamada Remota (RPC): Semelhante à passagem de parâmetros em procedimentos; envolve a passagem de um processo para outro, garantindo que, se um processo não terminar, o outro permanecerá em espera.
Rendez-vous: Culminação dos mecanismos anteriores; modificação das chamadas remotas onde a chamada é apenas um grupo de instruções internas. Implementado em Ada.
Mecanismos de Hardware
Instruções de hardware que garantem a exclusão mútua:
- Desabilitar Interrupções: Computadores atuais permitem desativar interrupções; se um dispositivo gera uma interrupção, o tratamento é adiado até a reativação, forçando a exclusão mútua.
- Instrução Test-and-Set: Missão de fazer cumprir a exclusão mútua; contudo, sozinha pode não ser suficiente para assegurar o Mutex em todos os sistemas.
- Fechamento (Locking): Baseado na instrução acima, permite o acesso à seção crítica na ausência de outras atividades internas.
Gerenciamento de Memória
Hierarquia de Armazenamento: Avaliada por Custo, Tempo de Acesso e Capacidade.
Estratégias de Gestão:
- Monoprogramação: Memória dedicada (sem gerente), Monitor (início dos SOs), Proteção de Fronteiras.
- Remapeamento de Endereço: Estático (Compilação) e Dinâmico (Execução).
- Permuta (Swapping) e Multiprogramação.
- Proteção de Memória: Partições vizinhas de tamanho fixo ou variável.
- Fragmentação Interna/Externa e Compactação.
Paginação e Segmentação
Paginação: Esquema que divide a aplicação em seções de igual tamanho (quadros de página) e o programa em blocos (páginas). Cria-se uma tabela de páginas, não exigindo armazenamento contíguo.
Segmentação: Suporta a perspectiva do usuário na memória física, baseada em segmentos com ID e deslocamento, realizada pelo montador ou compilador.
Paginação de Segmento: Esquema onde a tabela de páginas é apropriada ao tamanho do programa (ex: IBM Série 370).
Segmentação com Paginação: Muda os segmentos de conteúdo da tabela para indicar comprimentos (ex: Intel 386, Honeywell Multics).
Memória Virtual: Permite a execução de programas parcialmente carregados. Envolve estratégias de Carga (pedidos), Seleção de espaço e Substituição (FIFO, LRU, LFU).
Cache: Do francês cacher (esconder). Técnica que utiliza blocos da unidade de disco mantidos na RAM para melhorar o desempenho.
Gestão de Registros e Dados
Evolução Histórica:
- 1950-1960: Arquivos sequenciais.
- 1960-1970: Arquivos sequenciais indexados.
- 1970-1980: Arquivos de acesso aleatório.
- 1980-1990: DBMS, Data Marts, Data Warehouse.
- 1990-Atual: ORDBMS (Relacional/Objeto) e sistemas de arquivos em cluster.
Conceitos Fundamentais
Organização Física e Lógica:
- Unidade mínima: Bit.
- Informação lógica: Caractere, Byte (8 bits).
- Estrutura: Campo (Palavra), Registro (Conjunto de campos), Bloco Físico, Arquivo, Área de Dados.
Campo Chave: Identifica o registro de forma única (ex: ID, CPF, Serial).
Registro Físico / Bloco: Menor quantidade de dados transferida em E/S entre memória e periféricos.
Fator de Bloqueio: Número de registros lógicos contidos em um físico.
Campo: Elemento básico com valor único, distinguido por ID, magnitude e tipo.
Registro: Coleção de áreas afins tratadas como unidade.
Arquivo: Coleção de registros similares com nome único.
Banco de Dados: Coleção de dados inter-relacionados e programas de acesso.
Diretório: Espaço reservado pelo SO para controle de arquivos.
Sistemas de Gerenciamento de Banco de Dados (DBMS)
Consiste em um conjunto de dados inter-relacionados e programas para acessá-los (HF Korth). É um conjunto de registros integrados auto-descritivos (Kroenke DM).
Por que usar Bancos de Dados? Para evitar redundância, inconsistência de dados (dados repetidos em vários formatos), dificuldades de acesso e problemas de segurança/integridade.
Tecnologias de Dados Modernas
Data Warehouse: Repositório de informações integradas para pesquisa e análise, unindo vários Data Marts. Geralmente, 80% dos dados usados vêm de 20% das fontes.
Data Mart: Repositório com dimensões padronizadas para uma área específica da empresa.
OLAP: Ferramentas de busca analítica para Data Warehouse.
OLTP: Processamento de transações em tempo real.
Ferramentas CASE: Dicionário de recursos incluindo análise, projeto (DFD, DER), algoritmos e repositórios.
Objetivos da Gestão de Arquivos
- Prover regime de gestão para usuários e aplicações.
- Atender necessidades de gerenciamento e do usuário.
- Garantir coerência e validade dos dados.
- Proteger contra perda ou destruição.
- Suportar diversos dispositivos de E/S e otimizar desempenho.
Arquitetura de Sistemas de Arquivos
No nível baixo, drivers se comunicam com periféricos. Cada controlador inicia operações de E/S.
Níveis: Método de acesso, E/S Lógica, Supervisor Básico de E/S, Sistema de Arquivos Básico, Administrador de Dispositivos.
Sistema de Arquivos Básico: Interface principal com o ambiente externo; trata blocos de dados entre disco/fita e memória (buffer). É irrelevante ao conteúdo dos dados.
Supervisor de E/S: Responsável pelo início e conclusão das operações, planejamento e status dos arquivos.
E/S Lógica: Permite acesso aos registros, oferecendo capacidade de propósito geral.
Método de Acesso: Nível mais próximo do usuário (ex: bateria, sequencial, indexado, dispersão).
Administração de Segurança
Critérios: Impedir acesso não autorizado (espionagem, roubo, sabotagem), manutenção do sistema e minimizar riscos (desastres naturais, vírus).
Classificação:
- Segurança Externa: Estratégias fora do sistema informático.
- Segurança Interna (Proteção): Recursos próprios do computador.
- Segurança Física: Alarmes, grades e proteção contra desastres.
- Administração de Segurança: Controle de acesso lógico (Firewall, Checksum, CRC, Bit de Paridade/Hamming).
Autenticação: Baseada em algo que o usuário sabe (senha), algo que o usuário possui ou algo que o usuário é (biometria). Deve seguir o princípio de privilégios mínimos.