Prof. Paulo Cesar F. de Oliveira, BSc, PhD 1
2
Seção 1.1 Sistemas Monoprogramáveis Multiprogramáveis 3
Monoprogramável Multiprogramável E/S E/S 1 UCP livre UCP 1 2 1 (a ) Sistema Monoprogramável tem po (b) Sistema Multiprogramável tem po 4
Exemplo de utilização do Sistema Leitura de um registro Execução de 100 instruções Tempo Total 0,0015 s 0,0001 s 0,0016 s % uso da CPU (0,0001/0,0016) = 0,0625 = 6,25 % 5
Ambiente Monoprogramável Características Prog 1 Prog 2 Prog 3 Utilização da CPU Alta Baixa Baixa Operação de E/S Pouca Muitas Muitas Tempo de Processamento 5 min 15 min 10 min Memória utilizada 50 kb 100 kb 80 kb Utilização de disco Não Não Sim Utilização de monitor Não Sim Não Utilização de impressora Não Sim Sim 6
Comparação Mono x Multi Características Monoprogramável Multiprogramável Utilização da CPU 17% 33% Utilização da Memória 30% 67% Utilização de disco 33% 67% Utilização de impressora 33% 67% Tempo Total de Processamento 30 min 15 min Taxa de Throughput (ganho) 6 prog/hora 12 prog/hora 7
Seção 1.2 Interrupções e Exceções 8
Mecanismos de Interrupção e Exceção 9
Mecanismo de Interrupção Via Hardware Um sinal de interrupção é gerado para o processador Após término da execução da instrução corrente, processador identifica o pedido de interrupção Conteúdos dos registradores CI e Status são salvos Processador identifica qual a rotina de tratamento que será executada e carrega o CI com endereço inicial desta rotina Via Software Rotina de tratamento salva conteúdo dos registradores de uso geral do processador na pilha de controle do programa Rotina de tratamento é executada Após término da execução da rotina de tratamento, registradores de uso geral são restaurados, além do CI e Status, retornando à execução do programa interrompido 10
Exceção public class DivisaoZero { public static void main { String[] args { int a, b, c } a = 2; b = 0; c = a / b; System.out.print( Divisao de a por b = + c); } Exception in thread main java.lang.arithmeticexception: by zero at DivisaoZero.main(DivisaoZero.java:7)" 11
Exceção public class DivisaoZeroTratamento { public static void main { String[] args { int a, b, c a = 2; b = 0; try { c = a / b; System.out.print( Divisao de a por b = + c); } catch (ArithmeticException arithmetic exception) { System.out.print( Erro: divisao por zero ); } } } 12
Seção 1.3 Operações de E/S 13
Controlador UCP Memória Principal Processador não se comunica com periférico diretamente Controlador responsável pela operação dos periféricos Controlador Dispositivos de E/S 14
Canal de E/S UCP Memória Principal Canal E/S: processador executa todas as operações E/S Controla vários dispositivos através controladores Elo entre processador e controlador Controlador Canal de E/S Controlador Dispositivos de E/S Dispositivos de E/S 15
Seção 1.4 Buffering 16
Buffering ( Buferização ) Memória Principal Buffer minimiza a disparidade de velocidade entre processador e dispositivo E/S Manter processador e dispositivos ocupados por mais tempo UCP gravação Buffer gravação Controlador leitura leitura 17
Seção 1.5 Spooling 18
Spooling (Simultaneous Peripheral Operations On-Line) Sistema O peracional Program a Arquivo de Spool Impressora 19
Seção 1.6 Reentrância 20
Reentrância usuário A usuário C usuário B código reentrante área de dados do usuário A usuário D área de dados do usuário B área de dados do usuário C área de dados do usuário D Memória Principal 21
Texto Fonte Arial Normal Máx.14pt / Mín.12pt Preto Centralizado 22