Sistemas Operacionais Aula 4 Tipos de SO Prof.: Edilberto M. Silva http://www.edilms.eti.br SO - Prof. Edilberto Silva Sistemas Operacionais Tipos de Sistemas Operacionais Os Sistemas Operacionais podem ser assim classificados: SO - Prof. Edilberto Silva 2 Sistemas Operacionais Tipos de Sistemas Operacionais Do ponto de vista do número de usuários Monousuário: apenas um e só um usuário trabalha de cada vez. Ex.: DOS, Windows 95 e Windows NT. Multiusuário: permite o uso da máquina por vários usuários ao mesmo tempo, ou seja, cada usuário pode executar um ou mais programas simultaneamente. Ex.: Unix e o OpenVMS. Convém alertar que o Windows NT, embora seja considerado freqüentemente um sistema multiusuário, é conceitualmente classificado como monousuário, já que seus usuários, conectados em rede, não têm acesso aos recursos do servidor (a não ser em aplicações específicas de cliente-servidor) SO - Prof. Edilberto Silva 3 Sistemas Operacionais Tipos de Sistemas Operacionais Do ponto de vista da forma de execução: Sistema monoprogramado ou monotarefa - processador, memória principal e dispositivos de E/S (periféricos) ficam dedicados a um único usuário/programa. Sistema multiprogramado ou multitarefa - Os recursos da máquina são alocados de modo dinâmico entre o número de programas ativos de acordo com o nível de prioridade ou o estágio de execução de cada um dos programas. O sistema operacional gerencia o acesso concorrente aos seus diversos recursos, de forma ordenada e protegida, pelos diversos programas. SO - Prof. Edilberto Silva 4 Sistemas Operacionais Tipos de Sistemas Operacionais Do ponto de vista da forma de execução: Nos sistemas monotarefas, os programas são executados instrução-a-instrução, até que seu processamento seja concluído, ou seja, todos os recursos da máquina são alocados para um único programa até a conclusão de sua execução. Por exemplo, enquanto o programa aguarda a digitação de um dado, o processador fica ocioso sem realizar qualquer tarefa; a memória é subtilizada caso o programa não a preencha totalmente e os periféricos, como discos e impressoras, nem sempre são utilizados de forma integral. O sistema operacional só tem capacidade de controlar e gerenciar um programa de cada vez. SO - Prof. Edilberto Silva 5 Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas monotarefa: São de simples implementação, se comparados a outros sistemas, não havendo muita preocupação com problemas de proteção, pois só existe um usuário/programa utilizando-o. • Estão tipicamente relacionados ao surgimento dos mainframes e a introdução dos computadores pessoais e estações de trabalho SO - Prof. Edilberto Silva 6 Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas monotarefa: • O sistema DOS (DISK OPERATING SYSTEM ) pode ser considerado um sistema monoprogramado com algumas características especiais; os programas TSR (Terminate and Stay Resident) têm a capacidade guardar o contexto do que estava sendo executado, desviando o fluxo original de execução, ou seja, pode haver um número arbitrário de processos na memória, mas somente um deles pode estar ativo; apesar de suportar a existência simultânea de vários processos, ele não é um sistema multiprogramado . SO - Prof. Edilberto Silva 7 Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas multitarefa: O sistema operacional gerencia o acesso concorrente aos seus diversos recursos, de forma ordenada e protegida, pelos diversos programas. Dessa forma é possível aumentar a produtividade e reduzir os custos de utilização do sistema, aproveitando melhor o hardware. Por exemplo, enquanto um programa espera por uma operação de leitura ou gravação em disco, outros programas podem estar sendo processados no mesmo intervalo de tempo. São mais complexos e eficientes do que os sistemas monoprogramados, já que vários programas utilizam os mesmos recursos. SO - Prof. Edilberto Silva 8 Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas multitarefa: Os sistemas multitarefa podem ser classificados pela forma com que suas aplicações são gerenciadas/interadas com os usuários, sendo que um sistema operacional pode suportar um ou mais desses tipos de processamento: • BATCH (LOTE) • TIME-SHARING (TEMPO-COMPARTILHADO • REAL-TIME (TEMPO-REAL) SO - Prof. Edilberto Silva 9 Sistemas Operacionais Tipos de Sistemas Operacionais Tipos de sistemas multitarefa: BATCH (LOTE) - Os programas, quando executados, são armazenados em disco ou fita, onde esperam para serem ‘atendidos’. Normalmente, os programas (jobs ou tarefas) que são executados nesses sistemas não exigem interação com os usuários (por exemplo, compilações e linkedições); TIME-SHARING (TEMPO-COMPARTILHADO) - O sistema operacional aloca uma ‘fatia de tempo’ (time-slice) do processador para cada usuário. Caso o programa do usuário não esteja concluído nesse intervalo de tempo, ele é substituído por um de outro usuário, e fica esperando por uma nova fatia de tempo. Permitem a interação dos usuários com o sistema; SO - Prof. Edilberto Silva 10 Sistemas Operacionais Tipos de Sistemas Operacionais Tipos de sistemas multitarefa: REAL-TIME (TEMPO-REAL) - Semelhante ao time-sharing, sendo a maior diferença o tempo de resposta exigido na execução. Enquanto em sistemas de tempo compartilhado o tempo de resposta pode variar sem comprometer as aplicações em execução, nos sistemas de tempo real os tempos de resposta devem estar dentro de limites rígidos. Não existe a idéia de fatia de tempo, um programa executa o tempo que for necessário, ou até que apareça outro prioritário em função de sua importância. Essa importância ou prioridade de execução é controlada pela própria aplicação e não pelo sistema operacional, como acontece no sistema de tempo-compartilhado. Esse tipo de sistema está normalmente presente em controle de processos, como no monitoramento de refinarias de petróleo, controle de tráfego aéreo, usinas termoelétricas e nucleares, ou em qualquer aplicação onde a segurança é fator fundamental. SO - Prof. Edilberto Silva 11 Sistemas Operacionais Tipos de Sistemas Operacionais Do ponto de vista do número de processadores: Sistema monoprocessado - Caracteriza-se por possuir um único processador, sendo este controlado pelo sistema operacional instalado. Ex.: Microcomputador PC com Windows 98 Sistema multiprocessado - Caracteriza-se por possuir mais de um processador, sendo que estes podem compartilhar o mesmo sistema operacional, ou cada um pode possuir o seu próprio sistema. SO - Prof. Edilberto Silva 12 Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas multiprocessados: Múltiplos processadores permitem que vários programas sejam executados ao mesmo tempo, ou que um programa seja dividido em subprogramas, para execução simultânea por mais de um processador. Sistemas com múltiplos processadores possibilitam aumentar a capacidade computacional com menor custo (escalabilidade), além de permitirem a reconfiguração e o balanceamento do sistema. A reconfiguração é a capacidade de um sistema poder continuar o processamento, mesmo se um dos processadores falhar ou parar de funcionar, embora com menor capacidade de computação. O balanceamento possibilita distribuir a carga de processamento entre os diversos sistemas da configuração, melhorando o desempenho como um todo. SO - Prof. Edilberto Silva 13 Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas multiprocessados: O multiprocessamento mantém todos os conceitos de multiprogramação, só que aplicados a vários processadores. Com o multiprocessamento, novos problemas de concorrência foram surgindo, pois vários processadores podem estar acessando as mesmas áreas de memória, além da dificuldade de interligação eficiente dos processadores, memória e periféricos. Para o desenvolvimento de sistemas operacionais com múltiplos processadores é importante que se conheça a forma de comunicação entre esses processadores e o grau de compartilhamento da memória principal e dos dispositivos de E/S. Em função desses fatores, podemos classificar os sistemas em: • Fortemente acoplados • Fracamente acoplados SO - Prof. Edilberto Silva 14 Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas multiprocessados: fortemente acoplados – dois ou mais processadores (multiprocessadores) compartilhando uma única memória e controlados por apenas um sistema operacional. Podem ser divididos conforme a simetria existente entre os processadores, ou seja, se todos os processadores podem executar ou não as mesmas funções: SO - Prof. Edilberto Silva 15 Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas multiprocessados: • nos sistemas assimétricos ou mestre/escravo somente um processador (mestre) pode executar serviços do sistema operacional, como realizar operações de E/S. Sempre que um processador do tipo escravo precisar realizar uma operação de E/S, terá que requisitar o serviço ao processador mestre; • nos sistemas simétricos (SMP – Simmetric MultiProcessing) todos os processadores realizam as mesmas funções, ficando a cargo de um único processador algumas poucas funções, como, por exemplo, a inicialização (boot). Ex.: microcomputadores PC com vários processadores que servem de servidores de redes departamentais com sistema operacional Windows NT, que implementa SMP. SO - Prof. Edilberto Silva 16 Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas multiprocessados: fracamente acoplados – caracterizam-se por possuir dois ou mais processadores (multicomputadores), conectados através de linhas de comunicação, onde cada um desses sistemas funciona de forma independente, possuindo seu(s) próprio(s) processador(es), memória principal e dispositivos de E/S. Em uma rede multicomputadores, onde existem dois um mais sistemas independentes, também chamados de nós, hosts ou estações, podemos classificar os sistemas como sendo: • Sistemas operacionais de redes • Sistemas operacionais distribuídos SO - Prof. Edilberto Silva 17 Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas operacionais de redes – cada nó possui seu próprio SO, além de hardware e software que possibilitam ao sistema ter acesso o outros nós da rede. Cada nó é totalmente independente um do outro, podendo inclusive possuir sistemas operacionais diferentes. Os sistemas operacionais de redes permitem cópia de arquivos, impressão e até gerência remotas, além de serviços de correio eletrônico, emulação de terminais. A idéia é prover o compartilhamento de recursos e troca de informações. Ex.: Redes locais SO - Prof. Edilberto Silva 18 Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas operacionais distribuídos – cada nó também possui seu próprio sistema operacional, memória principal, processador e dispositivos de E/S. Porém, existe um “relacionamento” mais forte entre esses nós, que, geralmente, possuem o mesmo SO. Para o usuário e suas aplicações, o conjunto de computadores é “visto” como um único sistema, como se não existisse uma rede de computadores. A grande vantagem é a possibilidade do balanceamento de carga, ou seja, quando um programa é admitido para execução, o sistema escolhe o nó que está com menor carga de processamento e este vai executá-lo. Também é permitido o compartilhamento de recursos independentemente do computador em que a aplicação estiver sendo executado. Esse tipo de sistema distribuído é muitas vezes chamado de cluster. Ex.: Rede de computadores com sistema operacional UNIX SOLARIS da SUN. SO - Prof. Edilberto Silva 19 Sistemas Operacionais Tipos de Sistemas Operacionais Implementação de Sistemas Multiprogramáveis A transferência de dados entre o mundo externo e a memória é possibilitada através do uso de dispositivos periféricos de Entrada/Saída. Estes dispositivos são conectados ao conjunto memória e processador por portas de E/S de dados, através das quais ocorre a transferência, bem como controle e monitoração do estado dos dispositivos. Uma vez definidos o espaço de endereçamento que será ocupado pela porta (I/O base address) e a forma como os dados serão transferidos, resta saber como informar ao processador a respeito da disponibilidade, por parte do dispositivo, para executar a operação de E/S. SO - Prof. Edilberto Silva 20 Sistemas Operacionais Tipos de Sistemas Operacionais Implementação de Sistemas Multiprogramáveis A transferência de dados entre o mundo externo e a memória é possibilitada através do uso de dispositivos periféricos de Entrada/Saída. Estes dispositivos são conectados ao conjunto memória e processador por portas de E/S de dados, através das quais ocorre a transferência, bem como controle e monitoração do estado dos dispositivos. Uma vez definidos o espaço de endereçamento que será ocupado pela porta (I/O base address) e a forma como os dados serão transferidos, resta saber como informar ao processador a respeito da disponibilidade, por parte do dispositivo, para executar a operação de E/S: • E/S controlada por programa • E/S controlada por interrupção • Acesso Direto à Memória (Direct Memory Access- DMA) SO - Prof. Edilberto Silva 21 Sistemas Operacionais Tipos de Sistemas Operacionais Implementação de Sistemas Multiprogramáveis E/S controlada por programa • O controle das operações de E/S era feito pela UCP. Os programas continham instruções de E/S que orientavam essas operações de E/S e o programador necessitava conhecer detalhes específicos de cada periférico. • Um novo hardware, denominado controlador (ou interface), surgiu e a UCP não se comunica mais de forma direta com os dispositivos de E/S. Todo acesso aos dispositivos era então feito através do controlador, o que simplificava as instruções de E/S, por não ser mais necessário especificar detalhes de operação dos dispositivos, tarefa esta realizada pelo controlador. SO - Prof. Edilberto Silva 22 Sistemas Operacionais Tipos de Sistemas Operacionais Implementação de Sistemas Multiprogramáveis E/S controlada por interrupção • Com a implementação do mecanismo de interrupção no hardware dos computadores, as operações de E/S podem ser realizadas de uma forma mais eficiente. Ao invés do sistema operacional testar periodicamente o estado dos dispositivos, o próprio dispositivo, realiza este teste, através do controlador SO - Prof. Edilberto Silva 23 Sistemas Operacionais Tipos de Sistemas Operacionais SO - Prof. Edilberto Silva 24 Sistemas Operacionais Tipos de Sistemas Operacionais Implementação de Sistemas Multiprogramáveis Acesso Direto à Memória (DMA) • A técnica de Acesso Direto à Memória (do inglês Direct Memory Access - DMA) é usada em transferências de grupos de dados em casos nos quais a UCP não pode ser sobrecarregada. Em uma transferência de DMA, seqüências de dados presentes em uma área de memória são enviados diretamente para um dispositivo de E/S, sem intervenção direta da CPU. Quem faz o trabalho de transferência é o circuito controlador de DMA (antes um chip 8237A, agora embutido no chipset da placa-mãe). • A UCP indica ao controlador de DMA, qual é o número de bytes a serem transferidos e qual é o endereço inicial de memória para transferência. Ao término da transferência, o controlador de DMA avisa ao dispositivo, que por sua vez interrompe a CPU para indicar que o trecho já foi transferido. Transferências de DMA também são usadas em dispositivos SCSI, e ainda nos atuais discos IDE que operam a 33 MB/s (Ultra DMA 33). SO - Prof. Edilberto Silva 25 Sistemas Operacionais Tipos de Sistemas Operacionais Implementação de Sistemas Multiprogramáveis Técnica de Buffering • A técnica de buffering consiste na utilização de uma área de memória (volátil) para transferência de dados entre os periféricos e a UCP, denominada buffer. Com isso, a UCP pode manipular os dados antes de transferi-los para o dispositivo periférico de E/S, reduzindo a perda de eficiência decorrente da disparidade existente entre o tempo de processamento e o tempo gasto para realização de uma operação de E/S. • Editores de texto empregam buffer para manter as alterações que devem ser gravadas; então quando o usuário salva o arquivo, o editor atualiza o arquivo em disco com o conteúdo do buffer. Isto é muito mais eficiente do que acessar o arquivo em disco cada vez que o usuário realizar uma alteração. SO - Prof. Edilberto Silva 26 Sistemas Operacionais Tipos de Sistemas Operacionais Implementação de Sistemas Multiprogramáveis Técnica de Spooling • O spool (Simultaneous Peripheral Operations On- Line) consiste na utilização de um meio magnético de armazenamento (disco, fita) como um grande buffer. – A aplicação mais comum do conceito de spool é em impressoras. Os documentos são preparados para impressão e armazenados em uma área no disco. Posteriormente, enquanto a impressora lê e imprime esses trabalhos pendentes, outras operações podem ser realizadas pelo processador; – Processamento batch de tarefas em um sistema. SO - Prof. Edilberto Silva 27