This work describes the technical aspects of VXt version 2.5, a software simulator of Intel 8086 processor that is being developed at Computing Science Department of FURB - Universidade Regional de Blumenau. This software is being used as a tool in Operating Systems and Hardware Architecture classes. Palavras-chave: arquitetura de computadores, simulação, sistemas operacionais, software didático. 1. Introdução O currículo Show Interrup��esMotiva��oPara controlar entrada e sa�da de dados, n�o � interessante que a CPU tenha que ficar continuamente monitorando e status de dispositivos como discos ou teclados. O mecanismo de interrup��es permite que o hardware "chame a aten��o" da CPU quando h� algo a ser feito. Interrup��es ass�ncronas e s�ncronasInterrup��es geradas por algum dispositivo externo � CPU, como teclado ou controlador de disco, s�o chamadas de interrup��es de hardware ou ass�ncronas (ocorrem independentemente das instru��es que a CPU est� executando. Quando ocorre uma interrup��o, a CPU interrompe o processamento do programa em execu��o e executa um peda�o de c�digo (tipicamente parte do sistema operacional) chamado de tratador de interrup��o. Em muitos casos, ap�s a execu��o do tratador, a CPU volta a executar o programa interrompido. ---------------------------------------------------------------------- exec. de prog. P | exec. do tratador de interrup��o| retomada de P | | ---------------------------------------------------------------------- ^ | interrup��o Observe que, em termos de fluxo de controle, a execu��o do tratador � um pouco como uma chamada de rotina. No entanto, a chamada de rotina � iniciada por instru��es do programa em execu��o, e o tratador de interrup��o ass�ncrona n�o. Por isso, n�o h� nenhuma comunica��o entre o programa interrompido e o tratador (par�metros ou retorno)! Um tipo importante de interrup��o de hardware � a interrup��o do rel�gio. Em particular, esse mecanismo permite ao sistema operacional atribuir quotas de tempos de execu��o (fatias de tempo) para cada um dos processos em um sistema multiprograma. A cada interrup��o do rel�gio, o tratador pode verificar se a fatia de tempo do processo em execu��o j� se esgotou e, se for esse o caso, suspend�-lo e acionar o escalonador para que esse escolha outro processo para colocar em execu��o. Um outro tipo de interrup��o s�o as interrup��es s�ncronas, muitas vezes tamb�m chamadas de traps. Traps ocorrem em consequ�ncia da instru��o sendo executada. Algumas s�o geradas pelo hardware, para indicar por exemplo overflow em opera��es aritm�ticas ou acesso a regi�es de mem�ria n�o permitidas. Essas s�o situa��es em que o programa n�o teria como prosseguir. O hardware sinaliza uma interrup��o para passar o controle para uma parte do sistema operacional (o tratador da interrup��o em quest�o), que tipicamente termina a execu��o do programa. Traps tamb�m podem ser geradas explicitamente por instru��es do programa. Essa � uma forma do programa acionar o sistema operacional, por exemplo para requisitar um servi�o de entrada ou sa�da. Um programa n�o pode "chamar" uma rotina do sistema operacional, j� que o sistema operacional � um processo a parte, com seu pr�prio espa�o de endere�amento. Atrav�s do mecanismo de interrup��o de software, um processo qualquer pode ativar um tratador que pode "encaminhar" uma chamada ao sistema operacional. Traps tamb�m s�o usadas em situa��es onde o programa n�o tem como prosseguir pois aconteceu uma exce��o como overflow aritm�tico, tentativa de acesso a endere�o inv�lido ou estouro da pilha. Como as interrup��es s�ncronas ocorrem em fun��o da instru��o que est� sendo executada, nesse caso � at� poss�vel o programa passar algum par�metro para o tratador. Isso ocorre com frequencia no caso de interrup��es usadas para chamar o sistema operacional. Suporte de hardwareTipicamente, o hardware detecta que ocorreu uma interrup��o, aguarda o final da execu��o da instru��o corrente e aciona o tratador, antes salvando o contexto de execu��o so processo interrompido. Para que a execu��o do processo possa ser reiniciada mais tarde, � necess�rio salvar o program counter e outros registradores de status. Os registradores com dados do programa devem ser salvos pelo pr�prio tratador (ou seja, por software) caso ele os utilize. Em muitas arquiteturas, existe uma pilha independente associada ao tratamento de interrup��es. Chamadas ao sistema no IA-32A instru��oint n do assembly IA-32 gera um trap. Historicamente, chamadas ao sistema s�o feitas com int $0x80 . No Linux, antes de se executar essa instru��o, o n�mero da chamada (ou seja, a defini��o do servi�o a ser executado) deve ser colocado no registrador %eax , e os argumentos nos registradores %ebx , %ecx , %edx , %esi e %edi . Depois que o sistema operacional executa o servi�o requisitado, o controle retorna � instru��o seguinte a int , com o valor de retorno em %eax .
Refer�ncias:
O que são interrupções em dispositivos microprocessados?Interrupção é um evento que obriga o microprocessador a suspender suas atividades temporariamente, para atender exclusivamente uma rotina indicada pelo evento que o interrompeu. Interrupção pode ser considerada um desvio de um ponto do software para outro preestabelecido.
O que são interrupções e quais são seus tipos?Se implementado como parte do controlador de memória, as interrupções são mapeadas para dentro do sistema de espaço de endereço de memória. Interrupções podem ser categorizadas em: maskable interrupt, non-maskable interrupt (NMI), inter-processor interrupt (IPI), software interrupt, e spurios interrupt.
O que são interrupções como funcionam?Uma interrupção é um evento externo que causa o processador parar a execução do programa corrente e desviar a execução para um bloco de código chamado rotina de interrupção (normalmente são decorrentes de operações de E/S).
|