Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I – Eng. Elétrica 2007/1 Introdução Hardware Programas (aplicações) Provê os recursos básicos de computação (CPU, memória, E/S,etc.) Definem as maneiras pelas quais os recursos do sistema são usados para resolver os problemas computacionais dos usuários (compiladores, sistemas de banco de dados, vídeo games, programas financeiros, etc.). Usuários Pessoas, máquinas, outros computadores. Fato: o hardware de um computador, sozinho, não fornece um ambiente simples, flexível e adequado para o desenvolvimento e uso dos programas dos usuários. Sistemas de Programação I – 2007/1 2 Profa Roberta L.G. - LPRM/DI/UFES Introdução Visão Abstrata Sistemas de Programação I – 2007/1 3 Profa Roberta L.G. - LPRM/DI/UFES Um Sistema Operacional... ... possibilita o uso eficiente e controlado dos diversos componentes de hardware do computador. ... implementa políticas e estruturas de software de modo a assegurar um melhor desempenho do sistema de computação como um todo. Nome dado a um conjunto de programas que trabalham de modo cooperativo com o objetivo de prover uma máquina mais flexível e adequada ao programador do que aquela apresentada pelo hardware sozinho Sistemas de Programação I – 2007/1 4 Profa Roberta L.G. - LPRM/DI/UFES Definições “A program that controls the execution of application programs.” “An interface between applications and hardware.” “Resource allocator” Gerencia e aloca recursos. “Control program” “Programa que age como um intermediário entre o usuário de um computador e o hardware deste computador”. Controla a execução dos programas de usuário e operações de E/S “Kernel” O programa executado durante todo o tempo (os demais programas são as aplicações de usuários) Sistemas de Programação I – 2007/1 5 Profa Roberta L.G. - LPRM/DI/UFES Função “A principal função de um sistema operacional é prover um ambiente no qual os programas dos usuários (aplicações) possam rodar”. Isso envolve: definir um framework básico para a execução dos programas e prover uma série de serviços (ex: sistema de arquivos, sistema de E/S) e uma interface de programação para acesso aos mesmos”. Sistemas de Programação I – 2007/1 6 Profa Roberta L.G. - LPRM/DI/UFES Organização Típica Núcleo Responsável pela gerência do processador, tratamento de interrupções, comunicação e sincronização entre processos. Escalonamento de processos (programa em execução) Gerente de Memória (1) Responsável pelo controle e alocação de memória aos processos ativos. Memória Virtual: Segmentação e Paginação Sistema de E/S Responsável pelo controle e execução de operações de E/S e otimização do uso dos periféricos. Sistemas de Programação I – 2007/1 7 Profa Roberta L.G. - LPRM/DI/UFES Organização Típica Sistema de Arquivos (2) Responsável pelo acesso e integridade dos dados residentes na memória secundária. FAT32, NTFS, ... Processador de Comandos / Interface com o Usuário Responsável pela interface conversacional com o usuário. Sistemas de Programação I – 2007/1 8 Profa Roberta L.G. - LPRM/DI/UFES Classificação (1) Quanto ao número de usuários: Monousuários: projetados para suportar um único usuário. Ex: MS-DOS, Windows 3x, Windows 9x. Multiusuários: projetados para suportar várias sessões de usuários. Ex: Windows NT(2000), UNIX. Quanto ao número de tarefas: Monotarefa: capazes de executar apenas uma tarefa (um aplicativo) de cada vez. Ex: MS-DOS Multitarefa: capazes de executar várias atividades simultaneamente (Multiprogramação) Processo 3 Processo 2 Ex:Windows, OS/2, Unix. Processo 1 PROCESSO == Programa em Execução Sistemas de Programação I – 2007/1 9 Profa Roberta L.G. - LPRM/DI/UFES Classificação (2) Quanto ao tipo de serviço oferecido ao usuário: Sistemas de processamento em lotes (“batch”) Sistemas de tempo compartilhado (“timesharing”) Sistemas de tempo real (“real-time”) Sistemas de Programação I – 2007/1 10 Profa Roberta L.G. - LPRM/DI/UFES Sistemas de Lotes Primeiro tipo de sistema operacional. Monotarefa (ñ suportava multiprogramação) Job é o conceito básico num sistema de lotes, sendo constituído do programa a ser compilado e executado, acompanhado dos dados. Sistemas de Programação I – 2007/1 11 Profa Roberta L.G. - LPRM/DI/UFES Sistemas de Tempo Compartilhado A capacidade e o tempo de processamento da máquina é dividida entre múltiplos usuários, que acessam o sistema através de terminais. Uso da técnica de multiprogramação para a manipulação de múltiplos jobs interativos. Uso de Memória Virtual Jobs são constantemente “trocados” entre memória e disco (“swap”). Sistemas de Programação I – 2007/1 12 Profa Roberta L.G. - LPRM/DI/UFES Sistemas de Tempo Real Sistemas dedicados a uma classe de aplicações, tipicamente de controle e medição, que exigem monitoramento contínuo de instrumentos. Ex: sistemas de controle industriais, sistemas robóticos, sistemas de realidade virtual, automação doméstica, etc. Ex: QNX, CMX-RTX, LynxOS, RTMX, etc. Possuem restrições temporais bem definidas O tempo de resposta é considerado crítico Sistemas de Programação I – 2007/1 13 Profa Roberta L.G. - LPRM/DI/UFES Evolução dos S.O. x Arquitetura de Comp. Sistemas Sistemas Sistemas Sistemas Sistemas Sistemas de Programação I – 2007/1 Mainframes Desktop Distribuídos Handheld Paralelos 14 Profa Roberta L.G. - LPRM/DI/UFES Sistemas Mainframes Primeiros sistemas computacionais usados na resolução de problemas comerciais e aplicações científicas. Nos dias atuais,são projetados para processamento de grande volume de dados. Arquitetura de hardware complexa. Trabalham em multimodo (usualmente “batch” e “time- sharing”). Sistemas de Programação I – 2007/1 15 Profa Roberta L.G. - LPRM/DI/UFES Sistemas Desktop Integração em muito larga escala (VLSI) levou adiante o projeto de miniaturização e barateamento dos equipamentos. Surgiram os microcomputadores (Personal Computer - PC) de 16 bits da IBM e o Sistema Operacional da Microsoft MS-DOS, criando a filosofia dos computadores pessoais. Apresenta conveniência para o usuário, com um bom tempo de resposta e uma boa taxa de processamento a um custo relativamente baixo. Pode rodar diferentes tipos de S.O. (Windows, MacOS, UNIX, Linux, etc.) Apesar de monousuárias, os S.O.s permitem que se executem diversas tarefas concorrentemente Multitarefa ou Multiprogramação Sistemas de Programação I – 2007/1 16 Profa Roberta L.G. - LPRM/DI/UFES Sistemas Distribuídos (1) Conjunto de computadores interconectados de forma a possibilitar a execução de um serviço. Requer uma infra-estrutura física de redes (LAN, WAN) e suporte de protocolos de comunicação (TCP/IP). A realização de uma tarefa é distribuída entre vários nós da rede. A existência de várias máquinas é transparente, isto é, o Sistema Operacional fornece uma visão única do sistema Vantagens: Compartilhamento de recursos; Balanceamento de carga; Aumento da velocidade de computação; Maior confiabilidade Sistemas de Programação I – 2007/1 17 Profa Roberta L.G. - LPRM/DI/UFES Sistemas Distribuídos (2) Diferentes arquiteturas Peer to Peer: Sistemas “fracamente acoplados” onde cada nó é uma máquina independente, com seu próprio S.O. e sua própria memória local Cliente-servidor: Servidores são configurados para satisfazer as consultas dos sistemas clientes (servidor de arquivos, servidor de mail, servidor de ftp, etc.). Sistemas de Programação I – 2007/1 18 Profa Roberta L.G. - LPRM/DI/UFES Sistemas Handheld Sistemas operacionais adaptados para dispositivos móveis, como PDAs – Personal Digital Assistants e telefones celulares. Memória limitada, processador mais lento e display de pequenas dimensões. S.O. e aplicações projetados para minimizar o uso do processador (redução do consumo da bateria). Uso possível de tecnologias wireless, como Bluetooth, para acesso remoto a e-mail e navegação Web. Sistemas de Programação I – 2007/1 19 Profa Roberta L.G. - LPRM/DI/UFES Sistemas Paralelos São sistemas com mais de uma CPU atuando de modo colaborativo (“multiprocessor systems”). Os processadores compartilham o barramento, memória e relógio, além de dispositivos periféricos Principais vantagens: Aumento da vazão (“throughput”). Economia de escala; Aumento da confiabilidade. Asymmetric Multiprocessing n processadores => n vezes mais rápido? Relação de mestre-escravo Symmetric Multiprocessing (SMP) Cada processador roda uma cópia idêntica do sistema operacional. A maioria dos sistemas operacionais modernos suporta SMP Sistemas de Programação I – 2007/1 20 Profa Roberta L.G. - LPRM/DI/UFES Monoprogramação (1) Os recursos computacionais estão inteiramente dedicados a um único programa/tarefa. A CPU fica ociosa durante muito tempo enquanto o programa aguarda por um evento (digitação de um dado, leitura do disco, etc.). A memória principal é subutilizada caso o programa não a preencha totalmente. Os periféricos são dedicados a um único programa. Não existe grandes preocupações com a proteção de memória. A complexidade de implementação é relativamente baixa. Sistemas de Programação I – 2007/1 21 Profa Roberta L.G. - LPRM/DI/UFES Monoprogramação Sistemas de Programação I – 2007/1 (2) 22 Profa Roberta L.G. - LPRM/DI/UFES Multiprogramação Vários programas (e vários usuários) competem pelos recursos do sistema. O objetivo é manter mais de um programa em execução “simultaneamente”, dando a ilusão de que cada programa/usuário tem a máquina dedicada para si. A idéia é tirar proveito do tempo ocioso da CPU durante as operações de E/S. Enquanto um programa espera por uma operação de leitura ou escrita outros programas podem estar sendo processados no mesmo intervalo. (1) Maximização do uso do processador e da memória. Maior taxa de utilização do sistema como um todo (redução do custo total máquina/homem). Suporte de hardware: Mecanismo de interrupção (sinalização de eventos). Discos magnéticos (acesso randômico aos programas, melhor desempenho em operações de E/S). Memória Virtual Sistemas de Programação I – 2007/1 23 Profa Roberta L.G. - LPRM/DI/UFES Multiprogramação Sistemas de Programação I – 2007/1 (2) 24 Profa Roberta L.G. - LPRM/DI/UFES Memória Virtual Paginada A Memória Virtual é uma extensão da memória RAM (1) Constituida da junção da memória principal com a memória secundária Utilizamos para obter mais memória que o computador possui fisicamente Espaço de endereçamento: número de palavras endereçáveis Se a máquina utiliza endereços de 16 bits => espaço de endereçamento de 216 = 64 k endereços No entanto uma máquina pode apresentar uma memória física menor Sistemas de Programação I – 2007/1 25 Profa Roberta L.G. - LPRM/DI/UFES Memória Virtual Paginada Espaço de endereços virtuais x Espaço de endereços físicos Os programas “enxergam” o espaço de endereços virtuais O espaço de endereçamento virtual é dividido em um conjunto de páginas do mesmo tamanho (2) Ex: Páginas de 64kB, 4MB, ... O espaço de endereçamento físico também é dividido de forma similar ao virtual Cada “pedaço” da memória principal, chamado de Moldura de Página (Frame), deve ser capaz de armazenar exatamente uma página Sistemas de Programação I – 2007/1 26 Profa Roberta L.G. - LPRM/DI/UFES Memória Virtual Paginada (3) A idéia é que o programador possa usar os endereços virtuais O S.O. dá a ilusão de que todos os endereços virtuais são mantidos na memória principal Páginas de 4k Sistemas de Programação I – 2007/1 27 Profa Roberta L.G. - LPRM/DI/UFES Memória Virtual Paginada (3) O S.O. dá a ilusão de que todos os endereços virtuais são mantidos na memória principal A memória virtual deve ser implementada através de uma Tabela de páginas Sistemas de Programação I – 2007/1 28 Profa Roberta L.G. - LPRM/DI/UFES Memória Virtual Paginada Programa em linguagem de máquina gera endereços virtuais Endereços virtuais divididos em 2 campos (4) Endereço da página Endereço do byte (ou palavra), dentro da página CPU transforma endereço virtual em endereço físico Sistemas de Programação I – 2007/1 29 Profa Roberta L.G. - LPRM/DI/UFES Memória Virtual Paginada (5) Exemplo de mapeamento frame frames frame Sistemas de Programação I – 2007/1 30 Profa Roberta L.G. - LPRM/DI/UFES Referências Andrew S. Tanenbaum, Organização Estruturada de Computadores, 5ª edição, Prentice-Hall do Brasil, 2007. Capítulo 6 Sistemas de Programação I – 2007/1 31 Profa Roberta L.G. - LPRM/DI/UFES