UCPEL/CPOLI/BCC Introdução à Ciência da Computação Introdução aos Sistemas Operacionais Luiz A M Palazzo Abril de 2010 Sistema operacional • Camada de software entre o hardware e as aplicações dos usuários usuários Aplicação Aplicação Aplicação Sistema Operacional Hardware Introdução aos Sistemas Operacionais 2 Funções do sistema operacional • A partir da máquina real (hardware), criar uma máquina estendida. • Gerenciar os recursos de hardware disponíveis para as aplicações. Introdução aos Sistemas Operacionais 3 O SO como máquina estendida • Ocultar a complexidade do hardware. • Oferecer interfaces padronizadas de acesso ao hardware. • Permitir uma visão homogênea de dispositivos distintos. Introdução aos Sistemas Operacionais 4 O SO como máquina estendida Clicar em um arquivo aplicação Sistema operacional Introdução aos Sistemas Operacionais 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 ... 5 O SO como gerente de recursos • Recursos da máquina • • • • • processadores espaço em memória arquivos conexões de rede dispositivos externos • Controle de acesso • equilibrar uso • evitar conflitos Introdução aos Sistemas Operacionais 6 O SO como gerente de recursos 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 Introdução aos Sistemas Operacionais 7 Computador como Máquina de Níveis • O Hardware: • responsável pela execução das instruções de um programa; • Primeiros computadores: • programação realizada através de fios; • Evolução: O Sistema Operacional; • A Interação se tornou mais fácil, confiável e eficiente; Introdução aos Sistemas Operacionais 8 Computador como Máquina de Níveis • Computador como máquina de níveis: • Nível 2 – Aplicativos; • Nível 1 – Sistema operacional; • Nível 0 – Hardware. • A Linguagem utilizada em cada nível varia da mais elementar (microprogramação) à mais sofisticada(alto nível). Introdução aos Sistemas Operacionais 9 Histórico dos Sistemas Operacionais • 1º computador: • Máquina analítica de Charles Babbage (1792-1871); • Primeira Geração (1945-1955): • Válvulas e painéis; • Segunda Geração (1956-1965): • Transistores e Sistemas Batch; • Terceira Geração(1966-1980): • Circuitos Integrados e Multiprogramação; • Quarta Geração(1981-1990): • Computadores Pessoais; • Quinta Geração (1991- 20??): • Atualidade; Sistemas Móveis Introdução aos Sistemas Operacionais 10 Histórico dos Sistemas Operacionais • Primeira Geração (1945-1955): • Programação através de chaves; • Inexistência de linguagens ou SO.; • Toda a atividade é seqüencial; Introdução aos Sistemas Operacionais 11 Histórico dos Sistemas Operacionais • Segunda Geração (1956-1965): • • • • IBM 1401 e 7094; Separação entre programação e operação; Execução batch de programas; Linguagens Fortran e Assembly; Introdução aos Sistemas Operacionais 12 Histórico dos Sistemas Operacionais • Terceira Geração (1966-1980): • • • • • • Família IBM/360 e sucessores; Compatibilidade a nível de software; Multiprogramação; Escalonamento de CPU; Sistemas On-line; Base dos S.O. modernos; Introdução aos Sistemas Operacionais 13 Histórico dos Sistemas Operacionais • Quarta Geração (1981-1990): • • • • Multiprocessadores; Sistemas Operacionais user-friendly; S.O. para computadores pessoais; S.O. para redes de computadores; Introdução aos Sistemas Operacionais 14 Histórico dos Sistemas Operacionais • Quinta Geração (1991-20??): • • • • Processamento Distribuído; Interfaces Gráficas; S.O. para dispositivos móveis S.O. para cloud computing Introdução aos Sistemas Operacionais 15 S.O. como interface usuário/computador Introdução aos Sistemas Operacionais 16 Diferentes “imagens” de um S.O. • Sistema operacional na visão do usuário • Imagem que um usuário tem do sistema • Interface 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 Introdução aos Sistemas Operacionais 17 Chamada de sistema • Forma que um programa solicita serviços ao sistema operacional • Análogo a sub-rotinas • É o núcleo (Kernel) do sistema operacional que implementa as chamadas de sistemas • Existem chamadas de sistemas associadas a gerência do processador, de memória, arquivos e de entrada e saída • Variação: micro-kernel • Serviços básicos são implementados pelo micro-kernel • Kernel implementa demais serviços empregando esses serviços básicos Introdução aos Sistemas Operacionais 18 Organização do S.O APLICAÇÃO Chamada de sistema KERNEL Serviços do microkernel MICROKERNEL HARDWARE Introdução aos Sistemas Operacionais 19 Programas de sistema • Programas executados fora do kernel (utilitários) • Implementam tarefas básicas • Muitas vezes confundidos com o próprio sistema operacional • Ex: compiladores, assemblers, ligadores, etc • Interpretadores de comandos • Ativado sempre que o sistema operacional inicia sessão de trabalho • Ex: bash, tsch, sh, etc • Interface gráfico de usário (GUI) • Ex: Família windows, MacOs, etc Introdução aos Sistemas Operacionais 20 Sistema em lote (batch) • Introdução de operadores profissionais • Usuário era mais o operador da máquina • Job • Programa a ser compilador e executado, acompanhado dos dados de execução • Jobs são organizados em lote (batch) • Necessidades semelhantes (ex: mesmo compilador) • Passagem entre diferentes jobs continua sendo manual Introdução aos Sistemas Operacionais 21 Monitor residente • Evolução • Sequenciamente automático de jobs, transferindo o controle de um job a outro • Primeiro sistema operacional (rudimentar) • Monitor residente • Programa que fica permanente em memória • Execução inicial • Controle é transferido para o job • Cartões de controle • Quando o job termina, o controle retorna ao monitor • Centraliza as rotinas de acesso a periféricos disponibilizando aos programas de usuários Introdução aos Sistemas Operacionais 22 Sistema batch multiprogramado (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 • Manter diversos programas na memória ao mesmo tempo • Enquanto um programa realiza E/S, outro pode ser executado Introdução aos Sistemas Operacionais 23 Multiprogramação • Manter mais de um programa em “execução” simultaneamente • Duas inovações de hardware possibilitam o surgimento da multiprogramação • Interrupção • Sinalização de eventos • Discos magnéticos • Acesso randômico a diferentes jobs no disco. • Melhor desempenho em acessos de leitura e escrita Introdução aos Sistemas Operacionais 24 Sistema timesharing • Tipo de multiprogramação • Usuários possuem um terminal • Interação com o programa de 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 Introdução aos Sistemas Operacionais 25 Sistema monousuário e multiusuário • Sistema monousuário • Projetados para serem usados por um único usuário • Ex: MS-DOS, Windows XP, Vista, 7, MacOS... • Sistemas multiusuário • Projetados para suportar várias sessões de usuários em um computador • Ex: Windows 2008, UNIX... Introdução aos Sistemas Operacionais 26 Sistemas multitarefa e monotarefa • Sistemas monotarefa • Capazes de executar apenas uma tarefa de cada vez • Ex: MS-DOS • Sistema multitarefa • Capazes de executar várias tarefas simultaneamente • Existem dois tipos de sistemas multitarefa: • Não preempitivo (cooperativo) • Ex: Windows 3.x, Windows 9x (aplicativos 16 bits) • Preempitivo • Ex: Windows NT, OS/2, UNIX, Windows9x (aplicativos 32 bits) Introdução aos Sistemas Operacionais 27 Sistemas distribuídos • Distribuir a realização de uma tarefa entre vários computadores • Sistema distribuído • Conjunto de computadores autônomos interconectado s 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 Introdução aos Sistemas Operacionais 28 Sistemas distribuídos • Sistemas fracamente acoplados • Máquinas independentes • Cada máquina possui o seu próprio sistema operacional • Comunicação é feita através de troca de mensagens entre processos • Vantagens • Compartilhamento de recursos • Balanceamento de carga • Aumento confiabilidade Introdução aos Sistemas Operacionais 29 Sistemas paralelos • Máquinas multiprocessadoras possuem mais de um processador • Sistemas fortemente acoplados • Processadores compartilham memória e relógios comuns • Comunicação é realizada através da memória • Vantagens • Aumento de troughput (número de processos executados) • Aspectos econômicos • Aumento de confiabilidade Introdução aos Sistemas Operacionais 30 Sistemas paralelos • 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 multitreading • Asymmetric multiprocessing • Cada processador executa uma tarefa específica • Ex: processador mestre para alocação de tarefas a escravos Introdução aos Sistemas Operacionais 31 Sistema de tempo real • Empregado para o controle de procedimentos que devem responder dentro de um certo intervalo de tempo • Ex: experimento científicos, tratamento de imagens médicas, controle de processos, etc. • Noção de tempo real é dependente da aplicação • Milisegundos, minutos, horas, etc. • Dois tipos • Hard real time • Tarefas críticas são completadas dentro de um intervalo de tempo • Soft real time • Tarefa crítica tem maior prioridade que as demais Introdução aos Sistemas Operacionais 32