Sistemas Operacionais Aula 1 Introdução 1.1 O que é um sistema operacional 1.2 História dos sistemas operacionais 1.3 O zoológico de sistemas operacionais 1.4 Revisão sobre hardware de computadores 1.5 Conceitos sobre sistemas operacionais 1.6 Chamadas ao sistema 1.7 Estrutura de sistemas operacionais 2 Introdução • Hardware – Provê recursos para execução de instruções, manipulação de dados • Programa de Aplicação – Solução computacional de um problema – Define a utilização dos recursos do sistema • PROBLEMA – O hardware sozinho não oferece um ambiente de utilização simples para resolução computacional de problemas Definição de Sistema Operacional: Conjunto de partes, funcionalmente independentes, que trabalham de maneira harmônica objetivando um fim comum. 1. Conjunto de partes – Não pressupõe uma seqüência; 2. Funcionalmente independentes – Cada parte do sistema executa uma função bem definida, diferente de qualquer outra parte; 3. Trabalham de maneira harmônica – Executam sua função da melhor maneira possível em cooperação com as outras partes; 4. Fim comum - O objetivo do programa. Maquina de Níveis Nível 1 Sistema Operacional Nível 0 Hardware O que é um Sistema Operacional • É uma máquina estendida – Oculta os detalhes complicados que têm quer ser executados – Apresenta ao usuário uma máquina virtual, mais fácil de usar • É um gerenciador de recurso – Cada programa tem um tempo com o recurso – Cada programa tem um espaço no recurso 6 Maquina de Níveis O Sistema Operacional como a “camada” de software entre o hardware e as aplicações dos usuários usuários Aplicação Aplicação Aplicação Sistema Operacional Hardware Maquina de Níveis source app source app source app sdgf jhgsdfj dsjhf khj khj HKjhkjghj hg jhgj jgh jhg jhg jhg jhg kjhg jhgj hg jhg kjhkjhgjhg jhg jhg jhg jh kjhjkhgjhgjh kgjhgjhgjhgj Aplicação Aplicação Aplicação Sistema Operacional Hardware Maquina de Níveis Processador de Texto Compiladores Browser s Bibliotecas Jogos Interpretadores de Comando SISTEMA OPERACIONAL Aplicativos Programas do Sistema Linguagem de Máquina Hardware Micro Arquitetura Dispositivos Físicos História dos Sistemas Operacionais (1) Antigo sistema em lote – – – – traz os cartões para o 1401 lê os cartões para a fita coloca a fita no 7094 que executa o processamento coloca a fita no 1401 que imprime a saída 10 História dos Sistemas Operacionais (2) • Primeira geração 1945 - 1955 – Válvulas, painéis de programação • Segunda geração 1955 - 1965 – transistores, sistemas em lote • Terceira geração 1965 – 1980 – CIs e multiprogramação • Quarta geração 1980 – presente – Computadores pessoais 11 História dos Sistemas Operacionais (3) Estrutura de um job FMS típico – 2a. geração 12 História dos Sistemas Operacionais (4) • Sistema de multiprogramação – Três jobs na memória – 3a. geração 13 Sistema Operacional A partir da máquina real (Hardware), visa-se criar uma máquina abstrata, cujo Software (entenda-se Sistema Operacional) é responsável por duas tarefas básicas: 1.Gerenciamento dos recursos do sistema; 2.Interface com o usuário. O Sistema Operacional como Máquina Abstrata “Clicar” em um arquivo Aplicação Sistema Operacional Assign (file, “D:\README.TXT”); open (file); read (file, ch); … close (file); Move head to sector 123 in FAT Read 256 bytes to mem 36234H Move head to sector 4684753 Read 1024 bytes to mem 578567 ... O Sistema Operacional como Máquina Abstrata Ocultar a complexidade do hardware. O Sistema Operacional como Máquina Abstrata Oferecer interfaces padronizadas de acesso ao hardware. O Sistema Operacional como Máquina Abstrata Permitir uma visão homogênea de dispositivos distintos. GUI - Graphical User Interface Projeto Laboratório de GUI. Interface Gráfica É a forma do usuário interagir com o sistema. GUI - Graphical User Interface • • • • • Versão gráfica dos diálogos em texto; Baseados no modelo “objeto/ação”; Seqüências de trabalho muito bem definidas; Aplicação bem separada do ambiente; Ícones representando aplicações; • Exemplos: Windows 9X/ME/2000/XP/2003... , OSF/Motif (AIX, Solaris, HP-UX etc...) Funções do Sistema Operacional Gerenciamento do Hardware Gerenciamento dos Softwares Sistema Operacional ® Gerenciamento da Memória Microsoft® Windows Gerenciamento de Dados O SO Como Gerente de Recursos • Recursos da máquina • Processador(es); • Espaço em memória; • Arquivos; • Conexões de rede; • Dispositivos externos. • Controle de acesso • Equilibrar uso; • Evitar conflitos. O Zoológico de Sistemas Operacionais • Sistemas operacionais de computadores de grande porte • Sistemas operacionais de servidores • Sistemas operacionais de multiprocessadores • Sistemas operacionais de computadores pessoais • Sistemas operacionais de tempo-real • Sistemas operacionais embarcados • Sistemas operacionais de cartões inteligentes 24 Tipos de Sistemas Operacionais • SO de Computadores de Grande Porte – O hardware caracteriza-se por grande capacidade de E/S • Servidores WEB – As operações caracterizam-se por execução simultânea de muitas tarefas requerendo muita E/S – Tarefas • Lote • Transações • Tempo Compartilhado Tipos de Sistemas Operacionais • SO de Servidores – São “computadores pessoais de grande porte” • Permitem o compartilhamento de hardware e software • Prestam serviço a muitos usuários – – – – Impressão Arquivo Mensagens Web Componentes de um Sistema Operacional Arquivos Usuários Contabilidade Memória Processos Kernel Segurança Rede Entradas & Saídas Erros Interface Gráfica Núcleo (Kernel) • Concentra o acesso ao hardware • Drivers de dispositivo; • Gerência de acesso. • Provê funções básicas • Operações de acesso ao hardware; • Noção básica de processos; • Comunicação entre processos (IPC). • É executado em Modo Privilegiado Classificação dos Sistemas Operacionais • Executar tarefas simultâneas: • Monotarefa; • Multitarefa. • Suporte a várias CPU’s: • Monoprocessado; • Multiprocessado (SMP) • Usuários simultâneos: • Monousuário; • Multiusuário. • Tempo de resposta: • Batch; • Interativo; • Tempo real. Tipos de Sistemas Operacionais Sistemas Operacionais (*) Quanto ao Número de Tarefas Simultâneas Monoprogramáveis Multiprogramáveis ( Multitarefa ) ( Monotarefa ) Batch Tempo Compartilhado Tempo Real Quanto ao Número de Processadores Fracamente Acoplados SOR Distribuído Fortemente Acoplados Simétrico Assimétrico (*) De acordo com a configuração do hardware. SO Mutiprogramável/Multitarefa Software Tarefa (3) Tarefa (1) Memória CPU Tarefa (2) Dispositivos I/O Tarefa (n) SO Multiprogramável (Multitarefa) Possui as seguintes características: • É executado por um ou vários processadores; No caso de vários processadores, é classificado como "SO Multiprocessado“. No caso de apenas um processador, permite que vários programas disputem os recursos do sistema (paralelismo lógico ou virtual), e: Podem ser monousuário ou multiusuário: – Monousuário: um único usuário executando vários programas (monoterminal); – Multiusuário: vários usuários executando vários programas (multiterminais); – Divide o tempo da CPU entre os vários programas e entre os vários usuários; – Diminui a ociosidade, permitindo que durante o tempo de E/S outros processos sejam executados; SO Multiprogramável (Multitarefa) • • • Cada processador pode operar monoprogramado ou multiprogramado; Ocorre paralelismo físico ou real, quando mais de um processador está sendo utilizado; Ocorre também paralelismo lógico, quando o número de tarefas é maior que o número de processadores disponíveis; Sistemas vs. Usuários ... Monoprogramação/ Monotarefa Monousuário Multiprogramação/ Multitarefa Monousuário Multiusuário N/A Classificação dos Sistemas Operacionais Multiprogramáveis Podem ser classificados como: • Fracamente acoplados; • Fortemente acoplados. Fracamente Acoplados (Loosely Coupled) Linha de comunicação DISPOS E/S DISPOS E/S Cada processador possui sua própria memória e executa seu próprio Sistema Operacional (Sistema Operacional de Rede) ou parte de um Sistema Operacional Global (Sistema Operacional Distribuído). SOR ou parte de um Sistema Operacional Global (Sistema Operacional Distribuído). Nó (3) Nó (4) Nó (1) Rede Nó (2) Nó (n) Sistema Operacional de Rede (SOR) Cada nó possui o seu próprio SO. Unix OS/2 Windows 2000 Hardware e Softwares compartilhados Servidor Fortemente Acoplados (Tightly Coupled) DISPOS E/S DISPOS E/S Todos os processadores compartilham uma única MEMÓRIA. Estes processadores geralmente são coordenados por um único Sistema Operacional que pode estar localizado em um outro computador hospedeiro, que se encarrega de distribuir as tarefas entre os processadores e gerenciar a execução. Sistema Operacional Assimétrico CPU Master Dispositivos I/O CPU Slave SO Dispositivos I/O • Na organização assimétrica ou mestre/escravo (master/slave), somente um PROCESSADOR (mestre) EXECUTA as rotinas do SISTEMA OPERACIONAL. Sistema Operacional Simétrico (SMP) (*) Dispositivos I/O SO • Nesta configuração TODOS OS PROCESSADORES EXECUTAM as rotinas do SISTEMA OPERACIONAL. (*) Boot fica apenas a cargo de um único processador. Evolução dos Sistemas Operacionais Multiprogramados: • Sistemas batch; • Depois como sistemas time-sharing e; • Finalmente como sistemas real-time. Sistemas Batch Sistemas em Batch • Característicos de computadores de grande porte (mainframes); • Os dados a serem processados eram lidos numa máquina e gravados normalmente em fita magnética, a qual era transportada até o computador que fazia o processamento; • Após o processamento os resultados eram escritos numa fita magnética e levados até uma outra impressora que procedia a impressão; • O primeiro tipo de multitarefa fazia com que vários programas compartilhassem o recurso fita magnética, assim vários programas (chamados de jobs), originaram o termo batch; Sistemas em Batch • Vários programas e seus dados eram lidos e passados para uma fita e processados pelo computador, que os processava todos, um a um e armazenava os resultados em fita; • Posteriormente, a fita era levada até o canal de saída (impressão em papel, perfuração em fita de papel ); • Numa segunda fase, já com os dispositivos de E/S ligados diretamente ao computador, o processamento batch era feito com vários programas sendo lidos diretamente pelo computador, mas ainda executados um a um. • Atualmente chamamos de batch as tarefas que são deixadas para execução de baixa prioridade, sem a interferência do usuário. Sistemas Time-Sharing • O usuário pode interferir ou atuar na fase de execução; • O tempo de processamento é compartilhado com as aplicações ou usuários; • Idem para a utilização da memória. Sistemas Real-Time • Voltado para aplicações críticas; • Tempo de resposta é a principal característica; • Cada tarefa é executada até a sua finalização, independentemente do tempo gasto. Pergunte...! Referências Técnicas • • Sistemas Operacionais Modernos – Andrew S. Tanenbaum Arquitetura de Sistemas Operacionais – Francis B. Machado – Luiz Paulo Maia • http://www.artandtech.com • • http://www.microsoft.com http://www.cs.vu.nl/~ast/