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 Aplicativos Utilitários Programador 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 Requisição E/S Multiprogramação Término E/S tempo Sistemas Operacionais – Aula 1 Requisição E/S Término E/S tempo 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 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 da 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: Processador mestre para alocação de tarefas a escravos ex. 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