E aí [Música] o Olá pessoal bem-vindos à aula 3 da semana 6 da disciplina de sistemas computacionais na aula de hoje a gente vai mudar um pouco tema aula a primeira aula nós falamos de linguagem de máquina e linguagem de montagem depois a gente falou sobre a linguagem de montagem agora a gente vai falar de interrupção de modo que a gente consiga depois juntar a linguagem de montagem a ideia de interrupção para as aulas da próxima semana tá bom bom pessoal o título da aula de hoje é tratamento de interrupção no sistema multiprogramado aquele quer
CPU o processador trabalha com mais de um processo a a CPU na verdade ela tá sempre apta a compartilhar o seu tempo entre vários programas dispositivos né de entrada e saída que necessitam a gente processamento o mecanismo de interrupção ele é ABA a implementação de sistema e de paralelismo não é para compartilhamento entre a CPU né e os periféricos por exemplo para controlar entrada e saída de dados não é interessante que a CPU tenha que ficar monitorando né ficar de olho aí e o status dos dispositivos dizendo para ela o que fazer né quando quando
agir então um mecanismo de interrupção ele permite que o Rider chama atenção da CPU quando alguma coisa precisa ser feita então É bem interessante essa dinâmica é então que são interrupções né então mecanismo pelo qual outros módulos interrompe o processamento da CPU em outros módulos que não órgão da CPU interrompendo o processamento da CPU para avisar alguns eventos né são eles interrupção de programa a gente depois vai falar dos clientes interrupção de temporização e quando a gente tem aí o relógio meu escalamento escalonamento de processos que a gente vinha aulas passadas quando existe falha de
raiva por exemplo falta de energia né ou interrupção mesmo de entrada e saída é de Formação outros exemplos aí são chegada de um dado em uma interface de rede tecla pressionada um clique no mouse é pensar que as interrupções são eventos gerados da grande maioria né em atividades assim né um exceção aí do Trap a os devemos de interrupção são de grande maioria assim mas não sistema não sabe e que ponto no fluxo aí de soluções a interrupção vai aparecer o tempo de servir a interrupção ele acaba sendo descontado aí da quantidade de tempo aí
do processo que tiver sendo executado na CPU lembre-se aí dos processos aí que na frente de estados né executando bloqueada que também vimos na aula passada é a opção permite aos dispositivos periféricos sincronizar em a operação deles né com a CPU caso não existe a CPU teria que ficar chegando aí os status né e reportando aí algum evento E aí seria na verdade um perdicio do tempo de CPU a ocorrência de uma interrupção ela Force uma mudança no fluxo aí de controle da CPU pois esse fluxo é transferido por uma rotina de tratamento de interrupção
lá e a gente vai ver que quem faz isso é o então eu vou observar Angra ou mesmo a gente chama de tratador um manipulador aí de interrupção é quando ocorre uma interrupção a CPU para o processamento do programa em execução e executando um pedaço de código chamada de tratador de interrupção e muitos casos Após a execução dessa interrupção a CPU volta a executar o programa no no na parte né onde foi interrompido é então esse tratador de interrupções ele é feito por um bloco especial de código é associado aí é uma condição que determina
a interrupção ele é chamado é também de rotinas de interrupção ou e s r s r o tratador de interrupção esses tratadores o ranger verde tem opção eles são iniciados por ele ter opções do tipo de raiva então opções de Soster ou algumas exceções aí eles são usados para implementar também driver de dispositivo ou transições aí de modos o segredos de operações como a gente vai falar das chamadas de sistema então o tratador de interrupção em resumo ele é um programa né Ele é uma parte do software né que determina a natureza da interrupção E
aí dependendo da natureza da interrupção ele realiza o tratamento adequado é o controle é transferido para esse volta para esse tratador né após salvar algumas informações né E isso aí é parte do sistema operacional Então qual é a função do tratador aí saber qual dispositivo lançou interrupção um esse esse softwares programa ele faz isso depois Em que ponto o sistema operacional está na onde está o endereço inicial da rotina que que trata esta interrupção para que o processador possa executar essa rotina no endereço especificado pela tratador bom e depois deixar que o processador consiga voltar
o seu curso normal de execução após e resolvido a questão da interrupção e temos de fluxo de controle a execução do tratador ela é é um pouco é ela é chamada de rotina né chamada de rotina mas a chamada de rotina ela é iniciada por isso dos Sonhos de programa em execução e o tratador de interrupção é na maioria das vezes um processo aí uma o junto assim né quer dizer tem comunicação entre o programa interrompido e o tratador mas também existem alguns tipos de reter opção que são síncronas Tá qual que é o suporte
do a dor nessa questão aí da interrupção do tratamento da da interrupção é o hardware ele é que detecta a inter e ele aguarda o final da execução da instrução corrente a E aí aciona o Ranger né aciona o tratador de interrupção E aí se salva se o contexto da execução desse processo que foi interrompido para reiniciar execução é necessário aí salvar isso no contador o dela é o valor do contador e outros registradores aí de status da CPU você registradores com dados do programa eles devem também ser salvos pelo pelo Wrangler né é caso
também ele vai precisar utilizar e muitas arquiteturas isso aí é feito por uma pilha independente né mas estrutura de dados do tipo pilha específica dedicada para fazer tratamento de interrupções a é agora vamos falar alguns tipos de interrupções Então as interrupções de hardware elas são geradas e por exemplo quando é que as indicar um overflow e alguma operação o caso alguma região de memória não permitida seja acessada é tão situações em que o programa não pode né não tem como ele prosseguir E aí o rádio é sinaliza uma interrupção para o controlador aí o tratador
de interrupção né que tipicamente ele vai terminar a execução do programa é ai interrupção de time né de relógio né do escalar escalonador é uma interrupção comum é o mecanismo que permite o sistema operacional atribui os times slide aí de execução do processador né para cada um dos processos nesse sistema sair multiprogramação que a gente tem a cada interrupção do relógio o tratador pode verificar se a fatia de tempo daquele processo já ciseco o botão né naquela as mudanças de estados do processo e se isso acontecer ele muda do executando e passa lá para o
pensa né E aí ele Tem que acionar o instalador para que o instalador escolha de acordo com seu algoritmo né um outro processo da fila para colocar esse outro processo em execução é tenha e situações que são chamadas de trás essa menstruação bastante interesse em uma interrupção bastante interessante porque ela é uma interrupção de programa né Elas ocorrem e consequência de alguma instrução executada no processador né porque normalmente um programa ele não pode chamar uma rotina do sistema operacional né já que o sistema operacional é um processo aí a paz o seu próprio espaço de
endereçamento né mas através do mecanismo de interrupção de tonta Esse é um processo ele pode ativar um tratador né E pode encaminhar uma chamada aí é o sistema operacional por exemplo durante o tratamento de um programa que ocorre a divisão por zero né pode ocorrer uma interrupção aí do Tipo top elas são síncronas né E até possível o programa passar aí algum parâmetro pro tratador né ele consegue passar um parâmetro aí é para o sistema operacional mostrar aqui também são usados e situação quando o programa não tem como prosseguir né pois que aconteceu algum tipo
de exceção e couve-flor tentativa de acesso a memória não permitida o algum tipo de estouro de pilha eu queria também chamar atenção né da questão dos das chamadas de sistema né Sistema de volta né É Esse é o mecanismo pelo qual o programa solicita os serviços do sistema operacional é então por exemplo para acessar o disco a criação e execução de novos processos e comunicação com serviço do sistema operacional como no caso do escalonamento de processos é uma interface essencial entre um processo e sistema operacional né é o agente viu que a gente consegue usando
aí Alguns tratamentos de interrupção é fazer com que o usuário consiga solicitar o serviço né consiga se comunicar com o sistema operacional Então essas são as opções é aqui é só um exemplo para ligar com vocês já a questão que nós vamos discutir na próxima semana né aqui a gente tá falando de um exemplo em assembly de uma interrupção do tipo e a Termas eu tanto amei a 32 né a opção que é o pé né ela na interrupção do tipo treco né EA instrução ela é é feita em junto para instrução higiene do assembly
é só para vocês terem uma ideia né no Nino antes de executar esta instrução o número de chamada né quer dizer a definição do serviço aí a ser executado deve ser colocado no registrador e a x e os argumentos né que você passado sair para o sistema eles são colocadas nesses outros registrados depois né que o sistema operacional ele Executa os preços requisitado Aí sim o controle retorna para instrução o seguinte após o empate né o valor de retorno aí e ex então é dessa maneira que você consegue usando essa interrupção EA 32 né é
pa a Dama trouxe para o sistema operacional né que você pediu um serviço para o sistema operacional historicamente a chamadas aos sistemas elas são feitas aí pelo Inter 0800 né Deve ter 80 então era só para trazer vocês aí para essa discussão né que agora a gente vai poder juntar fazendo assembler né A questão de trabalhar interrupções inclusive e de serviços aí fazer comunicação né é comunicação do tipo chamada de sistema né ao sistema operacional bom pessoal conhecer a aula de hoje aqui estão algumas referências que vocês podem consultar sobre questões aí de interrupção do
tratamento de interrupção espero que vocês tenham entendido aí as diferenças entre as linguagens de máquina linguagem de montagem as vantagens e desvantagens uso de cada uma dela a gente falou rapidamente de um breve isso a linguagem de montagem e depois falamos de tratamento de interrupções na próxima semana nós vamos juntar esse conceito aí e trazer uma prática para vocês um abraço a todos e até a próxima semana e E aí E aí [Música]