O documento discute conceitos de concorrência em sistemas operacionais, incluindo: (1) a diferença entre sistemas monoprogramáveis e multiprogramáveis e as vantagens da multiprogramação; (2) o mecanismo de troca de contexto entre processos; e (3) o mecanismo de interrupções e exceções para lidar com eventos assíncronos no sistema.
2. Sistemas Operacionais - Aula 05: Concorrência
Na aula anterior...
Prática com Simulador SOsim
11:13
3. Sistemas Operacionais - Aula 05: Concorrência
Mundo 5 – Concorrência
3
Hardware e software
Conceitos Básicos
Visão Geral de SO
Aula Prática I
Concorrência
4. Sistemas Operacionais - Aula 05: Concorrência
O que vamos aprender?
Concorrência em Sistemas Operacionais
11:13
5. Sistemas Operacionais - Aula 05: Concorrência
Relembrando...
5
O que é um sistema operacional?
É um programa ou conjunto de programas cuja função é
gerenciar os recursos do hardware
Funções básicas
Facilidade de acesso aos recursos do sistema + Compartilhar os
recursos de forma organizada e protegida
6. Sistemas Operacionais - Aula 05: Concorrência
Relembrando...
6
Hardware e Software são logicamente equivalentes
Sistemas monoprogramáveis executam
apenas uma tarefa por vez
Sistemas multiprogramáveis executam várias tarefas “ao mesmo tempo”
Sistemas multiprocessadores possuem vários processadores,
além disto podem ser fortemente ou fracamente acoplados.
7. Sistemas Operacionais - Aula 05: Concorrência
Relembrando...
7
O Processador é comporto por: UC, ULA, e registradores
A memória principal pode ser volátil ou não volátil
Memória secundária é o armazenamento de dados
“permanente” e não volátil
A linguagem de máquina é o que o processador realmente entende e está
diretamente ligado a sua arquitetura, que comumente vão ser RISC ou CISC
8. Sistemas Operacionais - Aula 05: Concorrência
Relembrando...
8
Tradutor: Traduz o programa para linguagem de máquina
Interpretador: Interpreta código direto
Linker: Liga vários módulos como um só
Loader: Carrega o programa na memória
Depurador: Acompanhar a execução de um programa
10. Sistemas Operacionais - Aula 05: Concorrência
Sistemas Monoprogramáveis:
Apenas um programa sendo executado a cada vez
Execução de um novo programa deve esperar o encerramento do programa sendo
executado
Sistemas Multiprogramáveis:
Permite a concorrência dos programas
Execução de novos programas inicia-se durante a execução de outros programas
Monoprogramável x Multiprogramável
11. Sistemas Operacionais - Aula 05: Concorrência
Tempo total de execução de vários programas torna-se menor
Uso mais racional dos recursos
Melhor aproveitamento do espaço de memória
Aproveitamento do processador durante operações de E/S
Cada programa (processo) ocupa uma fatia de tempo do processador
Vantagens dos SistemasMultiprogramáveis
12. Sistemas Operacionais - Aula 05: Concorrência
2
(a) Sistema Monoprogramável
tempo tempo
E/ S E/ S
UCP UCPlivre 11
1
(b) Sistema Multiprogramável
Monoprogramável x Multiprogramável
13. Sistemas Operacionais - Aula 05: Concorrência
Prog. 1:
10% de CPU, 30% de memória e 5 min
Prog. 2:
50% de CPU, 30% de memória e 15 min
Prog. 3:
30% de CPU, 20% de memória e 10 min
Execução concorrente dos 3 programas:
< 90% de CPU, < 80% de memória e < 15 min
Monoprogramável x Multiprogramável
14. Sistemas Operacionais - Aula 05: Concorrência
Mudança de um processo para outro faz com que todo o
conteúdo dos registradores seja trocado (estado do sistema)
Quando um processo retorna à sua execução, todo o
contexto imediatamente anterior à sua saída deve ser
recuperado
Troca de contexto
15. Sistemas Operacionais - Aula 05: Concorrência
Durante a execução de um programa, alguns eventos inesperados podem ocorrer,
ocasionando um desvio forçado no fluxo de execução
Sinalização de operação de E/S de dispositivo externo
Problemas decorrentes da execução de instruções do programa
Ao final de cada instrução, a UC verifica a ocorrência de interrupção ou exceção
Processador interrompe o programa em execução para tratar o evento
Interrupção e Exceção
17. Sistemas Operacionais - Aula 05: Concorrência
Sinal de interrupção gerado para o processador
Processador termina a instrução corrente e identifica qual interrupção foi gerada
Registradores PC e de status são salvos, PC recebe endereço inicial da rotina de
tratamento
Rotina de tratamento salva demais conteúdos de registradores na pilha de
controle e é executada
Após o término, todos os registradores são restaurados e programa interrompido
retorna
Mecanismo de interrupção
18. Sistemas Operacionais - Aula 05: Concorrência
Vetor de interrupção
Contém o endereço inicial de todas as rotinas de tratamento p/ cada tipo de evento
A partir de um registrador de status
Uma única rotina que verifica o tipo de evento e faz o tratamento adequado
Interrupção e Exceção
19. Sistemas Operacionais - Aula 05: Concorrência
Interrupções são decorrentes de eventos assíncronos, sem relação com o programa corrente
Podem ocorrer múltiplas vezes num mesmo intervalo de tempo (simultaneamente)
Rotina de tratamento pode desabilitar tratamento das demais interrupções
Interrupções mascaráveis
Demais interrupções podem ser enfileiradas segundo respectivas prioridades
Interrupção e Exceção
20. Sistemas Operacionais - Aula 05: Concorrência
Exceções são eventos síncronos, resultado direto da execução do
programa corrente
Divisão por zero
Overflow em operação aritmética
São previsíveis e só podem ocorrer um de cada vez
Tratamento equivalente ao da interrupção
Interrupção e Exceção
22. Sistemas Operacionais - Aula 05: Concorrência
Antes, instruções de E/S específicas para cada periférico eram executadas pela CPU
Surgimento do controlador de dispositivo desonerou o processador e permitiu maior agilidade
Processador não mais se comunica diretamente com o dispositivo, somente via controlador
Instruções de E/S mais simplificadas
Inicialmente operava em modo busy-wait, posteriormente fazendo polling nos dispositivos,
finalmente se valendo de interrupção para avisar término da operação de E/S
Operações de Entrada/Saída
23. Sistemas Operacionais - Aula 05: Concorrência
Memória
Principal
UCP
Controlador
Dispositivos de E/ S
Operações de Entrada/Saída
24. Sistemas Operacionais - Aula 05: Concorrência
Transferência de grande volume de dados entre controladora e
MP onera por demais o processador
Solução usando DMA
Permite que dados sejam transferidos entre controladoras e MP sem intervenção do processador, exceto
no início e no final
Área de memória usada pelo controlador de DMA é chamada buffer de entrada/saída
Controle de barramento assumido temporariamente pelo DMA, processador limitado a acessar caches
Operações de Entrada/Saída
25. Sistemas Operacionais - Aula 05: Concorrência
Canal de E/S é um processador com capacidade de executar programas de E/S e
controle total dos dispositivos
Instruções de E/S armazenadas na MP ou no canal de E/S, porém executadas pelo
canal de E/S
Processador instrui o canal de E/S a executar um programa de canal, responsável por
especificar dispositivos, buffers e ações
Ao final da transferência, gera interrupção
Pode controlar múltiplos dispositivos de E/S
Canal de E/S
26. Sistemas Operacionais - Aula 05: Concorrência
Memória
Principal
UCP
Canal de E/ S
Controlador
Dispositivos de E/ S
Controlador
Dispositivos de E/ S
Canal de E/S
27. Sistemas Operacionais - Aula 05: Concorrência
Numa operação de leitura do dispositivo:
Dado é transferido para buffer sem onerar o processador, dispositivo
fica liberado após conclusão
Numa operação de gravação para o dispositivo:
Dado é escrito rapidamente no buffer, liberando o processador para
outras atividades enquanto este é gravado no dispositivo.
Buffering
29. Sistemas Operacionais - Aula 05: Concorrência
Introduzido no fim dos anos 1950
Técnica usa uma área do disco (arquivo) para buffering de impressão
Tudo que é submetido para impressão vai para o arquivo de spool, liberando o
programa de origem
SO é quem gerencia os jobs de impressão
Programa ImpressoraArquivo
de Spool
Sistema OperacionalSistema Operacional
Spooling
30. Sistemas Operacionais - Aula 05: Concorrência
Memória Principal
código reentrante
área de dados do usuário A
usuário A usuário C
usuário B usuário D
área de dados do usuário B
área de dados do usuário C
área de dados do usuário D
Reentrância
31. Sistemas Operacionais - Aula 05: Concorrência
Cada programa possui uma área reservada para código e outra
para dados que devem ser preservadas durante sua execução
Idem para o SO em si
Arquivos também devem ter sua integridade garantida quando
acessados por múltiplos programas e/ ou múltiplos usuários
Recursos não devem ser monopolizados
Proteção do Sistema
32. Sistemas Operacionais - Aula 05: Concorrência
Material: https://sites.google.com/site/leinylsonnassau
Aula adaptada do material de:
Sistemas Operacionais, Anhaguera - Prof. Charles Fortes
Arquitetura de Sistemas Operacionais, Machado e Maia
32
33. Sistemas Operacionais - Aula 05: Concorrência
Nesta aula aprendemos...
Concorrência em Sistemas Operacionais
33
34. Sistemas Operacionais - Aula 05: Concorrência
𝟐ª Missão - x 1.500
Missão: criar mapa mental (Coogle, MindMeister),
implementar o algoritmo da equipe, analisar se
é soluciona o problema de deadlock da
impressora e apresentar.
Data da entrega: acompanhar no trello.
Obs. 1: Se pegar as respostas na internet ou eu
receber 2 iguais eu anulo o exercício
Obs. 2: a cada $ 1000 = 1 𝑥
34