Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS OPERACIONAIS Unidade II Unidade 2 – Tipos, Multiprogramação e Estrutura de SO 1.1 e 1.2 - Tipos de SO e suas características. Prof. Fernando Hämmerli SISTEMAS OPERACIONAIS Unidade II Bibliografia: Básica: MACHADO, F. B.; MAIA, L. P. M. Arquitetura de sistemas operacionais. 5. ed. Rio de Janeiro: LTC, 2013. SILBERSCHATZ, A. Fundamentos de Sistemas operacionais – Princípios básicos. 1. ed. Rio de Janeiro: LTC, 2013. TANEMBAUM, A. S.; BOS, H. Sistemas Operacionais Modernos. 4. ed. São Paulo: Pearson, 2016 2 Complementar: DEITEL, H. M.; DEITEL, P. J.; CHOFFNES, D. R. Sistemas Operacionais. 3. ed. São Paulo: Prentice Hall, 2005. FLYNN, I. M.; MCHOES, A. M. Introdução aos Sistemas Operacionais. 1. ed. São Paulo: Pioneira Thomson Learning, 2002. MACHADO, F. B.; MAIA, L. P. M. Fundamentos de sistemas operacionais. 1. ed. Rio de Janeiro: LTC, 2011. MARQUES, J. A.; FERREIRA, P.; RIBEIRO, C.; VEIGA, L.; RODRIGUES, R. Sistemas Operacionais. 1. ed. Rio de Janeiro: LTC, 2011. OLIVEIRA, R. S.; CARISSIMI, A. S.; TOSCANI, S. S. Sistemas operacionais. 4. ed. Porto Alegre: Bookman, 2010. (Livros Didáticos Informática UFRGS, v. 11). Unidade II SISTEMAS OPERACIONAIS TIPOS DE SISTEMAS OPERACIONAIS Unidade II SISTEMAS OPERACIONAISMemória Principal Dispositivos de E/ S UCP programa/ tarefa SISTEMA OPERACIONAL MONOPROGRAMÁVEL/MONOTAREFA Somente um programa executado por vez Todos os recursos reservados para somente um programa/tarefa Exemplos: o IBM-OS o DEC-system 1 o CP/M o MS-DOS Unidade II SISTEMAS OPERACIONAIS SISTEMA OPERACIONAL MONOPROGRAMÁVEL/MONOTAREFA •Recursos da máquinas dedicados exclusivamente a um programa •Desperdício de tempo da UCP (CPU) durante operações de E/S •Desperdício de memória, se não totalmente ocupada Unidade II SISTEMAS OPERACIONAIS Memória Principal Dispositivos de E/ S UCP programa/ tarefa programa/ tarefa programa/ tarefa programa/ tarefa programa/ tarefa SISTEMA OPERACIONAL MULTIPROGRAMÁVEL/MULTITAREFA Unidade II SISTEMAS OPERACIONAIS Recursos da máquinas compartilhados entre programas O uso da UCP é revezado, aumentando seu aproveitamento A memória armazena os dados dos diversos programas em execução SISTEMA OPERACIONAL MULTIPROGRAMÁVEL/MULTITAREFA Unidade II SISTEMAS OPERACIONAIS Monousuário Atende a apenas um usuário Computadores Pessoais Estações de trabalho Multiusuário Atende a dois ou mais usuários simultâneamente Terminais diretamente conectados ao computador Acesso através de rede Um sistema operacional pode se comportar de mais uma forma, conforme sua especificação. SISTEMA OPERACIONAL MULTIPROGRAMÁVEL/MULTITAREFA Unidade II SISTEMAS OPERACIONAIS TIPOS DE SISTEMAS OPERACIONAIS Unidade II SISTEMAS OPERACIONAIS PROCESSAMENTO EM LOTES (BATCH) Não há interração entre o usuário e o sistema durante a execução da tarefa. O usuário solicita a execução e aguarda o resultado final do processamento. Os dados de entrada (INPUT) do programa são obtidos de unidades de armazenamento. (Ex: disco) Exemplos: Processamento de compiladores Back-ups Cálculos numéricos Simulações Renderização de vídeos Unidade II SISTEMAS OPERACIONAIS PROCESSAMENTO EM LOTES (BATCH) Unidade II SISTEMAS OPERACIONAIS PROCESSAMENTO DE TEMPO COMPARTILHADO (TIME-SHARING) O SO atribui fatias de tempo para cada programa em execução. Esgotado o tempo, o programa é suspenso para dar lugar a outro, sendo retomado posteriormente. Pseudoparalelismo (sensação de programas sendo executados paralelamente). Este procedimento objetiva compartilhar o processador por várias tarefas de forma concorrente. Bom para processamento transacional ou interativo. Usado na maioria das aplicações comerciais (bom tempo de resposta e baixo custo devido ao compartilhamento de recursos) Unidade II SISTEMAS OPERACIONAIS PROCESSAMENTO DE TEMPO COMPARTILHADO (TIME-SHARING) Unidade II SISTEMAS OPERACIONAIS PROCESSAMENTO DE TEMPO REAL (RTOS) Para sistemas onde o tempo de resposta é crítico As operações devem ser executadas em tempo inferior a um limite pré-determinado. Se esse limite é ultrapassado, há uma falha do sistema. O limite é estabelecido conforme a aplicação do programa. A eficiência de um RTOS é dada pelo tempo de resposta e não pelo volume de dados processados. Típico para controle de processos: Monitoramento de válvulas de segurança em instalações industriais Controle de tráfego aéreo Piloto automático Unidade II SISTEMAS OPERACIONAIS PROCESSAMENTO DE TEMPO REAL (RTOS) Soft Real-time Tempo de resposta é crítico, mas tolera pequenos atrasos (falhas) no cumprimento dos prazos. Atrasos apenas degradam a qualidade da resposta, mas não comprometem o sistema. Garantia apenas probabilística (ou seja, garante que a maioria das operações é excutada no prazo). Percentual pré-definido. Exemplos: Transmissão/recepção de áudio e vídeo. Telefone celular Aquisição de imagens Unidade II SISTEMAS OPERACIONAIS PROCESSAMENTO DE TEMPO REAL (RTOS) Hard Real-time Não admite atrasos! Uma operação não cumprida dentro do prazo é uma falha grave e pode comprometer todo o sistema. O sistema garante determinísticamente que todas as operações serão executadas dentro do prazo pré-estabelecido. Exemplos: Piloto automático Válvulas do reator de uma usina nuclear Equipamentos médicos Unidade II SISTEMAS OPERACIONAIS PROCESSAMENTO DE TEMPO REAL (RTOS) Para garantir os objetivos de tempo, o desenvolvimento de um RTOS possui uma abordagem diferente da usada nos demais sistemas multiprogramáveis/multitarefas. Muitas técnicas para otimizar uso de memória, CPU e outros recursos não podem ser usadas sob pena de comprometerem o tempo de resposta do sistema. Unidade II SISTEMAS OPERACIONAIS SISTEMAS COM MÚLTIPLOS PROCESSADORES Unidade II SISTEMAS OPERACIONAIS SISTEMAS FORTEMENTE ACOPLADOS UCP´s próximas Memória compartilhada Elevada largura de banda Retardo na comunicação é baixo Exemplo: SMP SISTEMAS OPERACIONAIS Unidade II TIPOS DE SISTEMAS OPERACIONAIS SISTEMAS FRACAMENTE ACOPLADOS UCPs distantes Largura de banda reduzida Retardo na comunicação elevado Exemplo: Multicomputadores Unidade II SISTEMAS OPERACIONAIS SISTEMAS MULTIPROGRAMÁVEIS Interrupção e Exceção Unidade II SISTEMAS OPERACIONAIS Interrupção e Exceção Sinal enviado ao processador que ocasiona um desvio forçado no fluxo de execução. Unidade II SISTEMAS OPERACIONAIS 1. Após a execução de cada instrução do programa, a UCP verifica se houve interrupção. Se não houve, a UCP continua processando o programa normalmente. Unidade II SISTEMAS OPERACIONAIS 2. Se houve interrupção. Dados de registradores (incluíndo o contador do programa) são armazenados na pilha de controle. Unidade II SISTEMAS OPERACIONAIS 3. A UCP verifica a origem do evento. A ação a ser tomada varia conforme quem gerou a interrupção/exceção e qual o seu objetivo. Unidade II SISTEMAS OPERACIONAIS 4. A UCP carrega o registrador PC com o endereço da rotina responsável para tratar a interrupção/exceção recebida. Unidade II SISTEMAS OPERACIONAIS 5. A rotina de tratamento começa a ser executada. Unidade II SISTEMAS OPERACIONAIS 6. Ao término da execução da rotina de tratamento, todos os registradores são restaurados, incluindo o PC, fazendo a UCP retomar o programa que era executado inicialmente.Unidade II SISTEMAS OPERACIONAIS Origem de interrupções: Hardware Software Unidade II SISTEMAS OPERACIONAIS Origem de interrupções Hardware Eventos externos ao processador. Assíncrona. Exemplo: dispositivos de E/S informando que estão prontos para enviar ou receber dados. Pressionar de uma tecla no teclado. Movimento do mouse. Informação recebida pela interface de rede. Bloco de dados solicitado ao HD está disponível para leitura. A rotina de tratamento irá tomar uma ação, dependendo da origem da interrupção. Enviar os dados para o programa driver da placa de rede Enviar os dados para a rotina que trata de entrada do teclado. Unidade II SISTEMAS OPERACIONAIS Software Chamada explícita em um programa para provocar o desvio da execução. Exemplos: Execução de uma sub-rotina temporária. Unidade II SISTEMAS OPERACIONAIS Interrupção e exceção funcionam de maneira semelhante Exceção O termo é usado quando o evento gerador da interrupção decorre de falha grave de execução. Exemplos Divisão por zero Instrução inválida (Invalid OpCode) Proteção de memória Erro de pilha Overflow Evento síncrono Sua ocorrência é resultado direto do programa sendo executado. Gerada automaticamente após a falha. Unidade II SISTEMAS OPERACIONAIS O sistema operacional possui uma rotina especial para tratamento de exceções, conhecida como Exception handler. Alguns fabricantes não fazem distinção entre interrupção e exceção. Alguns fabricantes usam nomes que variam conforme a origem da interrupção. Unidade II SISTEMAS OPERACIONAIS Tratamento de Interrupções O correto funcionamento do sistema exige que a interrupção seja tratada pela interrupção adequada. Como a UCP sabe o endereço da rotina de tratamento de uma interrupção? Vetor de interrupção – Tabela que contém o endereço das rotinas de tratamento para cada interrupção que pode ser recebida. Registrador de Status – Armazena o tipo do evento ocorrido. Existe uma única rotina de tratamento, que consulta esse registrador para definir qual ação a ser tomada. A técnica adotada varia conforme o processador (ou sua família). Unidade II SISTEMAS OPERACIONAIS Vetor de interrupção Tabela que contém o endereço das rotinas de tratamento para cada interrupção que pode ser recebida. Técnica usada pelas UCP da família 8086. Tipo da Interrupção Endereço da rotina de tratamento 0 0x00AA 1 0x00BB 2 0x02CC 3 0x030D ... 256 0x0F1F Memória Unidade II SISTEMAS OPERACIONAIS Registrador de Status Armazena o tipo do evento ocorrido. Existe uma única rotina de tratamento, que consulta esse registrador para definir qual ação a ser tomada. Unidade II SISTEMAS OPERACIONAIS Como as interrupções podem acontecer a qualquer momento, como tratar uma interrupção que ocorre durante o tratamento de outra interrupção? Unidade II SISTEMAS OPERACIONAIS Como as interrupções podem acontecer a qualquer momento, como tratar uma interrupção que ocorre durante o tratamento de outra interrupção? Ignorar a interrupção. A rotina de tratamento inibe o tratamento de interrupções Interrupções mascaráveis. Nem todos os processadores permitem ignorar uma interrupção. Tratamento de múltiplas interrupções por prioridade A ordem de tratamento é definida pela importância das interrupções. Controlador de pedidos de interrupção Dispositivo responsável por avaliar as interrupções e prioridade de atendimento. Unidade II SISTEMAS OPERACIONAIS Interrupções Mecanismo chave para a concorrência nos computadores. Permitiu a criação de sistemas multi-programáveis. Unidade II SISTEMAS OPERACIONAIS SISTEMAS MULTIPROGRAMÁVEIS Operações de Entrada/Saída Unidade II SISTEMAS OPERACIONAIS Primeiros computadores Instruções de Entrada/Saída para comunicação entre o processador e dispositivos. Exigia conhecimento de informações específicas do dispositivo periférico. Trilha e setor de um disco, de onde seria lido um dado. Forte dependência entre UCP e o dispositivo. Unidade II SISTEMAS OPERACIONAIS Controlador de interface UCP se comunica com o controlador. Simplifica as operações de E/S. Não exige conhecimento de detalhes específicos. Facilita o desenvolvimento de novos dispositivos. Unidade II SISTEMAS OPERACIONAIS Operações de E/S E/S controlada por programa 1. A UCP envia uma requisição de leitura/escrita de dados 2. A UCP aguarda o término da operação UCP permanentemente ocupada durante a operação Loop Terminou? Unidade II SISTEMAS OPERACIONAIS Operações de E/S E/S controlada por programa Problema: Como operações de E/S são muito mais lentas que da UCP, há grande desperdício da UCP. Loop Terminou? Unidade II SISTEMAS OPERACIONAIS Operações de E/S Polling • Evolução, onde a UCP fica livre após enviar a requisição de E/S. • A UCP testa em intervalos de tempo se a operação está concluída. • Permitiu a criação de sistemas multiprogramáveis. Unidade II SISTEMAS OPERACIONAIS Operações de E/S Polling Difícil prever com precisão o instante do término da operação. Problemático se o número de dispositivos é grande Muito tempo (operações de UCP) dedicado para testar os dispositivos de E/S. ... ... ... Terminou? ... ... ... Terminou? ... Unidade II SISTEMAS OPERACIONAIS Operações de E/S E/S controlada por interrupção • A UCP fica livre após enviar a requisição de E/S. • O controlador avisa o término da operação de E/S por meio de interrupção. Requisição Interrupção (Terminou!) Unidade II SISTEMAS OPERACIONAIS Operações de E/S E/S controlada por interrupção • Exemplo: Operação de leitura • Ao término da execução, os dados lidos estão armazenados em memória própria do controlador. • O controlador envia a interrupção. Requisição Interrupção Unidade II SISTEMAS OPERACIONAIS Operações de E/S E/S controlada por interrupção • Exemplo: Operação de leitura 1. A UCP faz a leitura dos dados da memória do controlador. 2. Dados transferidos para a memória principal. Unidade II SISTEMAS OPERACIONAIS Operações de E/S E/S controlada por interrupção • Problema: Grande volume de dados Tempo elevado para transferir os dados. • Bom para unidades de disco • Ruim para rede – taxa elevada de quadros recebidos, pode gerar mais interrupções que a UCP pode gerenciar. Unidade II SISTEMAS OPERACIONAIS Operações de E/S DMA – Direct Memory Access Permite a transferência de bloco de dados diretamente entre o controlador e a memória principal, sem a intervenção da UCP. 1. Requisição 3. Interrupção Unidade II SISTEMAS OPERACIONAIS Operações de E/S DMA – Direct Memory Access 1. A UCP envia a requisição ao controlador. Indica a posição de memória para ler/escrever os dados e o tamanho do bloco de dados. 1. Requisição Unidade II SISTEMAS OPERACIONAIS Operações de E/S DMA – Direct Memory Access 2. O controlador lê/escreve os dados na área de memória indicada. Unidade II SISTEMAS OPERACIONAIS Operações de E/S DMA – Direct Memory Access 3. O controlador gera uma interrupção informando o término da operação. 3. Interrupção Unidade II SISTEMAS OPERACIONAIS Operações de E/S DMA – Direct Memory Access A UCP só é acionada no início e término da operação. 1. Requisição 3. Interrupção Unidade II SISTEMAS OPERACIONAIS Operações deE/S DMA – Direct Memory Access Durante a operação de DMA, o controle do barramento é assumido pelo controlador do dispositivo. A UCP interrompe as rotinas de acesso ao barramento. A UCP pode realizar tarefas que não exijam acesso ao barramento. Por usar, por exemplo, memória cache. Unidade II SISTEMAS OPERACIONAIS Operações de E/S Buffering Durante o DMA a UCP fica impedida de acessar o barramento – não lê dados da memória, por exemplo. Como o tempo de E/S é muito superior ao ciclo da UCP, esta poderá permanecer pouco (ou nada) utilizada até o término da DMA. Unidade II SISTEMAS OPERACIONAIS Operações de E/S Buffering Esta técnica permite reduzir os impactos causados pela discrepância de velocidade entre UCP e dispositivos de E/S. Os dados lidos são transferidos direto para uma área da memória principal, chamada buffer. O controlador fica livre para continuar trabalhando. A UCP fica livre para acessar o buffer e processar os dados – ou transferi-los para outra área da memória. Unidade II SISTEMAS OPERACIONAIS Operações de E/S Buffering A técnica serve para leitura ou escrita de dados. UCP e controlador de dispositivo de E/S permanecem mais tempo em atividade. Unidade II SISTEMAS OPERACIONAIS Operações de E/S Buffering A unidade de transferência é chamada de Registro. O Buffer deve ter espaço para acomodar diversos registros, de forma a sempre haver registros: Lidos e não processados Operação de leitura Processados e não gravados Operação de gravação Unidade II SISTEMAS OPERACIONAIS Operações de E/S Spooling Utiliza área de memória secundária (geralmente disco) para armazenar dados que serão posteriormente enviados a um dispositivo de E/S. O programa fica liberado imediatamente após o processamento Exemplo: Spool de impressão Unidade II SISTEMAS OPERACIONAIS Operações de E/S Spooling Ideal para dispositivos que não permitem acesso concorrente. O sistema operacional se encarrega de direcionar o conteúdo de cada trabalho para o dispositivo. O SO pode mudar a ordem em que o conteúdo em impresso, conforme critérios próprios. Unidade II SISTEMAS OPERACIONAIS Operações de E/S Reentrância É comum em sistemas multiprogramáveis, um mesmo programa aberto simultaneamente (por um mais usuários). Se cada um deles ocupar a memória com seu código executável, haverá varias cópias iguais na memória desperdício. M e m ó ri a Unidade II SISTEMAS OPERACIONAIS Operações de E/S Reentrância Capacidade de uma área de código estática comum ser compartilhada entre diversos usuários/programas. Para evitar desperdícios, se um usuário invoca um código que já existe na memória, o SO faz um novo compartilhamento dessa área. Porém, cada usuário/programa em execução deve possuir uma área de dados distinta, para a sua tarefa. Unidade II SISTEMAS OPERACIONAIS Operações de E/S Reentrância Cada usuário/programa em execução possui uma área de dados distinta, para a sua tarefa. Uma única cópia do código executável, estático e comum, está presente na memória. A reentrância é implementada pelo desenvolvedor do programa, e deve ser suportada pelo sistema operacional. Unidade II SISTEMAS OPERACIONAIS Operações de E/S Reentrância Aumento do desempenho. Ao detectar que o programa chamado já está disponível, o SO não precisa buscar os dados do executável no disco. Muito usado por compiladores, editores de texto, utilitários do SO. Unidade II SISTEMAS OPERACIONAIS Exemplo: Código = 100 KB Área de dados = 40 KB 3 Usuários Sem reentrância Memória usada = 3 x (100 KB + 40 KB) = 3 x 140 KB = 420 KB Com reentrância Memória usada = (1 x 100 KB) + (3 x 40 KB) = 220 KB Economia = 420 KB – 220 KB = 200 KB Unidade II SISTEMAS OPERACIONAIS 2.3 - Estrutura do Sistema Operacional Núcleo do sistema Unidade II SISTEMAS OPERACIONAIS Um Sistema operacional é formado por um conjunto de rotinas que oferecem serviços aos usuários, às suas aplicações e também ao próprio sistema. Esse conjunto de rotinas é denominado, núcleo do sistema, ou kernel. Unidade II SISTEMAS OPERACIONAIS A maioria dos sistemas operacionais é fornecida acompanhada de utilitários e linguagens de comandos. Esses componente não fazem parte do núcleo. Shell, prompt de comando Ambiente gráfico Compiladores Notepad, paciência Unidade II SISTEMAS OPERACIONAIS Principais funções do núcleo Tratamento de interrupções e exceções Gerência de processos Criação e eliminação Comunicação entre processos Escalonamento Gerência de memória Gerência do sistema de arquivos Unidade II SISTEMAS OPERACIONAIS Principais funções do núcleo Gerência dos dispositivos de E/S Suporte a redes locais e distribuídas Contabilização do uso do sistema Auditoria e segurança do sistema Unidade II SISTEMAS OPERACIONAIS Segurança O que impede um programa em execução de ler/alterar dados de outros programas? ou de alterar o próprio núcleo do sistema operacional? ESCALONADOR Unidade II SISTEMAS OPERACIONAIS Segurança O que impede um programa de monopolizar o processador? ESCALONADOR Unidade II SISTEMAS OPERACIONAIS Segurança O que impede o programa Y de ler dados solicitados ao disco pelo programa X ? Unidade II SISTEMAS OPERACIONAIS Segurança Uma das principais características da multiprogramação é permitir que diversos programas compartilhem os recursos do computador: • Processador • Memória • Discos • Rede • Impressoras, etc O sistema operacional deve viabilizar a concorrência e proteger-se contra a violação de suas regras. Unidade II SISTEMAS OPERACIONAIS Modos de acesso Os processadores fornecem dois métodos de acesso Modo Kernel Modo Usuário Unidade II SISTEMAS OPERACIONAIS Modos de acesso Modo Kernel Permite ao programa acesso ao conjunto total de instruções do processador. Modo Usuário Acesso a um número reduzido de instruções, classificadas como não-privilegiadas. Por exemplo, instruções de E/S não são permitidas. Se um programa tenta usar uma instrução não permitida, o próprio processador a recusa e gera uma exceção. Acesso não permitido a áreas de memória de outros programas. Unidade II SISTEMAS OPERACIONAIS Modos de acesso Instruções só disponíveis em modo Kernel (privilegiadas) Subconjunto de instruções disponíveis em modo usuário Conjunto de instruções da CPU Unidade II SISTEMAS OPERACIONAIS Modos de acesso As rotinas do sistema operacional são executadas em modo kernel. Os demais programas são executados em modo usuário. Unidade II SISTEMAS OPERACIONAIS Estrutura do Sistema Operacional Chamadas de Sistema (System Calls) Unidade II SISTEMAS OPERACIONAIS Como um aplicativo pode acessar dados em um disco ? Como um aplicativo pode enviar/receber dados pela rede ? Unidade II SISTEMAS OPERACIONAIS Chamadas de sistema Um aplicativo pode invocar uma rotina do S.O. através de uma chamada de sistema. Ao receber uma chamada de sistema, o processador é colocado em modo kernel e é iniciada a execução da rotina desejada. Unidade II SISTEMAS OPERACIONAIS Chamadas de sistema Unidade II SISTEMAS OPERACIONAIS Chamadas desistema Exemplos: Gerência de processos e threads Gerência de memória Gerência do sistema de arquivos Gerência de dispositivos Unidade II SISTEMAS OPERACIONAIS Chamadas de sistema Exemplos: Gerência de processos e threads Criação e eliminação de processos e threads Alteração de características de processos Sincronização e comunicação entre processos Obtenção de informações sobre processos Unidade II SISTEMAS OPERACIONAIS Chamadas de sistema Exemplos: Gerência de memória Alocação e liberação de memória Gerência do sistema de arquivos Criar/eliminar arquivos/diretórios Alterar características de arquivos/diretórios Abrir/fechar arquivos Ler/gravar em arquivos Obter informações de arquivos/diretórios Unidade II SISTEMAS OPERACIONAIS Chamadas de sistema Exemplo simplificado do funcionamento de uma chamada de sistema: Um programa utiliza uma chamada de sistema para ler o conteúdo de um arquivo. O usuário pode ler esse arquivo? (permissão) Localização física do arquivo no disco (trilhas, setores, discos) Requisição ao driver do dispositivo Comandos ao controlador do dispositivo O arquivo existe? Unidade II SISTEMAS OPERACIONAIS Chamadas de sistema Cada sistema operacional possui seu conjunto próprio de chamadas de sistema, com nomes, formas de ativação e parâmetros específicos. Uma aplicação desenvolvida para um sistema não pode ser portada diretamente para outro, exigindo correções. Padrão POSIX, estabelece uma biblioteca-padrão, visando permitir portabilidade entre sistemas. Há sistemas 100% compatíveis com o POSIX e outros apenas parcialmente compatíveis. Unidade II SISTEMAS OPERACIONAIS Chamadas de sistema UNIX Cada chamada, geralmente, possui um procedimento próprio para invocá-la. Cerca de 190 chamadas Windows Por meio de APIs Nem toda chamada de API resulta em chamada de sistema (modo kernel). Unidade II SISTEMAS OPERACIONAIS Chamadas de sistema Unidade II SISTEMAS OPERACIONAIS A biblioteca faz a ponte entre a aplicação e a chamada ao kernel do sistema operacional. Exemplos: Linux GNU C Library (glibc) Windows Native API / Windows API O uso da biblioteca não causa a troca do modo de operação da CPU para kernel. Na biblioteca há instruções em assembly para chamar as rotinas do núcleo – e trocar o modo de operação da CPU. Unidade II SISTEMAS OPERACIONAIS Exemplo. SO: Linux #include <syscall.h> #include <unistd.h> #include <stdio.h> #include <sys/types.h> int main(void) { long ID1, ID2; /*-----------------------------*/ /* direct system call */ /* SYS_getpid (func no. is 20) */ /*-----------------------------*/ ID1 = syscall(SYS_getpid); printf ("syscall(SYS_getpid)=%ld\n", ID1); /*-----------------------------*/ /* "libc" wrapped system call */ /* SYS_getpid (Func No. is 20) */ /*-----------------------------*/ ID2 = getpid(); printf ("getpid()=%ld\n", ID2); return(0); } Unidade II SISTEMAS OPERACIONAIS ... movl %edx,(%esp) movl %eax,4(%esp) movl $PROT_READ,8(%esp) movl $MAP_SHARED,12(%esp) movl $fd,%ebx ... movl %eax,20(%esp) int $0x80 movl $mappedptr,%ebx save ptr movl %eax,(%ebx) ... Trecho em assembly no código de uma biblioteca Interrupção por software Unidade II SISTEMAS OPERACIONAIS Exemplos: Windows Unix Criar um processo CreateProcess() fork() Encerrar um processo ExitProcess() exit() Criar um arquivo CreateFile() open() Ler de um arquivo ReadFile() read() Criar um canal ‘pipe’ CreatePipe() pipe() Unidade II SISTEMAS OPERACIONAIS Como uma chamada de sistema é invocada? Como a CPU alterna para o modo kernel? Unidade II SISTEMAS OPERACIONAIS Unidade II SISTEMAS OPERACIONAIS SYSENTER e SYSEXIT Intel SYSCALL e SYSRET AMD Interrupções são lentas. À medida que as CPUs ganhavam desempenho, foi preciso pensar em alternativas. Unidade II SISTEMAS OPERACIONAIS SYSENTER e SYSEXIT Intel SYSCALL e SYSRET AMD Oferecem o mesmo efeito das interrupções: Invoca rotina do sistema. Transfere o modo da CPU para Kernel. Porém, são bem mais rápidas que as interrupções. Os sistemas ainda devem suportar o uso das interrupções para manter compatibilidade com programas antigos. SISTEMAS OPERACIONAIS Unidade II Arquiteturas Monolítico Em camadas Microkernel SISTEMAS OPERACIONAIS Unidade II Monolítico O sistema operacional é escrito como uma coleção de rotinas, agrupadas em um mesmo programa. O sistema operacional executa a partir desse programa único, com CPU em modo kernel. Uma rotina podem invocar qualquer uma das demais para obter algum serviço esperado. SISTEMAS OPERACIONAIS Unidade II Autor: conan @ English Wikipedia / Fonte: http://www.makelinux.net/kernel_map SISTEMAS OPERACIONAIS Unidade II Monolítico Menor organização Depuração mais complexa Maior vulnerabilidade Todas as rotinas executam em modo Kernel Maior eficiência SISTEMAS OPERACIONAIS Unidade II Em camadas Distribuição hierárquica de tarefas. Uma camada presta serviço somente para as camadas acima. Modelo: THE, Dijkstra (1968) SISTEMAS OPERACIONAIS Unidade II Maior escalabilidade e modularidade. Permite isolamento de código, facilitando desenvolvimento e depuração. Menor desempenho. Maior quantidade de chamadas por operação. SISTEMAS OPERACIONAIS Unidade II Microkernel Busca reduzir o tamanho do kernel e deixá-lo o mais simples possível. O kernel é responsável somente por operações essenciais. Gerência de processos, comunicação entre processos, gerência de memória e CPU... As demais operações são realizadas por serviços/processos em modo usuário. SISTEMAS OPERACIONAIS Unidade II Modo Kernel Modo Usuário ... ... ... Serviços Drivers Aplicativos P ro c e s s o s SISTEMAS OPERACIONAIS Unidade II Microkernel Kernel mais simples – menor quantidade de bugs. Modularidade e portabilidade. Os servidores executam em modo usuário. Menor desempenho. Complexidade de implementação. Unidade II SISTEMAS OPERACIONAIS Referência e imagens: Arquitetura de Sistemas Operacionais, Machado e Maia, 5ª ed. Editora LTC.
Compartilhar