Sistemas Operacionais

 

Embed or link this publication

Popular Pages


p. 1

sistemas operacionais i conceitos básicos prof carlos alberto maziero ppgia ccet pucpr http www.ppgia.pucpr.br/maziero 30 de julho de 2008 resumo um sistema de computação é constituído basicamente por hardware e software o hardware é composto por circuitos eletrônicos processador memória portas de entrada/saída etc e periféricos eletro-óptico-mecânicos teclados mouses discos rígidos unidades de disquete cd ou dvd dispositivos usb etc por sua vez o software de aplicação é representado por programas destinados ao usuário do sistema que constituem a razão final de seu uso como editores de texto navegadores internet ou jogos entre os aplicativos e o hardware reside uma camada de software multi-facetada e complexa denominada genericamente de sistema operacional neste capítulo veremos quais os objetivos básicos do sistema operacional quais desafios ele deve resolver e como ele é estruturado para alcançar seus objetivos copyright c 2006 carlos alberto maziero É garantida a permissão para copiar distribuir e/ou modificar este documento sob os termos da licença de documentação livre gnu gnu free documentation license versão 1.2 ou qualquer versão posterior publicada pela free software foundation a licença está disponível em http www.gnu.org/licenses/gfdl.txt este texto foi produzido usando exclusivamente software livre sistema operacional linux distria buições fedora e ubuntu compilador de texto l tex 2 gerenciador de referências bibtex editor gráfico inkscape criador de gráficos gnuplot e processador ps/pdf ghostscript entre outros.

[close]

p. 2

c prof carlos maziero sumÁrio ­ 2 sumário 1 objetivos 1.1 abstração de recursos 1.2 gerência de recursos tipos de sistemas operacionais funcionalidades estrutura de um sistema operacional 3 4 5 5 7 10 2 3 4 5 conceitos de hardware 10 5.1 interrupções 12 5.2 proteção do núcleo 16 5.3 chamadas de sistema 17 arquiteturas de sistemas operacionais 6.1 sistemas monolíticos 6.2 sistemas em camadas 6.3 sistemas micro-núcleo 6.4 máquinas virtuais 19 19 20 21 22 26 6 7 um breve histórico dos sistemas operacionais

[close]

p. 3

c prof carlos maziero objetivos ­ 3 1 objetivos existe uma grande distância entre os circuitos eletrônicos e dispositivos de hardware e os programas aplicativos em software os circuitos são complexos acessados através de interfaces de baixo nível geralmente usando as portas de entrada/saída do processador e muitas vezes suas características e seu comportamento dependem da tecnologia usada em sua construção por exemplo a forma de acesso de baixo nível a discos rígidos ide difere da forma de acesso a discos scsi ou leitores de cd essa grande diversidade pode ser uma fonte de dores de cabeça para o desenvolvedor de aplicativos portanto torna-se desejável oferecer aos programas aplicativos uma forma de acesso homogênea aos dispositivos físicos que permita abstrair as diferenças tecnológicas entre eles o sistema operacional é uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final o sistema operacional é uma estrutura de software ampla muitas vezes complexa que incorpora aspectos de baixo nível como drivers de dispositivos e gerência de memória física e de alto nível como programas utilitários e a própria interface gráfica a figura 1 ilustra a arquitetura geral de um sistema de computação típico nela podemos observar elementos de hardware o sistema operacional e alguns programas aplicativos figura 1 estrutura de um sistema de computação típico os objetivos básicos de um sistema operacional podem ser sintetizados em duas palavras-chave abstração e gerência cujos principais aspectos são detalhados a seguir.

[close]

p. 4

c prof carlos maziero abstração de recursos ­ 4 1.1 abstração de recursos acessar os recursos de hardware de um sistema de computação pode ser uma tarefa complexa devido às características específicas de cada dispositivo físico e a complexidade de suas interfaces por exemplo a seqüência a seguir apresenta os principais passos envolvidos na abertura de um arquivo operação open em um leitor de disquete 1 verificar se os parâmetros informados estão corretos nome do arquivo identificador do leitor de disquete buffer de leitura etc 2 verificar se o leitor de disquetes está disponível 3 verificar se o leitor contém um disquete 4 ligar o motor do leitor e aguardar atingir a velocidade de rotação correta 5 posicionar a cabeça de leitura sobre a trilha onde está a tabela de diretório 6 ler a tabela de diretório e localizar o arquivo ou subdiretório desejado 7 mover a cabeça de leitura para a posição do bloco inicial do arquivo 8 ler o bloco inicial do arquivo e depositá-lo em um buffer de memória assim o sistema operacional deve definir interfaces abstratas para os recursos do hardware visando atender os seguintes objetivos · prover interfaces de acesso aos dispositivos mais simples de usar que as interface de baixo nível para simplificar a construção de programas aplicativos por exemplo para ler dados de um disco rígido uma aplicação usa um conceito chamado arquivo que implementa uma visão abstrata do disco rígido acessível através de operações como open read e close caso tivesse de acessar o disco diretamente teria de manipular portas de entrada/saída e registradores com comandos para o controlador de disco sem falar na dificuldade de localizar os dados desejados dentro do disco · tornar os aplicativos independentes do hardware ao definir uma interface abstrata de acesso a um dispositivo de hardware o sistema operacional desacopla o hardware dos aplicativos e permite que ambos evoluam de forma mais autônoma por exemplo o código de um editor de textos não deve ser dependente da tecnologia de discos rígidos utilizada no sistema · definir interfaces de acesso homogêneas para dispositivos com tecnologias distintas através de suas abstrações o sistema operacional permite aos aplicativos usar a mesma interface para dispositivos diversos por exemplo um aplicativo acessa dados em disco através de arquivos e diretórios sem precisar se preocupar com a estrutura real de armazenamento dos dados que podem estar em um disquete um disco ide uma máquina fotográfica digital conectada à porta usb um cd ou mesmo um disco remoto compartilhado através da rede.

[close]

p. 5

c prof carlos maziero gerência de recursos ­ 5 1.2 gerência de recursos os programas aplicativos usam o hardware para atingir seus objetivos ler e armazenar dados editar e imprimir documentos navegar na internet tocar música etc em um sistema com várias atividades simultâneas podem surgir conflitos no uso do hardware quando dois ou mais aplicativos precisam dos mesmos recursos para poder executar cabe ao sistema operacional definir políticas para gerenciar o uso dos recursos de hardware pelos aplicativos e resolver eventuais disputas e conflitos vejamos algumas situações onde a gerência de recursos do hardware se faz necessária · cada computador possui normalmente um só processador o uso desse processador deve ser distribuído entre os aplicativos presentes no sistema de forma que cada um deles possa executar na velocidade adequada para cumprir suas funções sem prejudicar os outros o mesmo ocorre com a memória ram que deve ser distribuída de forma justa entre as aplicações · a impressora é um recurso cujo acesso deve ser efetuado de forma mutuamente exclusiva apenas um aplicativo por vez para não ocorrer mistura de conteúdo nos documentos impressos o sistema operacional resolve essa questão definindo uma fila de trabalhos a imprimir print jobs normalmente atendidos de forma seqüencial fifo · ataques de negação de serviço dos ­ denial of service são comuns na internet eles consistem em usar diversas técnicas para forçar um servidor de rede a dedicar seus recursos a atender um determinado usuário em detrimento dos demais por exemplo ao abrir milhares conexões simultâneas em um servidor de e-mail um atacante pode reservar para si todos os recursos do servidor processos conexões de rede memória e processador fazendo com que os demais usuários não sejam mais atendidos É responsabilidade do sistema operacional do servidor detectar tais situações e impedir que todos os recursos do sistema sejam monopolizados por um só usuário ou um pequeno grupo assim um sistema operacional visa abstrair o acesso e gerenciar os recursos de hardware provendo aos aplicativos um ambiente de execução abstrato no qual o acesso aos recursos se faz através de interfaces simples independentes das características e detalhes de baixo nível e no qual os conflitos no uso do hardware são minimizados 2 tipos de sistemas operacionais os sistemas operacionais podem ser classificados segundo diversos parâmetros e perspectivas como tamanho velocidade suporte a recursos específicos acesso à rede etc a seguir são apresentados alguns tipos de sistemas operacionais usuais muitos sistemas operacionais se encaixam bem em mais de uma das categorias apresentadas

[close]

p. 6

c prof carlos maziero tipos de sistemas operacionais ­ 6 batch de lote os sistemas operacionais mais antigos trabalhavam por lote ou seja todos os programas a executar eram colocados em uma fila com seus dados e demais informações para a execução o processador recebia um programa após o outro processando-os em seqüência o que permitia um alto grau de utilização do sistema ainda hoje o termo em lote é usado para designar um conjunto de comandos que deve ser executado em seqüência sem interferência do usuário exemplos desses sistemas incluem o os/360 e vms entre outros de rede um sistema operacional de rede deve possuir suporte à operação em rede ou seja a capacidade de oferecer às aplicações locais recursos que estejam localizados em outros computadores da rede como arquivos e impressoras ele também deve disponibilizar seus recursos locais aos demais computadores de forma controlada a maioria dos sistemas operacionais atuais oferece esse tipo de funcionalidade distribuído em um sistema operacional distribuído os recursos de cada máquina estão disponíveis globalmente de forma transparente aos usuários ao lançar uma aplicação o usuário interage com sua janela mas não sabe onde ela está executando ou armazenando seus arquivos o sistema é quem decide de forma transparente os sistemas operacionais distribuídos já existem há tempos amoeba [tanenbaum et al 1991 e clouds [dasgupta et al 1991 por exemplo mas ainda não são uma realidade de mercado multi-usuário um sistema operacional multi-usuário deve suportar a identificação do dono de cada recurso dentro do sistema arquivos processos áreas de memória conexões de rede e impor regras de controle de acesso para impedir o uso desses recursos por usuários não autorizados essa funcionalidade é fundamental para a segurança dos sistemas operacionais de rede e distribuídos grande parte dos sistemas atuais são multi-usuários desktop um sistema operacional de mesa é voltado ao atendimento do usuário doméstico e corporativo para a realização de atividades corriqueiras como edição de textos e gráficos navegação na internet e reprodução de mídias simples sua principais características são a interface gráfica o suporte à interatividade e a operação em rede exemplos de sistemas desktop são o windows xp macos x e linux servidor um sistema operacional servidor deve permitir a gestão eficiente de grandes quantidades de recursos disco memória processadores impondo prioridades e limites sobre o uso dos recursos pelos usuários e seus aplicativos normalmente um sistema operacional servidor também tem suporte a rede e multi-usuários embutido um sistema operacional é dito embutido embedded quando é construído para operar sobre um hardware com poucos recursos de processamento armazenamento e energia aplicações típicas desse tipo de sistema aparecem em telefones celulares controladores industriais e automotivos equipamentos eletrônicos

[close]

p. 7

c prof carlos maziero funcionalidades ­ 7 de uso doméstico leitores de dvd tvs fornos-micro-ondas centrais de alarme etc muitas vezes um sistema operacional embutido se apresenta na forma de uma biblioteca a ser ligada ao programa da aplicação que é fixa exemplos de sistemas operacionais embutidos são o µc/os xylinx lynxos e vxworks tempo real ao contrário da concepção usual um sistema operacional de tempo real não precisa ser necessariamente ultra-rápido sua característica essencial é ter um comportamento temporal previsível ou seja seu tempo de resposta deve ser conhecido no melhor e pior caso de operação a estrutura interna de um sistema operacional de tempo real deve ser construída de forma a minimizar esperas e latências imprevisíveis como tempos de acesso a disco e sincronizações excessivas existem duas classificações de sistemas de tempo real soft real-time systems nos quais a perda de prazos implica na degradação do serviço prestado um exemplo seria o suporte à gravação de cds ou à reprodução de músicas caso o sistema se atrase pode ocorrer a perda da mídia em gravação ou falhas na música que está sendo tocada por outro lado nos hard real-time systems a perda de prazos pelo sistema pode perturbar o objeto controlado com graves conseqüências humanas econômicas ou ambientais exemplos desse tipo de sistema seriam o controle de funcionamento de uma turbina de avião a jato ou de uma caldeira industrial exemplos de sistemas de tempo real incluem o qnx rt-linux e vxworks muitos sistemas embutidos têm características de tempo real e vice-versa 3 funcionalidades para cumprir seus objetivos de abstração e gerência o sistema operacional deve atuar em várias frentes cada um dos recursos do sistema possui suas particularidades o que impõe exigências específicas para gerenciar e abstrair os mesmos sob esta perspectiva as principais funcionalidades implementadas por um sistema operacional típico são gerência do processador também conhecida como gerência de processos ou de atividades esta funcionalidade visa distribuir a capacidade de processamento de forma justa1 entre as aplicações evitando que uma aplicação monopolize esse recurso e respeitando as prioridades dos usuários o sistema operacional provê a ilusão de que existe um processador independente para cada tarefa o que facilita o trabalho dos programadores de aplicações e permite a construção de sistemas mais interativos também faz parte da gerência de atividades fornecer abstrações para sincronizar atividades inter-dependentes e prover formas de comunicação entre elas distribuir de forma justa mas não necessariamente igual pois as aplicações têm demandas de processamento distintas por exemplo um navegador de internet demanda menos o processador que um aplicativo de edição de vídeo e por isso o navegador pode receber menos tempo de processador 1

[close]

p. 8

c prof carlos maziero funcionalidades ­ 8 gerência de memória tem como objetivo fornecer a cada aplicação uma área de memória própria independente e isolada das demais aplicações e inclusive do núcleo do sistema o isolamento das áreas de memória das aplicações melhora a estabilidade e segurança do sistema como um todo pois impede aplicações com erros ou aplicações maliciosas de interferir no funcionamento das demais aplicações além disso caso a memória ram existente seja insuficiente para as aplicações o sistema operacional pode aumentá-la de forma transparente às aplicações usando o espaço disponível em um meio de armazenamento secundário como um disco rígido uma importante abstração construída pela gerência de memória é a noção de memória virtual que desvincula os endereços de memória vistos por cada aplicação dos endereços acessados pelo processador na memória ram com isso uma aplicação pode ser carregada em qualquer posição livre da memória sem que seu programador tenha de se preocupar com os endereços de memória onde ela irá executar gerência de dispositivos cada periférico do computador possui suas peculiaridades assim o procedimento de interação com uma placa de rede é completamente diferente da interação com um disco rígido scsi todavia existem muitos problemas e abordagens em comum para o acesso aos periféricos por exemplo é possível criar uma abstração única para a maioria dos dispositivos de armazenamento como pen-drives discos scsi ou ide disquetes etc na forma de um vetor de blocos de dados a função da gerência de dispositivos também conhecida como gerência de entrada/saída é implementar a interação com cada dispositivo por meio de drivers e criar modelos abstratos que permitam agrupar vários dispositivos distintos sob a mesma interface de acesso gerência de arquivos esta funcionalidade é construída sobre a gerência de dispositivos e visa criar arquivos e diretórios definindo sua interface de acesso e as regras para seu uso É importante observar que os conceitos abstratos de arquivo e diretório são tão importantes e difundidos que muitos sistemas operacionais os usam para permitir o acesso a recursos que nada tem a ver com armazenamento exemplos disso são as conexões de rede nos sistemas unix e windows cada socket tcp é visto como um descritor de arquivo no qual pode-se ler ou escrever dados e as informações do núcleo do sistema como o diretório /proc do unix no sistema operacional experimental plan 9 [pike et al 1993 todos os recursos do sistema operacional são vistos como arquivos gerência de proteção com computadores conectados em rede e compartilhados por vários usuários é importante definir claramente os recursos que cada usuário pode acessar as formas de acesso permitidas leitura escrita etc e garantir que essas definições sejam cumpridas para proteger os recursos do sistema contra acessos indevidos é necessário a definir usuários e grupos de usuários b identificar os usuários que se conectam ao sistema através de procedimentos de autenticação c definir e aplicar regras de controle de acesso aos recursos relacionando todos os

[close]

p. 9

c prof carlos maziero funcionalidades ­ 9 usuários recursos e formas de acesso e aplicando essas regras através de procedimentos de autorização e finalmente d registrar o uso dos recursos pelos usuários para fins de auditoria e contabilização além dessas funcionalidades básicas oferecidas pela maioria dos sistemas operacionais várias outras vêm se agregar aos sistemas modernos para cobrir aspectos complementares como a interface gráfica suporte de rede fluxos multimídia gerência de energia etc as funcionalidades do sistema operacional geralmente são inter-dependentes por exemplo a gerência do processador depende de aspectos da gerência de memória assim como a gerência de memória depende da gerência de dispositivos e da gerência de proteção alguns autores [silberschatz et al 2001 tanenbaum 2003 representam a estrutura do sistema operacional conforme indicado na figura 2 nela o núcleo central implementa o acesso de baixo nível ao hardware enquanto os módulos externos representam as várias funcionalidades do sistema figura 2 funcionalidades do sistema operacional uma regra importante a ser observada na construção de um sistema operacional2 é a separação entre os conceitos de política e mecanismo como política consideram-se os aspectos de decisão mais abstratos que podem ser resolvidos por algoritmos de nível mais alto como por exemplo decidir a quantidade de memória que cada aplicação ativa deve receber ou qual o próximo pacote de rede a enviar para satisfazer determinadas especificações de qualidade de serviço por outro lado como mecanismo consideram-se os procedimentos de baixo nível usados para implementar as políticas ou seja atribuir ou retirar memória de uma aplicação enviar ou receber um pacote de rede etc os mecanismos devem ser suficientemente genéricos para suportar mudanças de política sem necessidade de modificações essa na verdade essa regra é tão importante que deveria ser levada em conta na construção de qualquer sistema complexo 2

[close]

p. 10

c prof carlos maziero estrutura de um sistema operacional ­ 10 separação entre os conceitos de política e mecanismo traz uma grande flexibilidade aos sistemas operacionais permitindo alterar sua personalidade sistemas mais interativos ou mais eficientes sem ter de alterar o código que interage diretamente com o hardware alguns sistemas como o infokernel [arpaci-dusseau et al 2003 permitem que as aplicações escolham as políticas do sistema mais adequadas às suas necessidades 4 estrutura de um sistema operacional um sistema operacional não é um bloco único e fechado de software executando sobre o hardware na verdade ele é composto de diversos componentes com objetivos e funcionalidades complementares alguns dos componentes mais relevantes de um sistema operacional típico são núcleo é o coração do sistema operacional responsável pela gerência dos recursos do hardware usados pelas aplicações ele também implementa as principais abstrações utilizadas pelos programas aplicativos drivers módulos de código específicos para acessar os dispositivos físicos existe um driver para cada tipo de dispositivo como discos rígidos ide scsi portas usb placas de vídeo etc muitas vezes o driver é construído pelo próprio fabricante do hardware e fornecido em forma compilada em linguagem de máquina para ser acoplado ao restante do sistema operacional código de inicialização a inicialização do hardware requer uma série de tarefas complexas como reconhecer os dispositivos instalados testá-los e configurá-los adequadamente para seu uso posterior outra tarefa importante é carregar o núcleo do sistema operacional em memória e iniciar sua execução programas utilitários são programas que facilitam o uso do sistema computacional fornecendo funcionalidades complementares ao núcleo como formatação de discos e mídias configuração de dispositivos manipulação de arquivos mover copiar apagar interpretador de comandos terminal interface gráfica gerência de janelas etc as diversas partes do sistema operacional se relacionam entre si conforme apresentado na figura 3 a forma como esses diversos componentes são interligados e se relacionam varia de sistema para sistema algumas possibilidades são discutidas na seção 6 5 conceitos de hardware o sistema operacional interage diretamente com o hardware para fornecer serviços às aplicações para a compreensão dos conceitos implementados pelos sistemas operacionais é necessário ter uma visão clara dos recursos fornecidos pelo hardware e a forma

[close]

p. 11

c prof carlos maziero conceitos de hardware ­ 11 figura 3 estrutura de um sistema operacional de acessá-los esta seção apresenta uma revisão dos principais aspectos do hardware de um computador pessoal convencional um sistema de computação típico é constituído de um ou mais processadores responsáveis pela execução das instruções das aplicações uma área de memória que armazena as aplicações em execução seus códigos e dados e dispositivos periféricos que permitem o armazenamento de dados e a comunicação com o mundo exterior como discos rígidos terminais e teclados a maioria dos computadores mono-processados atuais segue uma arquitetura básica definida nos anos 40 por jános john von neumann conhecida por arquitetura von neumann a principal característica desse modelo é a idéia de programa armazenado ou seja o programa a ser executado reside na memória junto com os dados os principais elementos constituintes do computador estão interligados por um ou mais barramentos para a transferência de dados endereços e sinais de controle a figura 4 ilustra a arquitetura de um computador típico o núcleo do sistema de computação é o processador ele é responsável por continuamente ler instruções e dados da memória ou de periféricos processá-los e enviar os resultados de volta à memória ou a outros periféricos um processador convencional é normalmente constituído de uma unidade lógica e aritmética ula que realiza os cálculos e operações lógicas um conjunto de registradores para armazenar dados de trabalho e alguns registradores para funções especiais contador de programa ponteiro de pilha flags de status etc todas as transferência de dados entre processador memória e periféricos são feitas através dos barramentos o barramento de endereços indica a posição de memória ou o dispositivo a acessar o barramento de controle indica a operação a efetuar leitura ou

[close]

p. 12

c prof carlos maziero interrupções ­ 12 figura 4 arquitetura de um computador típico escrita e o barramento de dados transporta a informação indicada entre o processador e a memória ou um controlador de dispositivo o acesso à memória é geralmente mediado por um controlador específico que pode estar fisicamente dentro do próprio processador a unidade de gerência de memória mmu memory management unit ela é responsável por analisar cada endereço solicitado pelo processador validá-los efetuar as conversões de endereçamento necessárias e executar a operação solicitada pelo processador leitura ou escrita de uma posição de memória os periféricos do computador discos teclado monitor etc são acessados através de circuitos específicos genericamente denominados controladores a placa de vídeo permite o acesso ao monitor a placa ethernet dá acesso à rede o controlador usb permite acesso ao mouse teclado e outros dispositivos usb externos para o processador cada dispositivo é representado por seu respectivo controlador os controladores podem ser acessados através de portas de entrada/saída endereçáveis a cada controlador é atribuída uma faixa de endereços de portas de entrada/saída a tabela 1 a seguir apresenta alguns endereços portas de entrada/saída para acessar controladores em um pc típico 5.1 interrupções quando um controlador de periférico tem uma informação importante a fornecer ao processador ele tem duas alternativas de comunicação · aguardar até que o processador o consulte o que poderá ser demorado caso o processador esteja ocupado com outras tarefas o que geralmente ocorre

[close]

p. 13

c prof carlos maziero interrupções ­ 13 dispositivo endereços de acesso teclado 0060h-006fh barramento ide primário 0170h-0177h barramento ide secundário 01f0h-01f7fh porta serial com1 02f8h-02ffh porta serial com2 03f8h-03ffh tabela 1 endereços de acesso a dispositivos · notificar o processador através do barramento de controle enviando a ele uma requisição de interrupção irq ­ interrupt request ao receber a requisição de interrupção os circuitos do processador suspendem seu fluxo de execução corrente e desviam para um endereço pré-definido onde se encontra uma rotina de tratamento de interrupção interrupt handler essa rotina é responsável por tratar a interrupção ou seja executar as ações necessárias para atender o dispositivo que a gerou ao final da rotina de tratamento da interrupção o processador retoma o código que estava executando quando recebeu a requisição a figura 5 representa os principais passos associados ao tratamento de uma interrupção envolvendo a placa de rede ethernet enumerados a seguir figura 5 roteiro típico de um tratamento de interrupção

[close]

p. 14

c prof carlos maziero interrupções ­ 14 1 o processador está executando um programa qualquer em outras palavras um fluxo de execução 2 um pacote vindo da rede é recebido pela placa ethernet 3 a placa envia uma solicitação de interrupção irq ao processador 4 o processamento é desviado do programa em execução para a rotina de tratamento da interrupção 5 a rotina de tratamento é executada para receber as informações da placa de rede via barramentos de dados e de endereços e atualizar as estruturas de dados do sistema operacional 6 a rotina de tratamento da interrupção é finalizada e o processador retorna à execução do programa que havia sido interrompido esse roteiro de ações ocorre a cada requisição de interrupção recebida pelo processador cada interrupção geralmente corresponde a um evento ocorrido em um dispositivo periférico a chegada de um pacote de rede um click no mouse uma operação concluída pelo controlador de disco etc isso representa centenas ou mesmo milhares de interrupções recebidas por segundo dependendo da carga e da configuração do sistema número e natureza dos periféricos por isso as rotinas de tratamento de interrupção devem ser curtas e realizar suas tarefas rapidamente para não prejudicar o desempenho do sistema normalmente o processador recebe e trata cada interrupção recebida mas nem sempre isso é possível por exemplo receber e tratar uma interrupção pode ser problemático caso o processador já esteja tratando outra interrupção por essa razão o processador pode decidir ignorar temporariamente algumas interrupções se necessário isso é feito ajustando o bit correspondente à interrupção em um registrador específico do processador para distinguir interrupções geradas por dispositivos distintos cada interrupção é identificada por um inteiro normalmente com 8 bits como cada interrupção pode exigir um tipo de tratamento diferente pois os dispositivos são diferentes cada irq deve disparar sua própria rotina de tratamento de interrupção a maioria das arquiteturas atuais define um vetor de endereços de funções denominado vetor de interrupções iv interrupt vector cada entrada desse vetor aponta para a rotina de tratamento da interrupção correspondente por exemplo se a entrada 5 do vetor contém o valor 3c20h então a rotina de tratamento da irq 5 iniciará na posição 3c20h da memória ram o vetor de interrupções reside em uma posição fixa da memória ram definida pelo fabricante do processador ou tem sua posição indicada pelo conteúdo de um registrador da cpu específico para esse fim as interrupções recebidas pelo processador têm como origem eventos externos a ele ocorridos nos dispositivos periféricos e reportados por seus controladores entretanto alguns eventos gerados pelo próprio processador podem ocasionar o desvio da execução

[close]

p. 15

c prof carlos maziero interrupções ­ 15 usando o mesmo mecanismo das interrupções são as exceções eventos como instruções ilegais inexistentes ou com operandos inválidos tentativa de divisão por zero ou outros erros de software disparam exceções no processador que resultam na ativação de uma rotina de tratamento de exceção usando o mesmo mecanismo das interrupções e o mesmo vetor de endereços de funções a tabela 2 representa o vetor de interrupções do processador intel pentium extraída de [patterson and henessy 2005 tabela 2 vetor de interrupções do processador pentium [patterson and henessy 2005 irq 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19-31 32-255 descrição divide error debug exception null interrupt breakpoint into-detected overflow bound range exception invalid opcode device not available double fault coprocessor segment overrun invalid task state segment segment not present stack fault general protection page fault intel reserved floating point error alignment check machine check intel reserved maskable interrupts devices exceptions o mecanismo de interrupção torna eficiente a interação do processador com os dispositivos periféricos se não existissem interrupções o processador perderia muito tempo varrendo todos os dispositivos do sistema para verificar se há eventos a serem tratados além disso as interrupções permitem construir funções de entrada/saída assíncronas ou seja o processador não precisa esperar a conclusão de cada operação solicitada a um dispositivo pois o dispositivo gera uma interrupção para avisar o processador quando a operação for concluída interrupções não são raras pelo contrário em um computador pessoal o processador trata de centenas a milhares de interrupções por segundo dependendo da carga do sistema e dos periféricos instalados.

[close]

Comments

no comments yet