Vous êtes sur la page 1sur 10

AMBIENTES OPERACIONAIS

1.1 Uma revisão de arquitetura dos computadores

• Arquitetura: conjunto de recursos existentes a nível de hardware, utilizados para


suportar a implementação dos níveis de software.

• As camadas de software (sistema operacional, aplicativos, programas de usuário)


facilitam a utilização do computador, mas, ao fim e ao cabo, as ações do
computador são realizadas pelos componentes de hardware, os quais são
diretamente acionados por instruções de máquina executadas pela unidade central
de processamento (UCP).

• Componentes de uma arquitetura:

 Conjunto de instruções
 Tipos de dados e organização da memória
 Modos de endereçamento à memória
 Registradores acessíveis ao programador
 Entrada / saída e sistema de interrupção

• Modelo de Von Newmann

Na década de 40, John Von Newmann propôs um modelo de máquina onde os


programas e os dados usados por ele eram armazenados na memória (máquina de
programa armazenado). Ainda hoje, os computadores digitais são baseados neste
modelo, o qual é composto de cinco unidades essenciais: Unidade Lógica e
Aritmética (ULA), Unidade de Controle (UC), Memória (MEM), Unidade de
Entrada (UE) e Unidade de Saída (US):

Memória

Un. ULA Un.


Entrada Saída

Unidade
UC Central de
Processamento

Figura 1 – Modelo de Von Newmann

Na figura 2, os componentes da arquitetura são considerados em detalhe. As


linhas finas (1, 6, 10 e 11) são usadas para o envio de sinais de controle (barramento
de controle) e as demais são usadas para tranferir dados e endereços. Na verdade, a
única linha para envio de endereços é a 7, conforme será explicado a seguir.
AMBIENTES OPERACIONAIS p. 1
Revisão de arquitetura dos computadores
Prof. Simão Sirineo Toscani
MEMÓRIA

9
8 12 7
2 6 4

Unidade de 10 Unidade de 11 Unidade de


Entrada Controle Saída

1
Unidade de
3 5
Lógica e Aritm.

Figura 2 – Modelo de Von Newmann mais detalhado

 Unidade de Lógica e Aritmética (ULA):


A ULA é a parte do computador onde são realizadas as operações aritméticas (soma,
subtração, multiplicação, etc.), bem como as operações lógicas (and, or, etc.) sobre os
dados. A operação a ser executada é determinada pelo sinal que a UC envia para a
ULA (seta 1 na figura 2). Os dados a serem operados podem vir tanto da memória
(seta 2) quanto da Unidade de Entrada (seta 3). Os resultados das operações realizadas
pela ULA podem ser transferidos tanto para a memória (seta 4), quanto para a
Unidade de Saída (seta 5).

 Memória:
A Unidade de Memória é organizada como uma seqüência de células, denominadas
palavras (em inglês, words)1, cada célula possuindo um endereço único e podendo
ser acessada individualmente. Cada palavra armazena um grupo de dígitos binários
que pode representar um dado ou uma instrução. Portanto, a memória contém os
dados a serem operados e as instruções (programa) para manipular os dados ou
acionar as unidades de entrada e saída (E/S). A operação da memória (leitura ou
escrita) é controlada pela UC, que envia o sinal informando o tipo de operação (seta
6). O endereço de memória a ser acessado é enviado pela UC, através do barramento
de endereços (seta 7). As informações podem ser escritas na memória a partir da
ULA (seta 4) ou da Unidade de Entrada (seta 8), novamente sob controle da UC. As
informações podem ser enviadas da memória para a ULA (seta 2) ou para a Unidade
de Saída (seta 9).

 Unidade de Entrada:
A Unidade de Entrada é o dispositivo que permite a entrada de dados a partir do
ambiente externo. Esses dados podem ser introduzidos na memória (seta 8) ou na
ULA (seta 3). A UC determina para onde a informação de entrada será enviada (seta
10). Hoje em dia um computador admite utilizar vários tipos de periféricos como
1
Em alguns computadores atuais, a célula corresponde a um BYTE (conjunto de 8 bits), sendo uma
palavra um múltiplo de 8 bits (normalmente, 32 bits, isto é, 4 bytes).
AMBIENTES OPERACIONAIS p. 2
Revisão de arquitetura dos computadores
Prof. Simão Sirineo Toscani
unidades de entrada (teclado, mouse, digitalizadores de imagens, unidades de CD-
ROM, etc.).

 Unidade de Saída:
A Unidade de Saída é o dispositivo que permite a saída de informações para o
ambiente externo. A Unidade de Saída é dirigida pela UC (seta 11) e pode receber
dados da memória (seta 9) ou da ULA (seta 5) os quais são colocados então na forma
apropriada para o uso externo. Hoje em dia um computador admite vários tipos de
periféricos como unidades de saída (terminais de vídeo, impressora, discos
magnéticos, etc.).2

 Unidade de Controle:
A UC dirige a operação de todas as unidades, fornecendo os sinais de controle que
acionam os diversos componentes do hardware. Esta unidade contém circuitos lógicos
e de temporização (ou de sincronização) que geram os sinais necessários à execução
de cada instrução de um programa. A UC busca uma instrução na memória enviando
um endereço (seta 7) e um comando de leitura (seta 6) para a memória. A palavra de
instrução armazenada é então transferida para a UC (seta 12). Esta palavra de
instrução é decodificada pelos circuitos lógicos da UC para determinar a ação a ser
executada (adição, subtração, carga de registrador, etc.). A UC utiliza esta informação
para gerar os sinais necessários para a execução da instrução. Mais detalhes são
apresentados na seção a seguir.

• A Unidade Central de Processamento e o Mecanismo de Acesso à


Memória

A Unidade Central de Processamento (UCP ou CPU, do inglês Central Processing


Unit) é composta pela UC e pela ULA. Além destes componentes, a UCP contém um
conjunto de registradores. Um registrador é uma unidade de armazenamento de
informação interna, de acesso muito rápido, podendo ser de uso geral ou específico.
Um registrador tem uma capacidade de armazenamento que varia de 8 a 64 bits. A
estrutura dos registradores (quantidade, tipo, tamanho, etc.) varia de processador para
processador e é uma das características que definem uma arquitetura. A organização
básica de uma UCP é mostrada na figura 3.

2
O modelo de Von Newmann não inclui unidades que sirvam de entrada e saída (discos magnéticos,
por exemplo). Nas máquinas atuais, estes periféricos são essenciais, sendo referidos como
dispositivos de armazenamento secundário ou auxiliar. Eles possuem uma característica importante:
após serem acionados pela UC, são capazes de transferir grandes volumes de dados de/para a unidade
de memória (memória RAM), através de um mecanismo denominado DMA (Direct Memory Access).
AMBIENTES OPERACIONAIS p. 3
Revisão de arquitetura dos computadores
Prof. Simão Sirineo Toscani
a

Registrador Registrador
de endereço MEMÓRIA de dados ULA
(REM) (RDM)
b

Contador de Registrador
prog. (PC) de inst. (RI)

Decodificador
de instruções

Gerador de
sinais controle
Unidade de Controle

Figura 3 – A UCP e o mecanismo de acesso à memória

- Registradores REM e RDM


Todo e qualquer acesso à memória é feito através desse par de registradores, o qual
faz parte do mecanismo de acesso à memória. O registrador REM (registrador de
endereço) contém o endereço da célula (word ou byte) a ser acessada na memória. O
RDM (registrador de dado) serve como entrada ou saída. Em uma uma operação de
escrita, é necessário colocar previamente no RDM o dado a ser escrito na célula
indicada no REM. Em uma operação de leitura, o RDM vai receber o dado lido da
célula indicada no REM. Portanto, considerado de forma isolada, o controlador de
memória é um hardware que transfere dados entre o RDM e a memória.
Se a memória do computador é formada por vários módulos e cada um possui
seu próprio mecanismo de acesso, então é possível realizar acessos simultâneos à
memória (desde que os acessos envolvam módulos diferentes). Caso contrário, os
acessos têm que ser serializados e realizados um por vez.

- Contador de Programa (PC)


O contador de programa (Program Counter) é o registrador que indica o endereço
(localização na memória) da próxima instrução a ser executada. Durante a execução
de uma instrução, esse contador é incrementado com o valor do tamanho da instrução,
de modo que ele passe a conter o endereço da instrução seguinte. O tamanho do PC é
igual ao número de bits de endereço que o microprocessador pode manipular. Assim,
se a máquina trabalha com endereços de 16 bits, o PC terá 16 bits. O contador de
programa também pode ser referido por IC (do inglês Instruction Counter) ou IP
(Instruction Pointer).

AMBIENTES OPERACIONAIS p. 4
Revisão de arquitetura dos computadores
Prof. Simão Sirineo Toscani
- Registrador de Instruções (RI)
Quando a UC busca uma instrução na memória, o código de operação da instrução
vem para o registrador denominado RI (Registrador de Instruções). Este registrador é
utilizado somente pelo microprocessador, não podendo ser acessado pelo
programador. A instrução fica armazenada no RI enquanto o decodificador de
instruções a analisa.
Se a instrução tem um operando (endereço de dado a ser operado), o mesmo é
colocado no REM (isto é, o endereço do dado a ser utilizado na execução da instrução
é copiado do RDM para o REM – isto é indicado pela seta a, na figura acima). No
caso de uma instrução de transferência, o operando é copiado para o PC (seta b, na
figura acima), pois, nesse caso, o operando é o endereço da próxima instrução a ser
executada.

- Decodificador de Instruções
O decodificador de instruções tem a função de analisar a instrução presente no RI e,
de acordo com a mesma, enviar a codificação apropriada ao gerador de sinais de
controle.

- Gerador de Sinais de Controle


O gerador de sinais de controle gera os sinais que dirigem o funcionamento de todas
as unidades de hardware. Para cada instrução decodificada, são enviados os sinais de
sincronização e de controle que colocam em ação os componentes envolvidos na
execução da instrução.

- O registrador PSW (Processor Status Word)


O registrador “palavra de estado do processador” ou simplesmente “registrador de
estado”, não fazia parte da máquina de Von Newmann (nem existia nos computadores
mais antigos). Contudo, ele é essencial para o funcionamento de um sistema
operacional moderno e, atualmente, faz parte de qualquer UCP. O uso desse
registrador passou a ser necessário quando os computadores começaram a utilizar
sistemas de interrupção, conforme será explicado adiante.

- O registrador SP (Stack Pointer)


O registrador “ponteiro da pilha” (em inglês, stack pointer) é outro que não existia na
máquina de Von Newmann, mas que hoje em dia faz parte da UCP de quase todos os
computadores. Ele é necessário porque todo programa em execução precisa usar uma
pilha para realizar chamadas e retornos de procedimentos. Assim, cada programa
possui uma pilha própria e o registrador SP indica o topo da pilha do programa
correntemente em execução. Quando a execução passa de um programa para outro, o
valor do SP é alterado de modo que ele passa a apontar para a pilha do novo
programa em execução.

AMBIENTES OPERACIONAIS p. 5
Revisão de arquitetura dos computadores
Prof. Simão Sirineo Toscani
• O ciclo sem fim da UCP
A UCP funciona repetindo indefinidamente o processo de busca, decodificação e
execução de instrução. Isto se repete até que seja executada uma instrução especial,
normalmente denominada HALT, que faz a UCP parar. Esta instrução é protegida e
não pode ser executada diretamente por um programa de usuário (instruções
protegidas serão consideradas adiante, nos modos de execução da UCP). Desta
maneira, desde que o computador é ligado, a “vida da UCP” consiste em repetir o
ciclo:
1. busca instrução
2. analisa (decodifica) a instrução
3. executa a instrução
4. volta ao passo 1
Na verdade, nos computadores atuais, após executar o passo 3 e antes de
executar o passo 4, a UCP verifica os sinais de interrupção e, se ocorreu alguma
interrupção, o hardware coloca no PC, automaticamente, o endereço da rotina 3 que
trata da interrupção sinalizada. Deste modo, a instrução buscada no passo 1 será a
primeira instrução da rotina de interrupção.
A seguir é detalhada a transferência de dados entre os elementos da UCP, por
ocasião no primeiro passo do ciclo (busca da próxima instrução):
1. REM  PC
2. Sinal de leitura para o controlador de memória (enviado pela UC)
3. RDM  Mem[REM]
4. RI  RDM
5. PC <- PC + tamanho da instrução
Os cinco passos acima constituem o ciclo de busca da instrução (instruction
fetch cycle). O tempo necessário para executar o ciclo de fetch é constante para cada
computador. Já o tempo para executar uma instrução é variável, pois depende do tipo
da instrução e do modo de endereçamento utilizado na mesma. A execução da
instrução (geração dos sinais que acionam os componentes eletrônicos) é realizada no
denominado ciclo de execução da instrução (execution cycle).
Conforme visto acima, desde que o computador é ligado, o que a UCP faz é
repetir o ciclo “busca, decodificação e execução de instrução”. Portanto, desde o
início, já deve haver um programa na memória para ser executado. A existência do
software de controle na memória é garantida através de um processo automático
(realizado de forma automática pelo hardware), denominado carga inicial ou
bootstrapping.

• O processo de bootstrapping
Quando o computador é ligado, automaticamente o hardware executa um pequeno
programa que está gravado em ROM (memória permanente). Esse pequeno programa
faz a carga de um programa maior (que está no disco do sistema) e transfere a
execução para ele. O programa maior, por sua vez, faz a carga do kernel e dos
processos do SO, bem como faz a inicialização das estruturas de dados do sistema, e,

3
O mecanismo de interrupção, responsável pela carga do endereço da rotina de interrupção no PC é
descrito adiante.

AMBIENTES OPERACIONAIS p. 6
Revisão de arquitetura dos computadores
Prof. Simão Sirineo Toscani
finalmente, transfere a execução para o SO. Este procedimento de carga do SO é
conhecido como bootstrapping.
Observe que durante todo o tempo, desde a execução inicial do pequeno
programa armazenado em ROM, o que a UCP faz é simplesmente repetir o seu ciclo
infinito. Considerando que a UCP é capaz de executar um conjunto relativamente
pequeno de instruções, é impressionante o resultado obtido pelo SO. De fato, há quem
diga que um elefante é um rato com um SO (isto significa que um SO conseguiria dar
a um rato o poder de um elefante).

• O mecanismo de interrupção
Hoje em dia, praticamente todos os computadores são dotados de um mecanismo de
interrupção. Neste caso, a UC, logo após terminar a execução de uma instrução (antes
de iniciar o ciclo de fetch da próxima instrução) verifica as linhas de interrupção para
ver se alguma interrupção foi sinalizada. Se foi, o hardware, automaticamente, salva
os registradores da UCP na pilha do programa que estava em execução e carrega no
PC o endereço da rotina que trata da interrupção que foi sinalizada (as rotinas de
interrupção fazem parte do kernel do Sistema Operacional).
O mecanismo de interrupção é fundamental para a organização e o
funcionamento dos sistemas operacionais modernos. Pode-se dizer que as
interrupções são as forças que movimentam e dirigem os SOs. Na verdade, um SO só
recebe o controle da UCP (só trabalha) quando ocorre alguma interrupção. Essas
“forças motrizes” podem ser geradas por hardware ou por software.

- Interrupção de hardware
Uma interrupção de hardware é um sinal originado em algum dispositivo físico, que
faz com que a UCP suspenda a execução do programa que vinha executando
(guardando informações para continuar a execução desse programa, mais tarde) e
passe a executar uma rotina específica que trata da interrupção ocorrida.
Interrupções de hardware são geradas pelos vários dispositivos periféricos
(disco, impressora, teclado, etc.) ou pelo relógio (timer). O relógio é um dispositivo
que decrementa automaticamente o conteúdo de um registrador, com uma freqüência
constante, e interrompe a UCP quando o valor do registrador atinge zero. O SO
garante que ocorra pelo menos uma interrupção (e ele volte a trabalhar) dentro de um
tempo T, colocando no relógio um valor que demore T unidades de tempo para ser
decrementado até zero (o SO faz isso antes de entregar a UCP para um programa de
usuário).
Os computadores possuem instruções especiais para desabilitar (mascarar,
inibir) o sistema de interrupção. Enquanto as interrupções estão desabilitadas elas
podem ocorrer, mas não são sentidas pelo processador. Nesse caso, elas ficam
pendentes (enfileiradas) e só voltam a ser sentidas quando a UCP executa uma
instrução especial que habilita (desmascara, desinibe) as mesmas.

AMBIENTES OPERACIONAIS p. 7
Revisão de arquitetura dos computadores
Prof. Simão Sirineo Toscani
- Interrupção de software (trap ou system call)
Uma interrupção de software é um sinal de interrupção gerado por uma instrução
especial (portanto, por software) denominada chamada do sistema (system call) ou
chamada do supervisor (supervisor call). Alguns autores também chamam as
interrupções geradas por software de traps (armadilhas). Um trap desencadeia as
mesmas ações desencadeadas por uma interrupção de hardware, isto é, o programa em
execução é suspenso, informações são salvas e uma rotina específica do SO é
executada.
A diferença fundamental entre as interrupções de software e as de hardware é
que as primeiras (traps) são eventos previsíveis. Isto é, dado um programa e seus
dados, é possível determinar os pontos em que as interrupções de software irão
ocorrer. Por outro lado, as interrupções de hardware são geradas por dispositivos
periféricos (para sinalizar erros ou finais de operações) em pontos que são
imprevisíveis.
É comum que a denominação interrupção seja subentendida como interrupção
de hardware. Esta convenção será usada daqui para a frente. As interrupções de
software serão referidas explicitamente por traps ou chamadas do sistema.
Pode-se dizer que à cada interrupção ou trap corresponde uma porta de
entrada no SO e que a execução só entra no SO através de uma dessas portas. A
seguir é explicado o mecanismo que faz a UCP transferir automaticamente a execução
para a porta de entrada correta, quando ocorre uma interrupção ou um trap.

Tabela de interrupções
Em tempo de projeto do computador, é escolhida uma área da memória para conter
uma tabela, denominada tabela de interrupções, que irá conter uma linha (entrada)
para cada interrupção ou trap que possa ocorrer no sistema. Cada entrada da tabela
contém dois valores: um para ser carregado no PC (program counter) e outro para ser
carregado no registrador de estado. O registrador de estado é normalmente referido
como PSW (Processor Status Word) e já foi citado anteriormente. Trata-se de um
registrador especial que fornece basicamente duas informações: quais as interrupções
que estão habilitadas e qual é o modo de execução4 atual da UCP.
O hardware é projetado e construído de tal maneira que, quando ocorre uma
interrupção ou um trap, a UCP salva automaticamente os conteúdos do PC e da PSW
na pilha do programa que estava em execução e carrega novos valores nesses dois
registradores, a partir da entrada correspondente da tabela de interrupções. Em tempo
de carga do SO, a tabela de interrupções é inicializada corretamente, de modo que
cada entrada passa a indicar uma rotina do Kernel do SO.

Os modos de execução da UCP


Os traps surgiram (tornaram-se necessários) quando os projetistas de computadores e
de sistemas operacionais decidiram proibir o uso de certas instruções para os
programas de usuário. As instruções proibidas são ditas protegidas ou privilegiadas.
Tratam-se de instruções perigosas, pois o uso incorreto delas (intencional ou não)
pode gerar problemas para o SO. Portanto, estas instruções devem ficar para uso

4
O modo de execução pode ser normal (isto significa que um programa de usuário está em
execução) ou privilegiado (significa que o SO está em execução).
AMBIENTES OPERACIONAIS p. 8
Revisão de arquitetura dos computadores
Prof. Simão Sirineo Toscani
exclusivo do SO. Exemplos são instruções para desabilitar interrupções e instruções
para acionar periféricos.
Este controle no uso de instruções é conhecido como proteção de controle5
ou proteção de instruções. Para implementar esta proteção, o hardware teve que
passar a distinguir dois modos de processamento: modo privilegiado (também
chamado de modo supervisor, modo sistema ou modo mestre) e modo normal
(também chamado de modo usuário, modo programa ou modo escravo). Se a UCP,
no modo normal, tenta executar uma instrução protegida, a UC gera um trap do tipo
“instrução ilegal” (illegal instruction trap).
Sendo assim, sempre que um programa de usuário precisa realizar uma
operação que envolva alguma instrução privilegiada, ele tem que passar o controle
para o SO, mudando o modo de execução. Aqui chegamos a um ponto que é muito
importante para o entendimento do esquema utilizado (aqui os projetistas deram o
“pulo do gato”). Observe que a instrução de transferência para o SO não poderia ser
protegida, pois esta instrução seria executada por um programa de usuário. Também
não poderia ser uma instrução de transferência simples, pois isto permitiria transferir
a execução para qualquer ponto do SO, sem controle. Tampouco poderia ser uma
instrução de transferência para subrotina com troca (automatica) do modo para
privilegiado, pois uma instrução destas poderia ser usada por um usuário mal
intencionado para obter o controle total da máquina. Era necessário, portanto, que a
instrução de transferência para o SO tivesse alguma “armadilha” associada, para
pegar intrusos. Daí vem o nome trap (armadilha) para o esquema adotado. A solução
dos projetistas foi a de permitir a ação de transferir a execução para o SO (com troca
para modo privilegiado) apenas para pontos fixos e bem definidos do SO, através da
tabela de interrupções6. Nestas poucas portas de entrada, o SO pode fazer as
verificações que julgar necessárias e implementar as armadilhas que desejar.
Hoje em dia, praticamente todos os computadores possuem instruções
privilegiadas e dois modos de processamento. Sempre que ocorre uma interrupção ou
um trap, a UCP passa para o modo privilegiado. Posteriormente, ao devolver o
controle para um programa de usuário, o SO recoloca a UCP no modo normal.
Quando um programa de usuário precisa realizar uma operação que envolva instrução
protegida, o mesmo tem que executar um trap, passando como argumentos para o SO
a identificação da operação e os parâmetros para a sua execução.

• Um sistema de interrupção típico


A seguir é apresentada uma arquitetura clássica de computador. Trata-se do
minicomputador PDP-11, muito popular na década de 70, sobre o qual foi
implementado o primeiro sistema operacional UNIX. As arquiteturas dos
computadores atuais seguem os mesmos princípios básicos.
No PDP-11, os registradores da UCP eram nove: PC (program counter), PSW
(Processor Status Word), SP (stack pointer) e seis registradores de uso geral R0,
R1,...R5. A palavra de estado do processador (PSW) possuía um bit especial para
indicar o modo de processamento (1 = modo supervisor, 0 = modo usuário). Além
disso, a PSW tinha um campo de três bits para mascarar interrupções. Quando o valor
desse campo era 7, todas as interrupções estavam desabilitadas. Quando o valor era 0,

5
Outro tipo de proteção implementado por hardware é a proteção de memória. A proteção de
arquivos (informações) é normalmente implementada por software.
6
Observe que a tabela de interrupções também precisa ficar protegida contra acessos de usuários.
AMBIENTES OPERACIONAIS p. 9
Revisão de arquitetura dos computadores
Prof. Simão Sirineo Toscani
todas as interrupções estavam habilitadas. Quando o valor era n (n<7), qualquer
dispositivo com prioridade maior que n podia interromper. As prioridades dos
dispositivos variavam de 1 a 7.
Cada programa utilizava uma pilha própria e o topo da pilha do programa em
execução era apontado pelo registrador SP. Sempre que ocorria uma interrupção (ou
era executado um trap), o hardware salvava automaticamente os valores do PC e da
PSW no topo da pilha corrente e carregava novos valores nesses dois registradores, a
partir da tabela de interrupções (localizada em uma área fixa da memória). O novo
valor do PC era o endereço da rotina correspondente à interrupção ocorrida. O novo
valor da PSW continha 7 no campo para mascarar interrupções e 1 no bit para indicar
o modo de execução. Portanto, após a mudança de contexto, a UCP passava a
trabalhar com interrupções desabilitadas e no modo privilegiado. Era função da rotina
de interrupção salvar os demais registradores da UCP (SP e registradores de uso geral
R0, R1, ..., R5).
Para voltar a executar um programa de usuário, existia uma instrução especial
denominada RTI (ReTurn from Interrupt) cuja execução consistia em carregar os
registradores PC e PSW com os valores contidos na pilha corrente (apontada pelo
SP). As últimas ações do SO, após arealização do seu serviço (isto é, após o
atendimento da interrupção), eram: (1) escolher o próximo programa a ser executado,
(2) restaurar os valores dos registradores SP, R0, R1, ..., R5, correspondentes a esse
programa, e (3) executar a instrução RTI.
A figura 4 mostra os principais componentes envolvidos no tratamento de
interrupções.

interrupção
(salva estado)

Programa de usuário Sistema Operacional


(modo normal) (modo privilegiado)

retorno de interrupção
(restaura estado)

SP PC
Tipos de interrupções:
PSW
• interrupção de periférico
• interrupção do relógio ...
• interrupção de proteção (erro de execução) ...
• chamada do sistema ou trap
PILHA
(após uma interrupção)

Figura 4 – Principais elementos de um sistema de interrupção

AMBIENTES OPERACIONAIS p. 10
Revisão de arquitetura dos computadores
Prof. Simão Sirineo Toscani

Vous aimerez peut-être aussi