Sistemas Operacionais O que se espera de um sistema de computação? Execução de programas de usuários Permitir a solução de problemas Sistema Operacional (SO) é um programa colocado entre o hardware do computador e os programas dos usuários de forma a atingir esses dois objetivos. Programas Sistema Operacional Hardware Estrutura do Sistema Computacional: O sistema computacional pode ser dividido em 4 componentes genéricos Hardware Recursos básicos (CPU, memória, dispositivos de E/S) Sistema Operacional Controla e coordena o uso do hardware entre vários programas aplicativos e usuários Programas aplicativos e de sistema Define como os recursos de hardware são empregados na solução de um problema (Processadores de texto, compiladores, browsers, SGBDs, vídeos, jogos, etc) Usuários Pessoas, máquinas, outros computadores Sistemas Operacionais Aula 1 1
Componentes genéricos do Sistema Computacional: Sistema Operacional: Conceito Um programa que controla a execução de programas aplicativos Interface entre aplicativos e hardware Duas visões para definir o Sistema Operacional: SO é um alocador de recursos Gerencia todos os recursos Decide entre requisitos conflitantes para uso mais eficiente dos recursos SO é um programa de controle Controla a execução dos programas para prevenir erros e uso impróprio do computador Não existe uma definição completamente adequada Sistemas Operacionais Aula 1 2
Objetivos do Sistema Operacional Tornar mais conveniente a utilização de um computador Esconder detalhes internos de funcionamento Tornar mais eficiente a utilização de um computador Gerenciamento justo dos recursos do sistema Facilitar a evolução do sistema Desenvolvimento, teste e atualização de novas facilidades Sistema Operacional: interface entre usuário/computador Usuário final Programador Aplicativos Utilitários Projetista de SO Sistema Operacional Hardware Serviços oferecidos pelo Sistema Operacional Criação de programas (Editores, depuradores, compiladores) Execução de programas (Carga de programas em memória) Acesso a dispositivos de E/S Controle de acesso a arquivos Acesso a recursos de sistema (Proteção entre usuários) Contabilidade (Estatísticas, monitoração de desempenho, sinalizar upgrades necessários de hardware) Detecção de erros Erros de hardware (erros de memória, falha de dispositivo de E/S) Erros de programação (acesso não autorizado a posições de memória) Aplicação solicita recurso que o SO não pode alocar Sistemas Operacionais Aula 1 3
As diferentes imagens de um Sistema Operacional Sistema operacional na visão do usuário: Imagem que o usuário tem do sistema Inferface oferecida ao usuário para ter acesso a recursos do sistema Chamadas de sistema Programas de sistema Sistema operacional na visão do projeto Organização interna do sistema operacional Mecanismos empregados para gerenciar recursos do sistema Chamadas de sistema Forma que programas solicitam serviços ao sistema operacional Análogo a sub-rotinas Transferem controle para o sistema operacional invés de transferir para outro ponto do programa É o núcleo (kernel) do sistema operacional que implementa as chamadas de sistema Existem chamadas de sistema associadas a gerência do processador, de memória, arquivos e de E/S Variação: micro-kernel Serviços básicos são implementados pelo micro-kernel O kernel implementa os demais serviços empregando esses serviços básicos Programas de sistema Programas executados fora do kernel (utilitários) Implementam tarefas básicas: Muitas vezes confundido com o próprio SO (por exemplo compiladores, assemblers etc) Interpretador de comandos (ativado sempre que o SO inicia uma seção de trabalho / interface gráfica de usuário) Sistemas Operacionais Aula 1 4
Histórico dos Sistemas Operacionais Primórdios (década de 40): Sistema operacional inexistente O programador também é o operador Existe uma planilha para alocação de horário da máquina O programador controla todo o equipamento O programa acessa diretamente os periféricos A evolução foi motivada por: Melhorar a utilização dos recursos Avanços tecnológicos (novos tipos de hardware) Adição de novos serviços Sistema em lote (batch) Introdução de operadores profissionais Usuário não era mais o operador da máquina Job Programa a ser compilado e executado, acompanhado dos dados de execução (cartões perfurados) Jobs são organizados em lote (batch) Jobs possuem necessidades semelhantes (ex. Mesmo compilador) Passagem entre jobs continua sendo manual Operador atento à console do computador Um job pode exigir a execução de vários programas Evolução: Sequenciamento automático de jobs, transferindo o controle de um job a outro Primeiro Sistema Operacional (rudimentar) Sistemas Operacionais Aula 1 5
Monitor residente (década de 50) É um programa que fica permanentemente em memória Função: automatizar a transição entre programas Funcionamento do monitor residente: Execução inicial Controle é transferido para o job (cartões controle) Quando um job termina o controle retorna ao monitor O monitor residente carrega o próximo programa Cartões de controle indicam o que fazer Identificação do usuário Tempo de execução Origem das linguagens de programação Monitor residente centraliza as rotinas de acesso aos periféricos As aplicações não acessam os periféricos diretamente Início da chamada de sistema Sistema batch multiprogramado multitarefa (década de 60) No monitor residente um programa é executado de cada vez Desperdício de tempo de CPU com operaç Evolução: Manter diversos programas na memória ao mesmo tempo Enquanto um programa realiza E/S, outro pode ser executado Desperdício CPU Multiprogramação Requisição E/S Término E/S Requisição E/S Término E/S tempo tempo Sistemas Operacionais Aula 1 6
Multiprogramação Manter mais de um programa em execução simultaneamente O tempo do processador é dividido entre vários programas Na multiprogramação os periféricos são melhor utilizados O processador fica menos tempo parado Duas inovações de hardware possibilitaram o surgimento da multiprogramação: interrupções e discos magnéticos Interrupções Sinalizações de eventos Aviso do periférico (início ou término) Discos magnéticos Acesso randômico a diferentes jobs no disco Melhor desempenho em acesso de E/S Sistemas Timesharing (década de 70) Tipo de multiprogramação Além da multiprogramação, cada usuário possui um terminal Interação com o programa em execução Ilusão de possuir a máquina dedicada a execução de seu programa Divisão do tempo de processamento entre usuários Tempo de resposta é importante Sistema Monousuário vs. Multiusuário Sistema monousuário - Projetados para serem usados por um único usuário Ex. MS-DOS, Windows 3.x, Windows9x, Millenium Sistema multiusuário - Projetados para suportar várias sessões de usuários em um computador Ex. Windows NT (2000), UNIX Sistemas Operacionais Aula 1 7
Sistema Monotarefa vs. Multitarefa Sistema monotarefa - Capazes de executar apenas uma tarefa de cada vez Ex. MS-DOS Sistema multitarefa Projetados ara suportar várias sessões de usuários em um computador. Existem dois tipos de sistemas multitarefas: Não preemptivos (cooperativo) - Ex. Windows 3.x, Windows9x (aplicativos 16 bits) Preemptivos - Ex. Windows NT, OS/2, UNIX, Windows9x (aplicativos 32 bits) Sistemas Operacionais Distribuídos Distribuir a realização de uma tarefa entre vários computadores interconectados através de algum tipo de rede de comunicação Sistema distribuído: Conjunto de computadores autônomos interconectados de forma a possibilitar a execução de um serviço Existência de várias máquinas é transparente Software fornece uma visão única do sistema Palavra-chave: transparência Sistemas fracamente acoplados (loosely coupled system) Máquinas independentes Cada máquina possui seu próprio sistema operacional Comunicação é feita através de troca de mensagens entre processos Vantagens: Compartilhamento de recursos Balanceamento de carga Aumento de confiabilidade Sistemas Operacionais Aula 1 8
Sistemas Operacionais paralelos Máquinas multiprocessadoras possuem mais de um processador Sistemas fortemente acoplados (tightly coupled system) Processadores compatilham memória e relógio comuns Comunicação é realizada através de memória Vantagens: Aumento de throughput (número de processos executados) Aspectos econômicos Aumento de confiabilidade Graceful degradation Sistemas fail-soft Symmetric multiprocessing (SMP) Cada processador executa uma cópia idêntica do sistema operacional Vários processos podem ser executados em paralelo sem perda de desempenho para o sistema A maioria dos sistemas operacionais atuais suportam SMP através do conceito de multithreading Asymmetric multiprocessing Cada processador executa uma tarefa específica: ex. Processador mestre para alocação de tarefas a escravos Sistemas Operacionais de tempo real Empregado para o controle de procedimentos que devem responder dentro de um certo intervalo de tempo Ex. Experimentos científicos, tratamento de imagens médicas, controle de processos etc. Noção de tempo real é dependente da aplicação (milisegundos, minuto, horas etc) Dois tipos: Hard real time tarefas críticas são completadas dentro de um intervalo de tempo; e Soft real time tarefa crítica tem maior prioridade que as demais. Sistemas Operacionais Aula 1 9