# Sistemas Operacionais #Aula 05 – Concorrência
Prof. Leinylson Fontinele Pereira
Sistemas Operacionais - Aula 05: Concorrência
Na aula anterior...
Prática com Simulador SOsim
11:13
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
Sistemas Operacionais - Aula 05: Concorrência
O que vamos aprender?
Concorrência em Sistemas Operacionais
11:13
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ásicasFacilidade de acesso aos recursos do sistema + Compartilhar os recursos de forma organizada e protegida
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.
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
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
Sistemas Operacionais - Aula 05: Concorrência
Concorrência?
9
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
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 Sistemas Multiprogramáveis
Sistemas Operacionais - Aula 05: Concorrência
2
(a) Sistema Monoprogramáveltempo tempo
E/ S E/ S
UCP UCPlivre 11
1
(b) Sistema Multiprogramável
Monoprogramável x Multiprogramável
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
Sistemas Operacionais - Aula 05: Concorrência
Mudança de um processo para outro faz com que todo oconteúdo dos registradores seja trocado (estado do sistema)
Quando um processo retorna à sua execução, todo ocontexto imediatamente anterior à sua saída deve serrecuperado
Troca de contexto
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
Sistemas Operacionais - Aula 05: Concorrência
Interrupção e Exceção
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
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
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
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
Sistemas Operacionais - Aula 05: Concorrência
Rotina de tratamento de exceção em Java
21
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
Sistemas Operacionais - Aula 05: Concorrência
MemóriaPrincipal
UCP
Controlador
Dispositivos de E/ S
Operações de Entrada/Saída
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
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
Sistemas Operacionais - Aula 05: Concorrência
MemóriaPrincipal
UCP
Canal de E/ S
Controlador
Dispositivos de E/ S
Controlador
Dispositivos de E/ S
Canal de E/S
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
Sistemas Operacionais - Aula 05: Concorrência
MemóriaPrincipal
UCPBuffer
gravação gravação
leitura leitura
Controlador
Buffering
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 ImpressoraArquivode Spool
Sistema OperacionalSistema Operacional
Spooling
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
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
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
Sistemas Operacionais - Aula 05: Concorrência
Nesta aula aprendemos...Concorrência em Sistemas Operacionais
33
Sistemas Operacionais - Aula 05: Concorrência
𝟐ªMissão - x 1.500Missã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
Sistemas Operacionais - Aula 05: Concorrência
𝟐ªMissão - x 1.500
35
Avestruz
Semáforo
Barbeiro
Banqueiro
Jantar dos Filósofos
Sistemas Operacionais - Aula 05: Concorrência
Na próxima aula veremos... Estrutura do S.O.
36
Sistemas Operacionais - Aula 05: Concorrência
Alguma Dúvida?
11:13
Até a próxima aula...