Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais - PDF Download grátis
Download "Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais"
Airton Mirandela Barreto
1 Introdução Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Hardware Provê os recursos básicos de computação (CPU, memória, E/S,etc.) Programas (aplicações) 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. Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/1 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. 2 Introdução Visão Abstrata 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 3 4
2 Definições A program that controls the execution of application programs. An interface between applications and hardware. Programa que age como um intermediário entre o usuário de um computador e o hardware deste computador. Resource allocator Gerencia e aloca recursos. Control program 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) 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. 5 6 Organização Típica (1) 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 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. 7 Organização Típica (2) Sistema de Arquivos 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. 8
3 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) Ex:Windows, OS/2, Unix. PROCESSO == Programa em Execução Processo 3 Processo 2 Processo 1 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 ) 9 10 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 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 )
4 Sistemas de Tempo Real Evolução dos S.O. x Arquitetura de Comp. 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 Mainframes Sistemas Desktop Sistemas Distribuídos Sistemas Handheld Sistemas Paralelos 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 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 15 16
5 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 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 Handheld Sistemas Paralelos 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 navegação Web. 19 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 ). n processadores => n vezes mais rápido? Economia de escala; Aumento da confiabilidade. Asymmetric Multiprocessing 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 20
6 Monoprogramação (1) Monoprogramação (2) 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 Multiprogramação (1) 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. 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 23 Multiprogramação (2) 24
7 Memória Virtual Paginada (1) Memória Virtual Paginada (2) A Memória Virtual é uma extensão da memória RAM 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 2 16 = 64 k endereços No entanto uma máquina pode apresentar uma memória física menor 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 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 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 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 Páginas de 4k 27 28
8 Memória Virtual Paginada (4) Memória Virtual Paginada (5) Programa em linguagem de máquina gera endereços virtuais Exemplo de mapeamento Endereços virtuais divididos em 2 campos Endereço da página Endereço do byte (ou palavra), dentro da página frame CPU transforma endereço virtual em endereço físico frame frames Referências Andrew S. Tanenbaum, Organização Estruturada de Computadores, 5ª edição, Prentice-Hall do Brasil, Capítulo 6 31