Arquitetura de Computadores - Concorrência
-
Upload
evandro-junior -
Category
Technology
-
view
103 -
download
1
Transcript of Arquitetura de Computadores - Concorrência
Curso superior de Sistemas de Informação - IFNMG
Aula 2 Arquitetura de Computadores
CONCORRÊNCIA
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Técnicas de implementação de concorrência como interrupções, buffering, spooling e reentrância, são conceitos fundamentais para sistemas multiprogramáveis.
Sistemas operacionais podem ser vistos como um conjunto de rotinas executadas de forma concorrentes e ordenadas.
Introdução
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Sistemas Monoprogramáveis x Multiprogramáveis
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Os recursos de memórias, processadores e dispositivos de E/S eram utilizados com pouca eficiência.
Recursos permaneciam muitas vezes ociosos por um longo período de tempo.
Apenas um programa pode ser executado por vez.
Desperdício de processamento.
Sistemas Monoprogramáveis
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA Sistemas Monoprogramáveis
CPU
E/S
Livre
Tempo
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Leitura de um registro 0,0015
Execução de 100 instruções 0,0001
Total 0,0016
% utilizada da CPU (0,0015/0,0001) = 0,066 = 6,6%
93% do tempo esperando a conclusão da operação de E/S.
Sistemas Monoprogramáveis
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Outro aspecto a ser considerado é a subutilização da memória principal.
Sistemas Monoprogramáveis
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Nesse sistema é comum termos, impressoras paradas por um grande período de tempo e disco com acesso restrito a apenas um usuário.
Sistemas Monoprogramáveis
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Nesse sistema vários programas podem estar residentes na memória, concorrendo pela utilização do processador.
Quando for solicitada uma operação de E/S os programas podem ser processados pela CPU paralelamente.
Sistemas Multiprogramáveis
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
A CPU é implementada para que, quando um programa perder o uso do processador e depois retorna para continuar o processamento, seu estado continue o mesmo de quando foi interrompido.
Sistemas Multiprogramáveis
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Em um sistema de tempo compartilhado existe a impressão que o computador está inteiramente dedicado ao usuário.
Sistemas Multiprogramáveis
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA Sistemas Multiprogramáveis
1 1 CPU
E/S
Tempo
1
2
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Durante a execução de um programa, alguns eventos inesperados podem ocorrer, ocasionando um desvio forçado no seu fluxo normal de execução.
Esses eventos são conhecidos como interrupção ou exceção, e podem ser resultado de sinalizações de algum dispositivo de hardware externo ao ambiente memória/processador.
Interrupções e Exceções
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA Interrupções
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
As interrupções podem ser geradas: • Pelo programa do usuário (entrada de dados pela console ou teclado)
• Pelo hardware (operações de E/S)
• Pelo sistema operacional (ao término da fatia de tempo do processador destinada ao programa)
As interrupções sempre são tratadas pelo Sistema Operacional.
Interrupções
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
A exceção é um evento semelhante à interrupção, pois também de fato interrompe um programa.
A principal diferença é que a exceção é o resultado da execução de uma instrução dentro do próprio programa, como a divisão por zero ou a ocorrência de um overflow (estouro de capacidade de um campo) numa operação aritmética.
Exceções
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Na maioria das vezes, a exceção provoca um erro fatal no sistema, causando o término anormal do programa.
Isto se deve ao fato de que a exceção é melhor tratada dentro do próprio programa, com instruções escritas pelo programador.
Exceções
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
A técnica de buffering consiste na utilização de uma área em memória principal, denominada buffer, criada e mantida pelo Sistema Operacional.
Possui a finalidade de auxiliar a transferência de dados entre dispositivos de E/S e a memória.
Buffering
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
O buffer permite minimizar a disparidade de velocidade entre o processador e os dispositivos de E/S, e tem como objetivo principal manter tanto os dispositivos de E/S como o processador ocupados a maior parte do tempo.
Buffering
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
A unidade de transferência do mecanismo de buffering é o registro.
O buffer deve permitir o armazenamento de vários registros, de forma que o processador tenha à sua disposição dados suficientes para processar sem ter que interromper o programa a cada leitura/gravação no dispositivo de E/S.
Buffering
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA Buffering
Memória Principal
Controlador Buffer
gravação
Leitura
gravação
Leitura
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Semelhante ao buffering, utiliza uma área em disco como se fosse um grande buffer.
Neste caso, dados podem ser lidos ou gravados em disco, enquanto programas são executados de forma concorrente.
Spooling
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Técnica muito usada em sistemas operacionais para gerenciar filas de impressões.
No momento que um arquivo for mandando para impressão, ele é armazenado primeiramente em uma parte do disco, esse arquivo é conhecido como arquivo de spool, liberando imediatamente o programa para outras atividades.
Spooling
Spooling
Sistema Operacional Impressora Arquivo de Spool Programa
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
É comum, em sistemas multiprogramáveis, vários usuários utilizarem os mesmos aplicativos simultaneamente, como editores de texto, compiladores e outros utilitários.
Nesta situação, se cada usuário que utilizasse um destes aplicativos trouxesse o código executável para a memória haveria então diversas cópias de um mesmo programa ocupando espaço na memória, o que causaria um grande desperdício de espaço.
Reentrância
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Reentrância é a capacidade de um código executável (código reentrante) ser compartilhado por vários usuários, exigindo apenas uma cópia do programa em memória.
A reentrância permite que cada usuário esteja executando um trecho diferente do código reentrante, manipulando dados próprios, exclusivos de cada usuário.
Reentrância
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Objetivo geral: promover o uso mais eficiente da memória e um desempenho maior do sistema.
Reentrância
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Considerando-se que diversos usuários estão compartilhando os mesmos recursos, como: memória, processador e dispositivos de E/S.
Faz-se então necessário existir mecanismos de proteção para garantir a confiabilidade e a integridade dos dados e programas dos usuários, além do próprio sistema operacional.
Segurança e Proteção do Sistema
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Como vários programas ocupam a memória principal simultaneamente, cada usuário possui uma área reservada onde seus programas e dados são armazenados durante o processamento.
O sistema operacional deve possuir mecanismos de proteção a essas áreas, de forma a preservar as informações nela contidas.
Segurança e Proteção do Sistema
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Caso um programa tente acessar uma posição de memória fora de sua área, um erro indicando a violação de acesso deve ocorrer.
Segurança e Proteção do Sistema
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
Todo o controle da segurança do sistema é implementado pelo sistema operacional, a partir de mecanismos como:
• Grupos de usuários;
• Perfis de usuários e
• Direitos de acesso.
Segurança e Proteção do Sistema
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
A proteção começa geralmente no procedimento de login, quando o usuário faz a conexão inicial no sistema.
• Proteção as áreas alocadas de memória;
• Disco e
• Até mesmo o uso do processador.
Segurança e Proteção do Sistema
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
As operações de E/S no computador funcionam de três formas básicas:
• por programa;
• por interrupção e
• por acesso direto a memória (DMA)
Operações de Entrada e Saída
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA
O canal de E/S funciona então como uma interface entre os controladores e a CPU.
Operações de Entrada e Saída
www.evandrojunior.pro.br [email protected]
pt.slideshare.net/EvandroJunior
CONCORRÊNCIA Operações de Entrada e Saída
Memória Principal
CPU
Canal de E/S
Controlador Controlador