SISTEMAS OPERACIONAIS Introdução Professor Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais 2 Introdução O que se espera de um sistema de computação? o Execução de programas de usuários; o Permitir a solução de problemas. Sistema Operacional é 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 Prof. Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais 3 Componentes Genéricos de um Sistema Computacional Hardware o Recursos básicos (memória, dispositivos de E/S, CPU) Sistema Operacional o Controla e coordena o uso do hardware entre vários programas aplicativos e usuários. Programas aplicativos e de sistema o Define como os recursos de hardware são empregados na solução de um problema (compiladores, jogos, banco de dados,…) Usuários o Pessoas, máquinas, outros computadores, etc. Prof. Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais 4 Componentes Genéricos de um Sistema Computacional Usuário 1 Browser Usuário 2 IDE Usuário 3 …. Player Sistema Operacional Hardware Prof. Angelo Gonçalves da Luz Usuário N PES 31/05/2017 Introdução à Sistemas Operacionais Sistema Operacional: Conceito Sistema Operacional o Um programa que controla a execução de programas aplicativos; o Interface entre aplicativos e hardware. Duas formas de ver um Sistema Operacional o Alocador de Recursos; Proteger memória; Alocar processador. o Máquina estendida. Abstrair detalhes de hardware. Prof. Angelo Gonçalves da Luz 5 31/05/2017 Introdução à Sistemas Operacionais Sistema Operacional: Objetivos Tornar mais conveniente a utilização de um computador o “Esconder” detalhes internos de funcionamento Tornar mais eficiente a utilização de um computador o Gerenciamento “justo” dos recursos do sistema Prof. Angelo Gonçalves da Luz 6 31/05/2017 Introdução à Sistemas Operacionais Sistema Operacional: Interface usuário/computador Usuário Usuário Final Programador Aplicativos Utilitários Sistema Operacional Hardware Prof. Angelo Gonçalves da Luz Projetista S.O 7 31/05/2017 Introdução à Sistemas Operacionais Sistema Operacional: Serviços Criação de programas o Editores, depuradores, compiladores Execução dos programas o Carga de programas na memória Acesso a dispositivos de E/S Controle de acesso a arquivos Acesso a recursos de sistema o Proteção entre usuários Prof. Angelo Gonçalves da Luz 8 31/05/2017 Introdução à Sistemas Operacionais 9 Sistema Operacional: Serviços Contabilidade o Estatísticas o Monitoramento de desempenho o Sinalizar upgrades necessários de hardware Detecção de erros o Erros de hardware Ex.: erros de memória, falha de dispositivo de E/S. o Erros de programação Ex.: overflow, acesso não-autorizado a posição de memória. o Aplicação solicita recursos que o sistema operacional não pode alocar (falta de recurso, segurança). Prof. Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais 10 Diferentes “imagens” do Sistema Operacional Sistema Operacional na visão do usuário o Imagem que um usuário tem do sistema o Interface oferecida ao usuário para ter acesso a recursos do sistema Chamadas de sistema Programas de sistema (utilitários) Sistema Operacional na visão de projeto o Organização interna do sistema operacional o Mecanismos empregados para gerenciar recursos do sistema Prof. Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais 11 Chamadas de sistema Forma que programas solicitam serviços ao sistema operacional o Análogo a sub-rotina o Transferem controle para o sistema operacional invés de transferir para outro ponto do programa É o kernel (núcleo) do sistema operacional que implementa as chamadas de sistema o Existem chamadas de sistema associadas a gerência do processador, de memória, arquivos e de entrada/saída Variação: micro-kernel o Serviços básicos são implementados pelo micro-kernel Gerência do processador e de memória o Kernel implementa demais serviços utilizando o micro-kernel Sistema de arquivos, memória virtual, protocolos de comunicação, etc. Prof. Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais Programas de Sistema (Utilitários) Programas executados fora do kernel Implementam tarefas básicas o Muitas vezes confundidos com o próprio sistema operacional Ex.: compiladores, assemblers, etc. o Interpretador de comandos Ativado sempre que o sistema operacional inicia uma sessão de trabalho • Ex.: bash, csh, sh, etc. Interface gráfica de usuário (GUI) • Ex.: Família Windows, MacOS, GNOME, KDE, etc. Prof. Angelo Gonçalves da Luz 12 31/05/2017 Introdução à Sistemas Operacionais Sistemas Operacionais: História Primórdios: o Sistema Operacional inexistente o Usuário é o programador e o operador da máquina o Alocação do recurso “computador” feito por planilha Evolução foi motivada por: o Melhor utilização de recursos o Avanços tecnológicos (novos tipos de hardware) o Adição de novos serviços Prof. Angelo Gonçalves da Luz 13 31/05/2017 Introdução à Sistemas Operacionais 14 Sistemas em Lote (batch) Introdução de operadores profissionais o Usuário não era mais o operador da máquina Job o Programa a ser compilado e executado, acompanhado dos dados de execução (cartões perfurados) o Jobs são organizados em lote (batch) Necessidades semelhantes (ex.: mesmo compilador, bibliotecas) Passagem entre diferentes jobs continua sendo manual Prof. Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais 15 Monitor residente Evolução: o Sequenciamento automático de jobs, transferindo o controle de um job a outro o Primeiro Sistema Operacional (rudimentar) Monitor residente: o Sempre na memória o Monitor – job - Monitor Monitor Prof. Angelo Gonçalves da Luz Job 31/05/2017 Introdução à Sistemas Operacionais 16 Sistemas batch multiprogramados (multitarefa) Monitor residente permite a execução de apenas um programa a cada vez. Desperdício de tempo de CPU com operações de E/S Evolução: o Manter diversos programas na memória ao mesmo tempo o Enquanto um programa realiza E/S, outro pode ser executado Desperdício de CPU CPU J1 E/S Multiprogramação J1 J1 J2 J3 J1 J1 tempo Prof. Angelo Gonçalves da Luz J1 tempo 31/05/2017 Introdução à Sistemas Operacionais 17 Multiprogramação Manter mais de um programa em “execução” simultaneamente; Duas inovações de hardware possibilitaram o surgimento multiprogramação; o Interrupções Sinalização de eventos o Discos magnéticos Acesso randômico a diferentes jobs (programas) no disco; Melhor desempenho em acessos de leitura e escrita. Prof. Angelo Gonçalves da Luz da 31/05/2017 Introdução à Sistemas Operacionais 18 Sistemas timesharing Tipo de multiprogramação Usuários possuem um terminal o Interação com o programa em execução Ilusão de possuir a máquina dedicada a execução de seu programa o Divisão do tempo de processamento entre usuários o Tempo de resposta é importante Prof. Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais 19 Sistemas monousuário e multiusuário Sistemas monousuário o Projetados para serem usados por um único usuário Ex.: MS-DOS, Windows 3.x, Windows 9x, Millenium. Sistemas multiusuário o Projetados para suportar várias sessões de usuários em um computador Ex.: Windows NT, UNIX. Prof. Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais Sistemas multitarefa e monotarefa Sistemas monotarefa o Capazes de executar apenas uma tarefa de cada vez Ex.: MS-DOS Sistemas multitarefas o Capazes de executar várias tarefas simultaneamente o Existem dois tipos de sistemas multitarefa: Não preemptivo (cooperativo) • Ex.: Windows 3.x, Windows 9x (16 bits) Preempitvo • Ex.: Windows NT, OS/2, UNIX, Windows 9x (32 bits) Prof. Angelo Gonçalves da Luz 20 31/05/2017 Introdução à Sistemas Operacionais 21 Sistemas Distribuídos Distribuir a realização de uma tarefa entre vários computadores Sistema distribuído: o Conjunto de computadores autônomos interconectados de forma a possibilitar a execução de um serviço; o Existência de várias máquinas é transparente; o Software fornece uma visão única do sistema. Exemplo Prof. Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais Sistemas Distribuídos Sistemas fracamente acoplados (loosely coupled system) o Máquinas independentes; Cada máquina possui seu próprio sistema operacional o Comunicação é feita através de troca de mensagens entre processos. Vantagens o Compartilhamento de recursos; o Balanceamento de carga; o Maior confiabilidade. Prof. Angelo Gonçalves da Luz 22 31/05/2017 Introdução à Sistemas Operacionais 23 Sistemas Paralelos Máquinas multiprocessadoras, possuem mais de um processador; Sistemas fortemente acoplados (tighly coupled system); o Processadores compartilham memória; o Comunicação é realizada através da memória. Vantagens: o Aumento de throughput (número de processos executados); o Aspectos econômicos. Prof. Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais 24 Sistemas Paralelos Multiprocessamento Simétrico (SMP) o Cada processador executa uma cópia idêntica do sistema operacional o Vários processos podem ser executados em paralelo sem perda de desempenho para o sistema o A maioria dos sistemas operacionais atuais suportam SMP através do conceito de multithreading. Multiprocessamento Assimétrico o Cada processador executa uma tarefa específica; o Possui Processador mestre para alocação de tarefas a escravo. Prof. Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais 25 Sistemas de Tempo Real Empregado para o controle de procedimentos que devem responder dentro de um certo intervalo de tempo; Noção de tempo real é dependente da aplicação. o Milisegundos, minutos, horas, etc. Podem ser Classificados como: Crítico: Precisa necessariamente, ocorrer no tempo X. Não Crítico: É desejável que ocorra no tempo X, porém, erros eventuais não resultarão em grandes problemas. Algumas vezes, o sistema Operacional acaba sendo apenas uma biblioteca necessária para o funcionamento do software. Prof. Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais Sistemas de Tempo Real Exemplos: o Controle de Tráfego Aereo; o Telefones digitais; o Aeronaves teleguiadas; o Reservas de Passagens aereas; o Produção industrial. Prof. Angelo Gonçalves da Luz 26 31/05/2017 Introdução à Sistemas Operacionais 27 Sistemas Embarcados Sistemas que normalmente controlam dispositivos que não são considerados computadores; São sistemas fechados, ou seja, não aceitam instalação de software por parte do usuário Ex.: o Televisão; o Micro-ondas; o DVD-Player. Prof. Angelo Gonçalves da Luz 31/05/2017 Introdução à Sistemas Operacionais 28 Leitura Complementar R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. 3. ed. Porto Alegre. Sagra-Luzzato, 2008. o Capítulo 1. A. S. TANEMBAUM. Sistemas Operacionais modernos. 2. ed. São Paulo. Prentice. 2003. o Capítulo 1. Prof. Angelo Gonçalves da Luz