Interrupes n Interrupo por hardware ou interrupo assncrona






























































- Slides: 62
Interrupções n Interrupção por hardware ou interrupção assíncrona l Ocorrência de evento externo l Não existe troca de parâmetros ou retorno com programa interrompido l Ex. : interrupção de relógio, término de E/S Quando se fala em interrupção, em geral, se refere apenas à interrupção assíncrona n Interrupções síncronas ou traps l Interrupção por software l Tipos 4 Execução de instrução específica – 4 Chamada de sistema Alguns autores não citam o termo interrupção Interrupção por exceção (hardware ou software) – Erros de execução – Proteção, underflow, overflow (hardware) A maioria dos autores não classifica como interrupção Indicados pelo software » Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 1 Prof. Natalia Castro Fernandes
Interrupções n Chaveamento de modos: l Interrupção por software 4 l Processo do usuário modo usuário →modo protegido Instrução de retorno 4 Modo usuário modo protegido →modo usuário Interrupção por software (Trap) Sistema operacional OBS: O trap é uma instrução. Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 2 Modo protegido ou modo kernel Prof. Natalia Castro Fernandes
Exceção n Exemplos em python: l try-catch. py a try-catchv 4. py Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 3 Prof. Natalia Castro Fernandes
Exercício n Gere uma função que escolhe um número inteiro entre 0 e 10 aleatoriamente. O usuário poderá entrar com números até acertar o valor escolhido. Nesse caso, o programa termina com uma mensagem de sucesso. Caso o usuário acerte de primeira, o programa deve gerar uma exceção com a mensagem “Você tem poderes psíquicos”, gerar um novo número e continuar o processo. Nenhuma outra exceção deve terminar o programa ou escrever uma mensagem na tela. (Use try, except e raise) Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 4 Prof. Natalia Castro Fernandes
Capítulo 3: Processos Adaptado dos slides do livro Operating System Concepts – 8 th Edition Prof. Natalia Castro Fernandes
Capítulo 3: Processos n Conceito de processos n Escalonamento de processos n Comunicação interprocessos n Exemplos de sistemas IPC n Comunicação em sistemas cliente-servidor Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 7 Prof. Natalia Castro Fernandes
Objetivos n Introduzir a noção de processo n Descrever as várias características de um processo, incluindo escalonamento, criação, término e comunicação n Descrever a comunicação em sistemas cliente-servidor Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 8 Prof. Natalia Castro Fernandes
Conceito de processo n Alguém saberia definir o que é um processo? Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 9 Prof. Natalia Castro Fernandes
Conceito de processo n Um sistema operacional executa uma variedade de programas: l Sistemas em lote 4 Jobs l job ~ processo Sistemas de tempo compartilhado 4 Tarefas ou programas de usuário n Processo Programa em execução 4 Execução sequencial l Inclui: 4 Contador de programa 4 Pilha l 4 Seção de dados Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 10 Prof. Natalia Castro Fernandes
O processo Atividade atual, incluindo o contador de programa e os registradores de processo Memória n Contém múltiplas partes ? Pilha com dados temporários • Parâmetros de funções, endereço de retorno, variáveis locais Heap • Memória alocada dinamicamente Seção de dados Contém variáveis globais Código, também chamado de seção de texto Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 11 Prof. Natalia Castro Fernandes
O processo n Programa x processo l Programa é passivo l Processo é ativo 4 O programa se torna um processo quando é carregado na memória Usuário Sistema Operacional Busca programa no disco Execute A Processo é criado! Disco A Carrega programa na memória Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 12 Memória Prof. Natalia Castro Fernandes
O processo n Execução de um programa l Iniciada por clicks de mouse na interface gráfica (GUI), pela linha de comando etc. n Um programa pode ser vários processos l Exemplo: Múltiplos usuários executando o mesmo programa. Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 13 Prof. Natalia Castro Fernandes
Estado do processo n Um processo tem estado l Modificado enquanto o processo executa Processo que está sendo criado Novo • Alocação de recursos Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 14 Prof. Natalia Castro Fernandes
Estado do processo n Um processo tem estado l Modificado enquanto o processo executa Novo Sistema operacional admite um novo processo Processo que está esperando para ser atribuído ao processador Pronto • Fila de processos querem usar a CPU • Apenas um processo por vez na CPU Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 15 Prof. Natalia Castro Fernandes
Estado do processo n Um processo tem estado l Modificado enquanto o processo executa Novo Interrupção de clock definindo o fim do período de uso de CPU do processo Pronto Em execução Instruções do processo sendo executadas na CPU Escalonador do sistema operacional define que o processo pode utilizar a CPU Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 16 Prof. Natalia Castro Fernandes
Estado do processo n Um processo tem estado l Modificado enquanto o processo executa Novo Em execução Pronto Conclusão de evento Em espera Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 17 Processo espera por um evento e libera a CPU Processo esperando a ocorrência de algum evento (fim de operação de I/O ou recebimento de sinal) Prof. Natalia Castro Fernandes
Estado do processo n Um processo tem estado l Modificado enquanto o processo executa Processo que terminou a sua execução Processo é finalizado e sai da memória Novo Encerrado • Liberação de recursos Em execução Pronto Em espera Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 18 Prof. Natalia Castro Fernandes
Recursos do processo n Estado novo l Alocação de recursos Quais recursos? memória + bloco de controle de processo ? ? ? Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 19 Prof. Natalia Castro Fernandes
Bloco de controle de processo (Process Control Block - PCB) n Informação associada a cada processo l Estado do processo Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 20 Novo, pronto, em execução, em espera ou terminado Prof. Natalia Castro Fernandes
Bloco de controle de processo (Process Control Block - PCB) n Informação associada a cada processo l Estado do processo l Contador de programa Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 21 Número que indica a próxima instrução a ser executada Prof. Natalia Castro Fernandes
Bloco de controle de processo (Process Control Block - PCB) n Informação associada a cada processo l Estado do processo l Contador de programa l Registradores de CPU Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 22 Informações usadas durante a execução do processo Prof. Natalia Castro Fernandes
Bloco de controle de processo (Process Control Block - PCB) n Informação associada a cada processo l Estado do processo l Contador de programa l Registradores de CPU l Informação de escalonamento de CPU Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 23 Dados para escolher o próximo processo a ser executado Prof. Natalia Castro Fernandes
Bloco de controle de processo (Process Control Block - PCB) n Informação associada a cada processo l Estado do processo l Contador de programa l Registradores de CPU l Informação de escalonamento de CPU l Informação de gerenciamento de memória Controle da memória alocada ao processo Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 24 Prof. Natalia Castro Fernandes
Bloco de controle de processo (Process Control Block - PCB) n Informação associada a cada processo l Estado do processo l Contador de programa l Registradores de CPU l Informação de escalonamento de CPU l Informação de gerenciamento de memória l Informação de uso (contabilização) l Informação de estado de I/O Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 25 Prof. Natalia Castro Fernandes
Process Control Block (PCB) Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 26 Prof. Natalia Castro Fernandes
Troca de contexto Processo P 0 Em execução Sistema Operacional Processo P 1 Interrupção ou chamada de sistema Salva estado em PCB 0 Em espera . . . Recarrega estado de PCB 1 Em espera Em execução Interrupção ou chamada de sistema Salva estado em PCB 1. . . Recarrega estado de PCB 0 Em espera Em execução Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 27 Prof. Natalia Castro Fernandes
Escalonamento de processos n Objetivos l Maximar o uso de CPU l Trocar rapidamente os processos na CPU para fazer compartilhamento de tempo Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 28 Prof. Natalia Castro Fernandes
Escalonamento de processos n Escalonador de processos l Escolher entre os processos qual será o próximo a ser executado pela CPU 4 Manutenção de filas de escalonamento – Fila de jobs – conjunto de todos os processos no sistema – Fila de prontos – conjunto de todos os processos que estão prontos para serem executados e esperando o acesso à CPU – Filas de dispositivos – conjunto de processos esperando pelo dispositivo de I/O 4 Processos são movidos entre as diversas filas Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 29 Prof. Natalia Castro Fernandes
Fila de prontos e filas de dispositivos Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 30 Prof. Natalia Castro Fernandes
Representação do escalonamento de processos Fila de prontos I/O Fila de I/O CPU Pedido de I/O Fim da fatia de tempo Filho executa Cria processo filho Interrupção ocorre Espera por interrupção Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 31 Prof. Natalia Castro Fernandes
Escalonadores n Escalonador de longo prazo (ou escalonador de jobs) l Seleciona quais processos devem ser trazidos a fila de prontos l Não é chamado com grande frequência 4 Pode ser lento Define o grau de multiprogramação n Escalonador de curto prazo (ou escalonador de CPU) l Seleciona qual o próximo processo a ser executado e aloca a CPU l Muitas vezes, é o único escalonador no sistema l Chamado com alta frequência (ms) 4 Precisa ser rápido Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 32 Prof. Natalia Castro Fernandes
Escalonadores n Processos podem ser descritos como: l Processos limitados por I/O 4 Gastam mais tempo com I/O do que com uso de CPU 4 Diversas l rajadas de uso de CPU curtas Processos limitados por CPU 4 Gastam mais tempo com uso de CPU 4 Poucas rajadas longas de uso de CPU Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 33 Prof. Natalia Castro Fernandes
Troca de Contexto n Processo de troca de processos na CPU l Salva o estado atual do processo em execução l Carrega estado de novo processo n O contexto de um processo é representado pelo seu PCB Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 34 Prof. Natalia Castro Fernandes
Troca de Contexto n Tempo de troca de contexto é sobrecarga l Tempo de troca de processos não é considerado tempo útil do sistema l Quanto mais complexo o sistema operacional e o PCB, maior o tempo de troca l Tempo de troca depende de suporte de hardware 4 Alguns hardwares provêem múltiplos conjuntos de registradores por CPU – Possibilidade de fazer várias carregamentos de contexto simultaneamente Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 35 Prof. Natalia Castro Fernandes
Criação de processos n Processo pai cria processos filhos, os quais, por sua vez, podem criar outros processos, criando uma árvore de processos l Cada processo é identificado por um identificador de processo (pid) n Compartilhamento de recursos l Possibilidades 4 Pai e filhos compartilham todos os recursos 4 Filhos 4 Pai compartilham parte dos recursos do pai e filhos não compartilham recursos n Execução l Possibilidades 4 Pai e filhos executam concorrentemente 4 Pai espera até o fim da execução dos filhos Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 36 Prof. Natalia Castro Fernandes
Criação de processos n Espaço de endereçamento l Possibilidades 4 Filhos são cópias do pai 4 Filhos tem um programa diferente carregado na sua área de código n Exemplos no UNIX l Chamada de sistema fork cria novos processos l A chamada de sistema exec é chamada após o fork para sobrescrever o espaço de memória com um novo programa Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 37 Prof. Natalia Castro Fernandes
Criação de processos Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 38 Prof. Natalia Castro Fernandes
Criando processos com o fork #include <sys/types. h> #include <studio. h> #include <unistd. h> int main() { pid_t pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); return 1; } else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); } else { /* parent process */ /* parent will wait for the child */ wait (NULL); printf ("Child Complete"); } return 0; Adaptado dos } slides do livro Operating System Concepts – 8 th Edition Exemplos em Python: teste_fork 3. py até teste_fork 7. py Atenção!!!!! O fork só funciona em Linux para Python 3. 39 Prof. Natalia Castro Fernandes
Árvore de processos no Solaris Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 40 Prof. Natalia Castro Fernandes
Finalização de processos n Processo executa a sua última linha e pede ao sistema operacional para deletá-lo (exit) l Recursos do processos são desalocados pelo sistema operacional n Processo pai pode terminar a execução de um processo filho (abort) l Exemplos de motivação 4 Processo 4 Tarefa filho excedeu os recursos alocados passada ao filho não é mais necessária 4 Processo pai está sendo finalizado, e alguns sistemas operacionais não permitem que o filho continue executando após o pai ter sido finalizado – Finalização em cascata Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 41 Prof. Natalia Castro Fernandes
Comunicação interprocessos n Processos em um sistema podem ser independentes ou cooperativos l Processos cooperativos podem afetar ou serem afetados por outros processos l Processos independentes não podem afetar ou serem afetados pela execução de outro processo n Razões para cooperação interprocessos l Compartilhamento de dados l Aumento da velocidade de computação l Modularidade l Conveniência Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 42 Prof. Natalia Castro Fernandes
Comunicação interprocessos n Cooperação entre processos depende da interprocess communication (IPC) n Dois modelos de IPC l Memória compartilhada l Troca de mensagens Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 43 Prof. Natalia Castro Fernandes
Modelos de comunicação Envio de mensagens Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 44 Memória compartilhada Prof. Natalia Castro Fernandes
Comunicação interprocessos – troca de mensagens n Mecanismo para processos se comunicarem e sincronizarem suas ações l Não usa memória compartilhada n Operações básicas: l send(mensagem) l receive(mensagem) n Se P e Q desejam se comunicar, eles precisam: Estabelecer um enlace de comunicação entre eles l Trocar mensagens via send e receive n Implementação do enlace de comunicação l físico (ex. , memória compartilhada, barramento de hardware) l lógico (ex. , propriedades lógicas) l Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 50 Prof. Natalia Castro Fernandes
Questões de implementação n Como os enlaces são estabelecidos? n Um mesmo enlace pode ser associado com mais de 2 processos? n Quantos enlaces podem existir entre cada par de processos comunicantes? n Qual a capacidade de um enlace? n O tamanho da mensagem deve ser fixo ou variável? n O enlace deve ser uni ou bidirecional? Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 51 Prof. Natalia Castro Fernandes
Comunicação direta n Processos precisam nomear uns aos outros explicitamente: l send (P, mensagem) – enviar a mensagem para o processo P l receive(Q, mensagem) – receber a mensagem do processo Q n Propriedades do enlace de comunicação l Enlaces são estabelecidos automaticamente l Um enlace é associado com exatamente um par de processos comunicantes l Entre cada par existe exatamente um enlace l O enlace pode ser unidirecional, mas usualmente é bidirecional Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 52 Prof. Natalia Castro Fernandes
Comunicação indireta n Mensagens são direcionadas e recebidas por meio de mailboxes (mais comumente chamadas de portas) l Cada porta tem um identificador único l Processos podem se comunicar apenas se eles compartilham uma mailbox n Propriedades de um enlace de comunicação l Enlace estabelecido apenas se processos compartilham uma mailbox comum l Um enlace pode ser associado a diversos processos l Cada par de processos pode compartilhar diversos enlaces de comunicação l Enlaces podem ser uni ou bidirecionais Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 53 Prof. Natalia Castro Fernandes
Sincronização n Envio de mensagens pode ser tanto blocante quanto não- blocante n Operação blocante é considerada síncrona l O send blocante bloqueia o emissor até que a mensagem seja recebida l O receive blocante bloqueia o receptor até que a mensagem esteja disponível n Operação não-blocante é considerada assíncrona l O emissor envia a mensagem e continua l O receptor recebe uma mensagem válida ou nulo Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 54 Prof. Natalia Castro Fernandes
Buffering n Fila de mensagens associadas a um enlace l Implementações 1. Capacidade 0 4 Emissor 2. espera pelo receptor Capacidade limitada 4 Capacidade 4 Emissor 3. finita de n mensagens precisa esperar apenas se o enlace está cheio Capacidade não limitada 4 Enlace – com capacidade infinita Emissor nunca espera Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 55 Prof. Natalia Castro Fernandes
Exemplos em Python n Compartilhamento de variáveis l shared_mem. py a shared_memv 3. py l OBS: 4 Lista – – Estrutura de dados de python Funciona como um vetor 4 Multiprocessing – Queue() – Cria fila compartilhada » – – API para processos cooperativos put(), get() Process(codigo do novo processo, argumentos) » start(), is_alive() n Compartilhamento de variáveis l shared_memv 4. py Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 60 Prof. Natalia Castro Fernandes
Exemplos em Python n Compartilhamento de variáveis l shared_memv 4. py 4 Multiprocessing – Value(tipo, valor) --- compartilhando um número – Array(tipo, lista) – Join() – Bloqueia o pai até o filho terminar » Shared_memv 4 b. py Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 61 Prof. Natalia Castro Fernandes
Comunicação em sistemas cliente-servidor n Sockets n Remote Procedure Calls n Pipes Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 62 Prof. Natalia Castro Fernandes
Sockets n Um socket é definido como um ponto de extremidade para a comunicação n Concatenação de IP e porta l Exemplo: 4 O socket 161. 25. 19. 8: 1625 se refere a porta 1625 no host 161. 25. 19. 8 n A comunicação consiste de um par de sockets Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 63 Prof. Natalia Castro Fernandes
Comunicação por socket Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 64 Prof. Natalia Castro Fernandes
Remote Procedure Calls n Remote procedure call (RPC) abstraem chamadas de procedimento entre processos em sistemas em rede n Stubs – Proxy no lado do cliente/servidor l O stub do lado cliente localiza o servidor e encaminha os parâmetros l O stub no lado servidor recebe essa mensagem, desempacota os parâmetros recebidos e desempenha o procedimento no servidor Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 65 Prof. Natalia Castro Fernandes
Execução do RPC Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 66 Prof. Natalia Castro Fernandes
Pipes n Atua como um condutor permitindo que dois processos se comuniquem n Questões l A comunicação é uni ou bidirecional? l No caso da comunicação bidirecional, ela é half ou full-duplex? l É necessário existir uma relação (pai-filho) entre os processos comunicantes? l O pipe pode funcionar através da rede? Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 67 Prof. Natalia Castro Fernandes
Pipes comuns n Pipes comuns permitem a comunicação em um estilo produtor- consumidor padrão n Funcionamento l O produtor escreve em uma ponta do pipe l O consumidor lê a saída na outra ponta 4 Portanto, l pipes comuns são unidirecionais Requerem relação de pai-filho entre processos comunicantes Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 68 Prof. Natalia Castro Fernandes
Pipes nomeados n Pipes nomeados são mais potentes que pipes comuns l Comunicação bidirecional l Não há necessidade de relação pai-filho l Pode ser usado por diversos processos l Disponível tanto em UNIX quanto em Windows Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 70 Prof. Natalia Castro Fernandes
Exemplos em Python n Pipe l Ex-pipe. py n Socket l Socket-client. py e socket-server. py Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 71 Prof. Natalia Castro Fernandes
Exercícios n Livro: l Capítulo 3 4 6, 7, 9, 10, 11, 12, 13 Adaptado dos slides do livro Operating System Concepts – 8 th Edition 3. 72 Prof. Natalia Castro Fernandes
Fim do capítulo 3 Adaptado dos slides do livro Operating System Concepts – 8 th Edition Prof. Natalia Castro Fernandes






























































