Arquitetura de Computadores - Concorrência

36
Curso superior de Sistemas de Informação - IFNMG Aula 2 Arquitetura de Computadores CONCORRÊNCIA

Transcript of Arquitetura de Computadores - Concorrência

Page 1: Arquitetura de Computadores - Concorrência

Curso superior de Sistemas de Informação - IFNMG

Aula 2 Arquitetura de Computadores

CONCORRÊNCIA

Page 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

Page 3: Arquitetura de Computadores - Concorrência

www.evandrojunior.pro.br [email protected]

pt.slideshare.net/EvandroJunior

CONCORRÊNCIA

Sistemas Monoprogramáveis x Multiprogramáveis

Page 4: Arquitetura de Computadores - Concorrência

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

Page 5: Arquitetura de Computadores - Concorrência

www.evandrojunior.pro.br [email protected]

pt.slideshare.net/EvandroJunior

CONCORRÊNCIA Sistemas Monoprogramáveis

CPU

E/S

Livre

Tempo

Page 6: Arquitetura de Computadores - Concorrência

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

Page 7: Arquitetura de Computadores - Concorrência

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

Page 8: Arquitetura de Computadores - Concorrência

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

Page 9: Arquitetura de Computadores - Concorrência

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

Page 10: Arquitetura de Computadores - Concorrência

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

Page 11: Arquitetura de Computadores - Concorrência

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

Page 12: Arquitetura de Computadores - Concorrência

www.evandrojunior.pro.br [email protected]

pt.slideshare.net/EvandroJunior

CONCORRÊNCIA Sistemas Multiprogramáveis

1 1 CPU

E/S

Tempo

1

2

Page 13: Arquitetura de Computadores - Concorrência

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

Page 14: Arquitetura de Computadores - Concorrência

www.evandrojunior.pro.br [email protected]

pt.slideshare.net/EvandroJunior

CONCORRÊNCIA Interrupções

Page 15: Arquitetura de Computadores - Concorrência

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

Page 16: Arquitetura de Computadores - Concorrência

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

Page 17: Arquitetura de Computadores - Concorrência

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

Page 18: Arquitetura de Computadores - Concorrência

www.evandrojunior.pro.br [email protected]

pt.slideshare.net/EvandroJunior

CONCORRÊNCIA Exceções

Page 19: Arquitetura de Computadores - Concorrência

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

Page 20: Arquitetura de Computadores - Concorrência

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

Page 21: Arquitetura de Computadores - Concorrência

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

Page 22: Arquitetura de Computadores - Concorrência

www.evandrojunior.pro.br [email protected]

pt.slideshare.net/EvandroJunior

CONCORRÊNCIA Buffering

Memória Principal

Controlador Buffer

gravação

Leitura

gravação

Leitura

Page 23: Arquitetura de Computadores - Concorrência

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

Page 24: Arquitetura de Computadores - Concorrência

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

Page 25: Arquitetura de Computadores - Concorrência

Spooling

Sistema Operacional Impressora Arquivo de Spool Programa

Page 26: Arquitetura de Computadores - Concorrência

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

Page 27: Arquitetura de Computadores - Concorrê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

Page 28: Arquitetura de Computadores - Concorrê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

Page 29: Arquitetura de Computadores - Concorrê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

Page 30: Arquitetura de Computadores - Concorrência

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

Page 31: Arquitetura de Computadores - Concorrência

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

Page 32: Arquitetura de Computadores - Concorrência

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

Page 33: Arquitetura de Computadores - Concorrência

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

Page 34: Arquitetura de Computadores - Concorrência

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

Page 35: Arquitetura de Computadores - Concorrência

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

Page 36: Arquitetura de Computadores - Concorrência

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