Sistemas Operacionais Prof. Ms. Márcio Andrey Teixeira A Caracterização dos Sistemas Operacionais Prof. Dr. Márcio Andrey Teixeira Funções do S.O • Administração de Processos • Administração da Memória Principal • Administração do Armazenamento Secundário • Administração do Sistema de E/S Prof. Dr. Márcio Andrey Teixeira Componentes do S.O • Administração de Arquivos • Sistema de Proteção • Interconexão – Comunicação • Interpretador de Comandos do Sistema Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Monoprogramáveis/Monotarefas Como o próprio nome implica, o sistema operacional permite que apenas um programa (tarefa) seja executado de cada vez (monoprogramável). Os sistemas monoprogramáveis ou monotarefa se caracterizam por permitir que o processador, a memória, e os periféricos fiquem dedicados a um único usuário (monousuário). Nesses sistemas, enquanto o programa aguarda por um evento, como a digitação de um dado, o processador ficará ocioso sem realizar qualquer tarefa. A memória é subutilizada caso o programa não a preencha totalmente. O tempo de utilização da CPU é de aproximadamente 30% Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Sistemas Multiprogramáveis/Multitarefa Multiprogramaveis/Multitarefas – podem ser classificados pela forma com que suas aplicações são gerenciadas. Sistemas Multiprogramaveis - Vários programas podem utilizar o mesmo recurso. Sistemas de Multitarefas - permite ao usuário editar textos, imprimir arquivos, ou seja, varias tarefas ao mesmo tempo. Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Sistemas Multiprogramáveis/Multitarefa Nos sistemas multiprogramáveis o tempo de utilização da CPU sobe para até 90%. A memória principal é utilizada de forma mais eficiente, pois existe vários programas residentes se revezando na utilização do processador. Prof. Dr. Márcio Andrey Teixeira A memória principal é dividia em partes para cada programa em execução. Ex:. O termo multitarefa refere-se à capacidade que um sistema operacional tem de rodar mais de um programa ao mesmo tempo. Prof. Dr. Márcio Andrey Teixeira Multitarefa Preemptiva Multitarefa Preemptiva Nesse esquema, o sistema operacional mantém uma lista dos processos (ou programas) que estão sendo executados. Quando cada processo da lista é iniciado, ele recebe do sistema operacional uma prioridade. Na multítarefa preemptiva, o sistema operacional pode interromper o processo que está em execução e, a qualquer momento, reatribuir o tempo para uma tarefa com prioridade mais alta. UNIX, OS/2, Windows NT e Windows 95 empregam a multitarefa preemptiva. Prof. Dr. Márcio Andrey Teixeira Multitarefa (Monousuário) Alguns sistemas monousuários proporcionam a multitarefa, ou seja, permitem que um usuário tenha mais de uma atividade em execução ao mesmo tempo. Um exemplo típico de um sistema operacional monousuário, multitarefa, é o Windows 95. SISTEMAS TIME-SHARING (MULTIUSUÁRIO) Quando os usuários interagem com o computador através de terminais (on-line) enquanto seus jobs estão sendo executados, diz-se que eles são "usuários interativos". O sistema operacional multiusuário permite que mais de um usuário acesse o computador ao mesmo tempo. É claro que, para tanto, o sistema operacional multiusuário também tem de ser multitarefa. Ex:. Unix. Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Sistemas de Tempo Compartilhado (time-sharing) Interação dos usuários com o sistema (vídeo, teclado, mouse). Para cada usuário, o SO aloca uma fatia de tempo do processador Não só o processador, mas também, memória, periféricos (discos, impressoras), são compartilhados. O controle de prioridade é feito pelo sistema operacional. Tem-se a impressão do sistema ser dedicado somente a um usuário. Sua implementação é complexa. Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Sistemas de Tempo Real (time-real) Tempo de respostas dentro dos limites rígidos. Programa detém o processador o tempo que for necessário ou até que apareça outro prioritário. Presente em aplicações onde o tempo de resposta é fator fundamental. Ex: refinarias de petróleo, tráfego aéreo, usinas nucleares e de energia. Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Sistemas com Múltiplos Processadores Duas ou mais CPUs interligadas, com trabalho em conjunto. Aumento da capacidade computacional Em função da forma de comunicação entre as UCP’s e o grau de compartilhamento de memória e dos dispositivos de entrada e saída podemos classificar os sistemas em fortemente acoplados ou fracamente acoplados. Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Sistemas Fortemente Acoplados Dois ou mais processadores compartilhando uma memória e são controlados por um sistema operacional. Sistemas fortemente acoplados Assimétricos – Processador primário responsável pelos demais processadores (secundários) e pelo execução do sistema operacional. Sistemas fortemente acoplados simétricos – todos os processadores tem as mesmas funções, podendo executar o sistema operacional independente. Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Sistemas Assimétricos Mestre/escravo. Somente um processador (mestre), pode executar serviços do sistema operacional. Sempre que um processador escravo precisar realizar uma operação de entrada/saída terá que requisitar o serviço ao processador mestre. Se o processador mestre falhar todos os outros ficaram incapaz de continuar o processamento. Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Sistemas Simétricos Todos os processadores realizam as mesmas funções. Todos os processadores utilizam a mesma memória e o mesmo S.O. Quando acontecer de mais de um processador fazer um acesso à mesma área de memória, fica a cargo do hardware e do S.O. a resolução dos problemas. Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Sistemas Simétricos Apenas algumas poucas funções ficam a cargo de um único processador, como, por exemplo, a inicialização (boot) do sistema. Paralelismo – o programa é executado por qualquer processador, inclusive por vários processadores ao mesmo tempo. Não há problemas de falhas, pois se um processador falhar outro se encarrega da sua função. Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Sistemas Fracamente Acoplados Caracterizam-se por possuir dois ou mais sistemas de computação interligados, sendo que cada sistema possui o seu próprio sistema operacional, gerenciando os seus recursos, como processador, memória e dispositivos de entrada e saída. Sistemas centralizados – os usuários utilizam terminais não inteligentes conectados a linhas seriais dedicadas ou linhas telefônicas públicas para a comunicação interativa com estes sistemas. Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Sistemas Fracamente Acoplados Com a evolução dos computadores pessoais e das estações de trabalho juntamente com o avanço das telecomunicações e da tecnologia de redes, surgiu um novo modelo de computação, chamado modelo de redes de computadores. Em uma rede existem dois ou mais sistemas independentes, também chamados de nós, hosts ou estações, com capacidade de processamento própria e interligada através de linhas de comunicação. Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Sistemas Operacionais de Rede Cada nó (sistema distribuído ou estação) possui seu próprio sistema operacional. Ele permite a copia remota de arquivos, emulação de terminal, impressão e gerencia remota, correio eletrônico. No caso de uma estação sofrer qualquer problema, os demais componentes da rede podem continuar o processamento Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Sistemas Operacionais Distribuídos Cada nó (sistema distribuído ou estação) possui seu próprio sistema operacional, memória, processador e dispositivos. Geralmente os sistemas operacionais são os mesmos. Tem a impressão de ter somente um sistema centralizado. A grande vantagem desse sistema é a possibilidade do balanceamento de cargas Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Interrupção e Exceção São intervenções do Sistema Operacional A interrupção e a exceção podem ser resultado da execução de instruções do próprio programa, gerado pelo sistema operacional ou por algum dispositivo de hardware. O que diferencia interrupção de exceção é o tipo de evento que gera esta condição. Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Interrupção e Exceção Interrupção é gerada pelo sistema operacional ou por algum dispositivo físico. Existem vários tipos diferentes de interrupções É em função da interrupção que o SO sincroniza a execução de todas as suas rotinas e dos programas dos usuários Prof. Dr. Márcio Andrey Teixeira Interrupção PROGRAMA ..................... ..................... ...................... . .................... ............... .................... ..................... ...................... ...................... ..................... .................... ................... ..................... ...................... ... ...................... ...................... ..................... SALVA REGS. IDENTIFICA A ORIGEM DA INTERRUPÇÃO OBTÉM O END. DA ROTINA DE TRATAMENTO ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. DO SO RESTAURA REGS. Prof. Dr. Márcio Andrey Teixeira ROTINA DE TRATAMENTO Ciclo de Interrupção • O processador checa a interrupção; – Indicado por um sinal de interrupção; • Se não tem interrupção, busca a próxima instrução; • Se há interrupção pendente: – Suspende a execução do programa corrente; – Salva o contexto do programa; – Configura o PC para buscar o endereço da rotina que trata a interrupção; – Processa a interrupção; – Restaura o contexto e continua o programa interrompido; Prof. Dr. Márcio Andrey Teixeira Múltiplas interrupções • Desabilitar interrupções; – O processador irá ignorar futuras interrupções enquanto processa uma interrupção; – As interrupções que permanecem pendentes são checadas depois que a primeira interrupção tenha sido processada; – As interrupções são controladas na seqüência em que elas ocorrem; • Definição de prioridades; – Interrupções com baixa prioridade podem ser interrompida por interrupções de alta prioridade; – Quando uma interrupção de alta prioridade tenha sido processada, o processador retorna para a previa interrupção; Prof. Dr. Márcio Andrey Teixeira Interrupções seqüenciais Prof. Dr. Márcio Andrey Teixeira Interrupções com prioridades Prof. Dr. Márcio Andrey Teixeira Exemplo de interrupções Se tudo estiver configurado corretamente, quando uma tecla é digitada, o teclado envia um pedido de interrupção para a CPU. Neste caso, a CPU interrompe o código em execução e chama uma função que fará a leitura da porta 0x60 (a porta de saída do teclado) para determinar o que o teclado está enviando. IRQs As IRQs (Interrupt Request - Requisição de Interrupção) são interrupções disparadas pelo hardware. Existem 16 no total e são numeradas de 0 a 15. Quando ocorre uma interrupção de hardware, uma série de eventos é desencadeado. Para simplificar o processo e aumentar a compatibilidade dos dispositivos nas diferentes plataformas, quando um dispositivo dispara uma IRQ, ele a dirige para o PIC (Controlador de interrupções programável). O PIC identifica o número da IRQ e depois avisa a CPU. A CPU, assim que terminar a instrução corrente, executa o número da interrupção recebida. Prof. Dr. Márcio Andrey Teixeira Características e evolução dos Sistemas Operacionais Interrupção e Exceção Com a evolução dos sistemas operacionais foi introduzido o conceito de exceção Exceção é o resultado direto da execução de uma instrução do próprio programa, ou seja, uma interrupção causada por software. Existem 15 tipos de exceções na CPU, x86, por exemplo, Erro de divisão por 0, Overflow, etc. Prof. Dr. Márcio Andrey Teixeira