Conceito de processo como uma unidade de trabalho em um sistema moderno de tempo compartilhado. Estados de um processo.

Tamanho: px
Começar a partir da página:

Download "Conceito de processo como uma unidade de trabalho em um sistema moderno de tempo compartilhado. Estados de um processo."

Transcrição

1 gerenciamento de processos Objetivo Compreender a maneira como o sistema operacional controla o gerenciamento dos programas em execução por meio do gerenciamento de processos no qual cada processo representa a abstração do programa em execução. Conteúdos UNIDADE 2 Conceito de processo como uma unidade de trabalho em um sistema moderno de tempo compartilhado. Estados de um processo. Escalonadores e escalonamento de processos. Cooperação, comunicação e sincronização entre os processos. Threads e Deadlocks.

2 No início de cada unidade você encontrará as informações práticas para o seu desenvolvimento, os objetivos que pretendemos atingir e o conteúdo que será estudado. Portanto, lembre-se de que sua participação é fundamental para o seu aprendizado. INFORMAÇÃO: Em um instante determinado um programa está sendo executado e, no instante seguinte, este é interrompido para que outro programa ocupe o processador, mesmo que o primeiro ainda não tenha terminado totalmente sua execução. 1 Introdução Na unidade anterior você conheceu o histórico e a evolução dos sistemas operacionais, aprendeu alguns conceitos importantes para o seu estudo, como por exemplo a multiprogramação. Você pôde compreender que um sistema multiprogramável permite a execução de diversas tarefas ao mesmo tempo, simulando um ambiente de monoprogramação para cada usuário, sendo que cada um tem a sensação de estar utilizando um processador exclusivamente para si. Mas vimos que o que realmente acontece é a divisão do tempo do processador para todos os programas (time-sharing). Nesta unidade você aprenderá mais sobre o chaveamento de programas, ou seja, a troca de programas no processador e, principalmente, sobre a entidade que torna essa troca possível, chamada de processo. Além de técnicas e algoritmos utilizados para realizar o escalonamento e a sincronização entre processos, respectivamente. 2 Definição de processos Um processo é tudo aquilo que o processador executa efetivamente, ou seja, é a entidade pela qual a utilização da memória de um programa, tempo de processador e recursos de E/S podem ser gerenciados e monitorados pelo sistema operacional. O processo pode ser visto como a abstração de um programa em execução. A divisão do processador em vários processos significa que em um instante o sistema operacional decide interromper um processo em execução, e dar o processador a outro processo, pois o primeiro já utilizou sua porção do processador. Se um processo é interrompido, em um dado momento, para que outro ocupe o processador, quando esse voltar a ser executado em que ponto deverá continuar? Quando um processo é suspenso, todas as informações sobre ele são armazenadas em uma estrutura chamada tabela de processo, mantida pelo SO. O chaveamento rápido dos processos na CPU dá aos usuários a sensação de paralelismo na execução dos programas. O que não é verdade, pois o que acontece realmente é um pseudo-paralelismo. O verdadeiro paralelismo acontece apenas em sistemas com múltiplos processadores. As informações de um processo são: um programa executável, os dados e a pilha do programa, o contador de programa, o ponteiro de pilha, registradores e as informações necessárias para executar o programa. Esta estrutura pode ser implementada como uma lista encadeada de processos. 3 Modelo de procresso O processo possui uma natureza seqüencial, ou seja, se um processo for executado várias vezes com os mesmos dados, a mesma seqüência de instruções será executada e fornecerá o mesmo resultado em todas as execuções. Todo software executável em um computador moderno, até mesmo o sistema operacional, é organizado em processos. Sistemas de multiprogramação permitem ao usuário a execução paralela de vários processos. Porém, o que acontece é um chaveamento rápido dos processos na CPU que dá aos usuários a sensação de paralelismo na execução dos programas. Esse pseudoparalelismo, definido como multiprogramação é caracterizado pelo chaveamento de processos pela CPU. O verdadeiro paralelismo acontece apenas em sistemas com múltiplos processadores. 16 CRC Sistemas Operacionais Claretiano Batatais

3 A cada instante, um processador diferente ocupa o processador e pode rodar independentemente dos outros existentes, pois cada um possui sua própria memória virtual e fluxo de controle (contador de programa). Desta forma, a velocidade de execução dos processos depende da quantidade, e também dos recursos oferecidos pelo computador. Por exemplo: Se você tiver três aplicativos rodando em sua máquina, terá uma velocidade de cada processo reduzida conforme carrega outros aplicativos ao mesmo tempo, porque outros processos estão na competição pelo processador. Dependendo da velocidade do processador e da quantidade de processos, o trabalho poderá ser prejudicado, ou até mesmo inviabilizado. A troca de processos consiste, basicamente, em salvar o conteúdo atual dos registradores da CPU, referentes a um processo que esteja deixando o processador, e carregá-los com o conteúdo do processo que esteja ganhando a CPU. Observe o esquema da Figura 1 a seguir que representa a mudança de contexto entre dois processos. Processo X S.O. Processo Y fim 1) Salva conteúdo dos Registradores de A 2) Carrega Registradores de B início execução execução Figura 1 Troca de processos na CPU. Nos computadores modernos o gerenciamento de processos é feito pelo sistema operacional. Para o gerenciamento de processos o Sistema Operacional atribui, basicamente, três conjuntos de informações: identificação do processo; quotas de recursos; privilégios. A identificação de um processo é feita pelos seguintes campos: PID (process identification) identificação única de cada processo. Owner campo que armazena a identificação de quem o criou: pode ser um PID, no caso de ser criado por outro processo, ou um UID (user identification), no caso de ter sido criado por um usuário. Assim como os processos possuem uma identificação única no sistema (PID process identification), os usuários também são identificados unicamente por um UID (user identification). O ID (identificação) do usuário é muito útil quando desejamos controlar o acesso aos arquivos, aos processos e memória por questões de segurança. Sistemas Operacionais CRC Batatais Claretiano 17

4 As quotas de recursos identificam a quantidade de recursos que um processo pode utilizar. Alguns exemplos destes recursos são: tamanho máximo de memória, tamanho do para E/S e número máximo de arquivos abertos simultaneamente. Se a quota alocada não for suficiente para a execução do processo, este será prejudicado. Se a cada instante um processo diferente ganha a CPU, pode-se constatar que existem alguns privilégios. Estes privilégios definem qual a permissão que cada processo tem para utilizar o sistema, alguns exemplos são: ele pode acessar, criar e eliminar outros processos; ele pode acessar arquivos de outros usuários. 4 Estados Dos processos Você já sabe que o processador não pode ser ocupado por todos os processos existentes no sistema em um mesmo instante, então todos competem para ganhar o processador. O sistema operacional é responsável por controlar essa competição entre os processos, ou seja, ele diz em que momento e quais processos devem entrar ou deixar a CPU (estado de execução). Esta transição de processos entre os três estados possíveis, permite que os processos mudem de estado várias vezes durante sua existência. Como você viu na primeira unidade existem, basicamente, três estados principais que um processo pode estar:, ou. Conforme as situações descritas a seguir. quando todos os recursos necessários para sua execução já estão disponíveis, mas ainda não pode entrar em execução porque não chegou sua vez e a CPU está ocupada por outro processo. Neste estado pode haver uma fila de processos esperando a liberação da CPU. quando o próprio processo está ocupando a CPU e sendo executado. quando o processo estava em execução, mas precisou de um recurso que não estava disponível no momento, então ele é bloqueado até que o recurso desejado esteja disponível. A Figura 2 apresenta as transições possíveis entre os estados de um processo. Observe que um processo bloqueado não pode voltar diretamente para a CPU, deve antes passar pelo estado de pronto, se não houver nenhum processo prioritário na frente e se seu tempo de CPU ainda não se esgotou, então aí sim ele poderá voltar para o estado de execução. Um processo que sai da CPU porque seu time-slace (fatia de tempo) já terminou, volta para o estado de pronto e aguarda, juntamente com outros processos, até ser eleito novamente pelo sistema operacional para entrar em execução. 18 CRC Sistemas Operacionais Claretiano Batatais

5 Processo Fila de processos esperando escalonamento n-2 n-1 n Escalonador Processo Processo Processo Processo Figura 2 Estados possíveis de um processo. Um processo pode denominar outros subprocessos que executam de maneira hierárquica. Veja no tópico a seguir. Escalonador é um componente que faz parte do Sistema Operacional. Ele tem a função de selecionar qual dos processos concorrentes ganhará a CPU. Este escalonador se baseia em algoritmos de escalonamento para definir os critérios para seleção de um processo. 5 Subprocessos e thread Uma aplicação pode ser dividida em partes que trabalham concorrentemente. Essa divisão da aplicação consiste em particionar o processo gerado para controlar a aplicação (processo pai) em outros subprocessos subordinados a este que são chamados de processos filhos, ou apenas subprocessos. Os subprocessos, por sua vez, podem criar outros processos filhos em uma estrutura hierárquica de subprocessos. Esta hierarquia faz com que todos os processos filhos de um processo pai sejam destruídos caso o processo pai deixe de existir. Pa Pb Pc Pd Pe Pf Pg Figura 3 Representação hierárquica de processos. Conforme aumenta a utilização de subprocessos há um desperdício de tempo gasto para criação e eliminação desses subprocessos. Para minimizar este problema, introduziu-se o conceito de threads de controle (ou linhas de controle). Sistemas Operacionais CRC Batatais Claretiano 19

6 As threads são consideradas processos mais leves e representam uma entidade básica de utilização da CPU. Enquanto os processos são usados para agrupar recursos, as threads são as entidades escalonadas para a execução na CPU. INFORMAÇÃO: A diferença mais marcante entre subprocessos e threads é que enquanto os subprocessos utilizam espaços de memória independentes e protegidos, as threads compartilham o mesmo espaço de endereçamento do processo. Para você compreender melhor a utilidade de threads, considere um navegador web. Você sabe que muitas páginas na Internet são carregadas de imagens e outros recursos pesados. Se para cada imagem o navegador tiver que estabelecer uma conexão separada com o servidor para solicitar uma imagem, o procedimento seria muito difícil. Mas se o navegador implementar múltiplas threads, é possível fazer a requisição de muitas imagens ao mesmo tempo melhorando o desempenho e a capacidade de resposta. A Intel lançou no mercado um modelo de processador com a tecnologia Hyperthreading, que permite que se processe, dentro de um mesmo ciclo de clock, instruções referentes a várias threads e não apenas várias instruções dentro de uma mesma thread. Os sistemas multiprogramáveis possibilitam o compartilhamento da CPU entre diversos processos concorrentes. Para isso, cada sistema possui critérios para determinar qual será a forma de seleção de um dos processos que ocupará a CPU. Este procedimento de seleção é realizado pelo sistema operacional e conhecido como escalonamento de processos. 6 escalonamento dos processos Você compreendeu que o estado de pronto possui uma fila de processos aguardando a liberação da CPU para entrarem em execução e cabe ao sistema operacional decidir qual processo terá a posse do processador? Na tentativa de manter o processador ocupado 100% de seu tempo, o sistema operacional possui um componente de seleção que escolhe um dos processos que ocupará a CPU, este componente é chamado de escalonador e utiliza um algoritmo de escalonamento para definir os critérios de seleção de um processo. Os algoritmos de escalonamento podem ser divididos em três categorias: Não-preemptivos utilizados em processamento batch. Quando um processo (job) ganha a CPU, nenhum outro poderá tirar-lhe este recurso. Exemplos de implementação: FIFO (First In First Out) o primeiro da fila de pronto será o primeiro a executar e SJF (Shortest Job First) escolhe sempre o processo que precisa de menos tempo de CPU. Cooperativos um processo libera, voluntariamente, a CPU para outro. O grande problema é a monopolização do processador. Preemptivos o sistema interrompe um processo em execução para que outro ocupe o processador. A seguir você conhecerá os detalhes deste tipo de algoritmo. Exemplos de algoritmos de escalonamento PREEMPTIVOS: Round Robin Este algoritmo aloca um intervalo de tempo, conhecido como quantum, para cada processo. 20 CRC Sistemas Operacionais Claretiano Batatais

7 Ao final de seu quantum, se o processo ainda estiver em execução voltará para o estado de pronto e o próximo processo da fila será alocado para ocupar a CPU. Se o processo terminar antes de finalizar o seu quantum a CPU será liberada imediatamente para o próximo processo. Se o processo for bloqueado para esperar algum recurso externo antes de terminar o quantum, a CPU é liberada para outro processo, e esse voltará para a fila de pronto assim que o recurso for liberado. Neste momento, se a CPU estiver livre, ele a ocupará imediatamente, senão deverá entrar na fila de espera. Você deve estar se perguntando: Qual é o tamanho de um quantum? Se o quantum for muito grande poderá degradar o tempo de resposta. Se for muito pequeno, diminui a eficiência da CPU que terá uma sobrecarga de processamento para realizar o chaveamento de recursos entre processos. O ideal seria um balanceamento de acordo com a carga dos processos, mas tal não é fácil de ser gerenciado. Essa é maior dificuldade deste algoritmo Prioridade Este algoritmo considera níveis de prioridade entre os processos, permitindo um tratamento especial em casos de emergência, pois processos de maior prioridade podem ser executados. O problema seria se processos de alta prioridade executassem indefinidamente, mas neste caso o escalonador pode diminuir a prioridade do processo corrente e trocá-lo pelo próximo com maior prioridade (chaveamento). Múltiplas filas Este algoritmo adota várias classes de prioridades. Cada classe possui um quantum diferente. Desta forma, processos menores entram na fila de menor quantum, processos maiores entram na fila de maior quantum, e assim por diante. Shortes process next (Tarefas Pequenas Primeiro) Lembra da idéia do algoritmo não-preemptivo SJF (Shortest Job First)? A idéia é a mesma, ou seja, na tentativa de minimizar o tempo médio de espera pelo processador tarefas menores são executadas primeiro. Apesar das soluções apresentadas para escalonamento de processos, há ocorrências em que os recursos do sistema são compartilhados. Compartilhar, principalmente os espaços de memória, pode ocasionar diversas situações indesejadas de discriminação de processos caso não seja bem controlada. Nestes casos dizemos que há concorrência entre processos. No próximo tópico será apresentada uma descrição dos problemas típicos em computação gerados pela concorrência entre processos. Se encontrar dificuldades não desanime! Entre em contato com seus colegas de curso e seu professor que estará sempre pronto para esclarescer suas dúvidas. 7 Concorrência entre processos Os processos concorrem pelos recursos do sistema que normalmente podem atender a uma única requisição por vez. Sistemas Operacionais CRC Batatais Claretiano 21

8 (1) Fila de impressão A regra é simples, o primeiro arquivo que chega será o primeiro a ser impresso, e assim sucessivamente. Quando processos compartilham a mesma área de memória, ou o mesmo arquivo ou qualquer outro recurso compartilhado, existem situações de concorrência entre os processos por aquele recurso, esta situação de competição é conhecida por Race Conditions. Suponha a fila de impressão 1 (spool directory) com uma variável que indica onde a fila começa, ou seja, o próximo documento a ser impresso; e outra variável que indica o final da fila, ou seja, o último documento que chegou, portanto o último que será impresso. Todos os processos que desejam imprimir deverão consultar a próxima posição livre para colocar seu documento (fim+1). Imagine a seguinte situação (considere que os documentos das posições de 1 a 4 já foram impressos). começo fim SAÍDA so.pdf ed.doc index.htm mail.txt Figura 4 Fila de impressão (spool directory). Imagine um processo X em execução que consulta a próxima posição vazia (fim+1) para inserir seu documento. No exemplo da Figura 4 o processo obterá o valor 9. Só que antes de armazenar, de fato, o seu arquivo na posição 9 da fila, o Sistema Operacional, subitamente, envia uma interrupção para que o processo X deixe a CPU, pois seu tempo já se esgotou. O SO salva as informações dos registradores, inclusive a posição 9 da fila de impressão, e libera a CPU para o processo Y. Este entra em execução e também deseja enviar um documento para ser impresso e, da mesma forma, obtém a próxima posição (fim+1) para inserir seu documento, esta posição continua sendo 9, pois o processo X não teve tempo de ocupá-la. O processo Y insere seu arquivo na fila e atualiza a variável fim com o valor 9, isso indica que a próxima posição livre (fim+1) será a 10 e não mais a 9. começo fim SAÍDA so.pdf ed.doc index.htm mail.txt foto Figura 5 Inserção do arquivo foto.jpg na fila de impressão. Neste instante, o processo Y volta para o estado de pronto e libera a CPU para o processo X que continuará a executar do local que parou utilizando as informações armazenadas dos registradores, ou seja, colocará seu documento na posição 9 da fila de impressão. Este novo documento, contas.xls, irá sobregravar o documento e o arquivo foto.jpg nunca será impresso. 22 CRC Sistemas Operacionais Claretiano Batatais

9 começo fim SAÍDA so.pdf ed.doc index.htm mail.txt contas Figura 6 Inserção do arquivo contas.xls na fila de impressão. A solução para resolver o problema anterior é chamada de exclusão mútua e garante que se um processo estiver utilizando um recurso compartilhado, os outros processos serão impedidos de fazer o mesmo. O nome dado à parte de um programa executada concorrentemente é região crítica e sua implementação deve obedecer a quatro condições: a) Dois processos não podem estar dentro de suas regiões críticas de um mesmo recurso compartilhado ao mesmo tempo. Isso garante a exclusão mútua dos processos. b) A exclusão mútua dos processos deve ser independente da velocidade dos processos ou o número de CPU s. c) Um processo executado fora da região crítica não pode bloquear outros processos. d) Nenhum processo esperará para sempre para entrar em sua região crítica. Existem vários algoritmos criados para garantir que todas estas condições sejam seguidas. Tais algoritmos possuem características particulares, porém todos têm o mesmo propósito: implementar eficientemente a exclusão mútua. Exclusão mútua com espera ocupada É a garantia que um recurso compartilhado será utilizado por apenas um processo de cada vez. Se um processo está acessando uma região crítica, ou seja, esta em execução, todos os outros processos que precisarem acessar esta região deverão entrar em estado de espera ocupada, mas esta espera se refere apenas à região crítica. Isso significa que eles poderão continuar disputando a CPU e utilizando outros recursos, mas ainda não poderão executar a região crítica. Desabilitar Interrupções Para que o sistema operacional controle a transição de processos em execução, utiliza envio de interrupções de hardware para os processos avisando sobre a mudança de estado. Uma possível solução de exclusão mútua com espera ocupada permite desabilitar todas as interrupções, inclusive as do sistema operacional, quando uma região crítica está sendo acessada, garantindo que o processo em execução termine de executar a região crítica sem a intervenção de outros processos. Todavia, o custo desta solução é caro, pois processos de usuário têm o poder de desabilitar as interrupções do sistema e se, por algum motivo (de implementação, de hardware), não puder reabilitar as interrupções, o sistema operacional perderá integralmente o controle do hardware. A exclusão mútua em regiões críticas garante que mais de um processo não acessará o mesmo recurso compartilhado ao mesmo tempo. INFORMAÇÃO: O sistema operacional, bem como outros arquivos de sistema e de usuários, pode gerar interrupções. Um caso comum é o Sistema Operacional gerar interrupções obrigando um processo a deixar a CPU. As soluções que implementam exclusão mútua com espera ocupada serão descritas no decorrer do texto. Você não precisa decorar tais soluções, basta entender como elas funcionam e quais são as técnicas possíveis, utilizadas pelo sistema operacional, para resolver problemas de acesso simultâneo em regiões compartilhadas. Variável LOCK Esta solução utiliza um algoritmo em que cada recurso compartilhado possui uma variável global chamada lock, com valor inicial igual a 0. O algoritmo controla o acesso à região crítica por meio da variável lock. Ao consultar, se o seu valor for 0, o processo executará a região crítica; e se for 1, o processo aguardará até que a variável lock se torne 0. Sistemas Operacionais CRC Batatais Claretiano 23

10 Um processo que precisa entrar em sua região crítica testa o valor de lock. Se o valor for 0 o processo altera para 1 e executa a região crítica até o final. Se o valor for 1, espera até que seja 0. Desta forma sempre existem duas opções: lock=0 execução da região crítica liberada; lock=1 espera da liberação para executar a região crítica. Você achou este algoritmo uma boa solução? Realmente, os problemas parecem ser solucionados, mas esta solução se torna inviável se dois ou mais processos tentam acessar a variável lock e obtém o valor 0 ao mesmo tempo. Refletiria assim, a situação inicial (exemplo da fila de impressão) do problema de concorrência. Alternância Estrita ou Variável TURN Alternância estrita é uma solução implementada em software que utiliza uma variável turn para indicar o processo com direito de executar a região crítica naquele momento. Se turn for igual a i, o processo de número i executará a região crítica até terminar. Ao sair, o processo altera o valor de turn para i+1 para que o próximo processo, ao executar, tenha acesso à região crítica. Na verdade é uma solução simples e que garante a exclusão mútua. O problema desta solução surge quando processos possuem freqüências diferentes de acessos à região crítica, ou seja, um processo que utiliza muito uma região crítica poderá ser prejudicado se tiver que ficar ocioso esperando os acessos de vários outros que precisam menos deste recurso compartilhado. Solução de Peterson Esta solução combina as duas últimas soluções que nós vimos anteriormente, variáveis lock e turn solucionando os problemas individuais de cada uma delas. Instrução TSL Test and Set Lock é uma instrução utilizada em muitos processadores que permite, neste caso, a implementação de variáveis lock. A característica das instruções TSL é que são executadas do início ao final pelo processador, não permitindo a divisão de sua execução, mesmo em caso de interrupções de hardware. Funcionamento da instrução TSL. Para compreender melhor o funcionamento da instrução TSL, leia o algoritmo ao lado que implementa a exclusão mútua por esta técnica. Atente para os comentários em itálico. entra_regiao: tsl register, flag copia flag para o registrador e seta flag para 1 cmp register,#0 a flag é zero? jnz entra_regiao se diferente de zero, já tem lock, então fica no loop ret retorna para quem chamou; conseguiu entrar na região crítica sai_regiao mov flag, #0 libera a execução da região crítica e armazena um 0 em flag ret retorna para quem chamou 24 CRC Sistemas Operacionais Claretiano Batatais

11 As soluções apresentadas para a exclusão mútua com espera ocupada não impedem que os processos que esperam para executar a região crítica, continuem competindo pela CPU e executando outras instruções. A exclusão mútua pode, porém, ser implementada usando outra técnica; os processos que competem pela região crítica serão bloqueados e somente um poderá continuar executando a região crítica e também a CPU. Esta solução é chamada de Exclusão Mútua com Espera Bloqueada. Exclusão mútua com espera bloqueada Para garantir a exclusão mútua de forma mais eficiente, em uma tentativa de eliminar os problemas causados pelas técnicas apresentadas foram propostas outras, caracterizadas pelo bloqueio de processos enquanto um deles está executando uma região crítica. Dorme e Acorda (Sleep and Wakeup) crítica: Este método utiliza duas variáveis para controlar a entrada-saída na região Sleep é uma chamada de sistema que altera o estado de um processo em execução para bloqueado (dormente). Wakeup é uma chamada de sistema, feita por um processo, que acorda o processo tornando-o ativo novamente, saindo do estado de bloqueado. Se você entendeu como funciona a Instrução TSL, não terá problema em compreender este método. Note que o princípio utilizado é o mesmo, exceto que neste caso, o controle da ocupação-liberação da região crítica será feito por chamadas sleep e wakeup, ou seja, quando a variável está setada com 1, o processo executa sleep. O processo que altera o valor de LOCK para 0 ao sair da região crítica é o responsável por ativar um processo bloqueado (via wakeup). O programador é o responsável pela execução destas chamadas, sleep e wakeup. Pode não ser uma idéia boa, uma vez que erros no programa podem causar uma situação na qual todos os processos ficam bloqueados ao mesmo tempo, ocasionando o que chamamos de deadlock 2. Há um exemplo clássico, utilizado na maioria dos livros que ensinam sistemas operacionais, para demonstrar a utilização do método dorme e acorda. Esse exemplo é conhecido por Produtor-Consumidor. (2) Deadlock é uma situação em que todos os processos no sistema se encontram em estado de bloqueado () e não há como acordá-los. O problema do Produtor-Consumidor considera um de tamanho fixo que é compartilhado por dois processos, um processo que insere elementos no, conhecido como produtor e outro que retira os elementos do, conhecido como consumidor. A regra principal é que o produtor não pode inserir elementos se o estiver cheio e o consumidor não pode remover elementos se o estiver vazio. A solução parece ser simples se considerarmos algumas regras durante a implementação, enumeradas a seguir. Para o processo produtor: Antes de inserir no o produtor verifica se ainda há espaço para inserção. Se houver, ele insere, se não houver, ele vai dormir e espera o consumidor acordá-lo quando um novo slot estiver livre. Ao inserir o primeiro elemento do, o produtor sabe que o consumidor estava, pois não havia nada para ele consumir, e então envia uma chamada para que ele acorde (wakeup). Sistemas Operacionais CRC Batatais Claretiano 25

12 Para o processo consumidor: Lembre-se de que o escalonador, a qualquer momento, pode selecionar outro processo para ocupar a CPU, ou seja, entrar em estado de execução. Porém, o escalonador não interfere no estado dormir, pois quem pode dar ordens para um processo dormir-acordar são apenas os processos produtor e consumidor. Leia o programa linha a linha fazendo a execução mental e veja se encontra algum problema nesta solução. Antes de consumir um elemento do, o consumidor testa para confirmar que há elementos. Caso não haja, ele vai dormir e espera que o produtor o acorde quando o primeiro elemento for inserido. Ao consumir o último elemento do, o consumidor envia uma chamada, acorda o produtor e avisa que há posições livres para serem preenchidas. Acompanhe a seguir como ficaria a implementação desta solução do problema produtor-consumidor em pascal. PROGRAM ProdutorConsumidor; CONST N = 10; {número de slots no } VAR : ARRAY [1..N] OF INTEGER; elem : INTEGER; count : 0..N; {contador de elementos no } PROCEDURE produtor; REPEAT produz_elem (elem); IF (count = N) THEN sleep(); {repita para sempre} {produz um novo elemento} {enquanto o estiver cheio, produtor vai dormir} {se couber elementos no, insere elemento na posição count} insere_ (elem, count); count := count +1; {incrementa contador} IF (contador == 1) THEN wakeup(consumidor); {se o estava vazio, acorda o consumidor} UNTIL false; END; PROCEDURE consumidor; REPEAT {repita para sempre} IF (count = 0) THEN {se vazio, consumidor vai sleep(); dormir} {se o não estiver vazio, consumidor consome elemento} remove_elem (elem); count := count - 1; {decrementa contador, libera uma posição do } IF (contador == N-1) THEN wakeup(produtor); {se o estava cheio, acorda o produtor} WRITELN(elem); UNTIL false; END; {imprime elemento} count := 0; END. 26 CRC Sistemas Operacionais Claretiano Batatais

13 Se você analisou algumas possibilidades, pode ter encontrado um problema gravíssimo na utilização deste método (Sleep-Wakeup). Pode acontecer dos dois processos, produtor e consumidor, dormirem para sempre sem que o sistema operacional volte a ter controle sobre eles! A Tabela 1 detalha uma seqüência de execução do programa que mostra como isso pode acontecer. Tabela 1 Seqüência de execução do programa ProdutorConsumidor.pas. SITUAÇÃO REAL SITUAÇÃO CONHECIDA PELO PRODUTOR SITUAÇÃO CONHECIDA PELO CONSUMIDOR count 0 O escalonador decide que o processo consumidor entrará em execução. Consumidor testa variável count e obtém o valor 0 (não há o que consumir, deve ir dormir. Antes de o consumidor dormir, seu time slice termina e ele entra em estado de pronto e guarda o count = 0. c c count 0 count 0 O escalonador decide que o processo produtor entrará em execução. Produtor consulta o count e obtém valor 0 (significa que o consumidor está ). Produtor insere um elemento no, incrementa o contador e envia um sinal de acorda para o consumidor, que nunca receberá o sinal, pois estava bloqueado pelo sistema esperando um novo time slice (situação real) e não (situação conhecida pelo Produtor). p c c p a c o r d e X count 1 X count 1 Sistemas Operacionais CRC Batatais Claretiano 27

14 SITUAÇÃO REAL SITUAÇÃO CONHECIDA PELO PRODUTOR SITUAÇÃO CONHECIDA PELO CONSUMIDOR O escalonador decide que o processo consumidor entrará em estado de execução, pois seu tempo de CPU terminou. Enquanto isso, o produtor vai para o estado de pronto aguardar novo time slice. O produtor imagina que o processo consumidor já está acordado, pois havia enviado um sinal de acorda. Consumidor continua sua execução de onde havia parado. Agora sim, ele dormirá achando que o count continua valendo 0 (informação obtida antes de terminar seu time slice mesmo problema do spool de impressão). p p c c X count 1 count 0 Quando o processo produtor for escalonado novamente para entrar em execução preencherá todas as posições do (até count chegar a 10) e dormirá. Só o produtor poderia acordar o consumidor, mas como acredita que já tenha feito isso, não fará novamente. Problema: Ambos irão dormir para sempre! C P C P P C X X X X X X X X X X count 10 X X X X X X X X X X count 10 count 0 Depois de acompanhar a execução do programa, você viu que o método sleepwakeup não é suficiente para resolver o problema do produtor-consumidor. Uma alternativa é utilizar um bit de controle que recebe um valor true quando uma chamada é enviada para um processo que não está. Porém, esta solução possui uma deficiência: o sistema pode sobrecarregar se houver muitos pares de processos, pois necessitariam de muitos bits de controle. Na tentativa de otimizar a solução do problema produtor-consumidor presente no método sleep-wakeup, propôs-se um outro método chamado de semáforos, que trataremos no próximo tópico. Semáforos Um semáforo pode ser manipulado por duas instruções: down e up, que funcionam como protocolos de entrada e saída de um processo em sua região crítica, respectivamente. 28 CRC Sistemas Operacionais Claretiano Batatais

15 O semáforo indica quando um recurso compartilhado está sendo acessado por outro processo concorrente. Se o valor do semáforo for maior que 0, o recurso está livre; se for igual a 0 o recurso está ocupado por outro processo. Um down (sleep) é executado sempre que o processo deseja entrar em uma região crítica. Se o valor do semáforo for maior que 0, será decrementado e o processo executa sua região crítica; se o valor for igual a 0, o processo é posto na fila de espera sem completar a operação de down. Uma instrução up (wakeup) é executada sempre que o processo sai da sua região crítica, neste caso incrementa-se o valor do semáforo liberando o recurso compartilhado. Se houver processos na fila de espera, o sistema escolherá um deles e enviará uma chamada wakeup, este processo vai para o estado de pronto e poderá completar a operação de down assim que a CPU for liberada. Observe a seguir a implementação de semáforo em Pascal.... TYPE Semaforo = RECORD elem : INTEGER; fila_espera : {fila com processos aguardando a CPU} END; PROCEDURE down (VAR s: semaforo); IF (s=0) THEN {processo entra na fila de espera} ELSE s := s 1; END; PROCEDURE up (VAR s: semaforo); s := s + 1; IF (tem_processo_na_fila_de_espera) THEN {um processo sai da fila de espera e vai para pronto} END;... END. Apesar da facilidade do uso de semáforos, eles não excluem totalmente as ocorrências de deadlocks, pois um engano no envio de chamadas do sistema pode gerar uma situação de bloqueio mútuo dos processos. Um outro método, conhecido por Monitores, pode representar uma solução eficiente para este problema. Monitores Os monitores constituem um método de sincronização entre processos concorrentes. Eles são formados por um conjunto de procedimentos, variáveis e estrutura de dados em um único módulo. Sua principal característica é que apenas um processo pode estar ativo dentro do monitor em um instante (exclusão mútua), enquanto outros ficam bloqueados esperando a liberação do monitor. Sistemas Operacionais CRC Batatais Claretiano 29

16 A utilização de monitores consiste em escrever o programa colocando todas as regiões críticas em forma de procedimentos no monitor e o compilador será o responsável por garantir a exclusão mútua destes procedimentos. O exemplo a seguir demonstra a utilização de monitor em Pascal. PROGRAM monitores;... MONITOR regiao_critica; VAR elem : INTEGER; PROCEDURE multiplica; elem := elem * 2; END; PROCEDURE divide; elem := elem DIV 2; END; elem := 0; END; PAR regiao_critica.multiplica; regiao_critica.divide; PAREND; END. A implementação da exclusão mútua nos monitores é realizada pelo compilador e não pelo programador, como acontecia com os semáforos. O compilador é quem reconhece um monitor e quem tratará este mecanismo. Sua utilização pode não ser possível, pois não são todas as linguagens de programação que incorporam este conceito. 8 Trocas de mensagens A troca de mensagens garante, além da sincronização, a comunicação entre os processos. Uma comunicação acontece quando há intercâmbio de informações entre os processos concorrentes e objetiva a cooperação entre eles. A troca de mensagens é implementada pelo sistema operacional por meio de duas chamadas de sistema: send(destino, $mensagem); receive(origem, $mensagem); Send envia mensagem para um processo receptor (destino especificado), e o procedimento receive recebe esta mensagem de um processo transmissor em uma origem especificada. Se não houver mensagens disponíveis, o procedimento receive é bloqueado até que uma nova mensagem seja entregue. 30 CRC Sistemas Operacionais Claretiano Batatais

17 Você pode perceber facilmente a comunicação entre os processos quando ocorre a troca de mensagens. A sincronização acontece quando uma mensagem só pode ser lida após ter sido enviada, isso significa que não há mais o problema de trocar a ordem de execução dos eventos. Resolvido o problema da ordem de execução dos processos, parece que todos os problemas apresentados pelas soluções anteriores foram resolvidos. Mas ainda existem situações que precisam ser consideradas. Situação 1 Lembrando que os recursos compartilhados podem estar em rede e que, portanto, as mensagens send/receive trafegam de uma máquina para outra, maximizando a ocorrência de perda de mensagens no meio do caminho. Alternativa para a situação 1 Para resolver a perda de mensagens utiliza-se uma mensagem de confirmação de recebimento, conhecida por acknowledgement, ou simplesmente ACK. Após enviar uma mensagem send, se o transmissor não receber um ACK em um determinado intervalo de tempo, ele retransmite a mensagem. Situação 2 A alternativa para a situação 1 parece resolver o problema da perda de mensagens, mas há uma 2ª situação. A mensagem é recebida corretamente pelo receptor e envia um ACK, mas quem se perde desta vez é o ACK. Desta forma o send retransmitirá a mensagem e quando esta chegar, o receive executará novamente. Se a mensagem se tratar de uma impressão, por exemplo, o arquivo será colocado na fila duas vezes e será impresso repetidamente. Alternativa para a situação 2 Se o receive soubesse se uma mensagem é uma retransmissão, poderia solucionar o problema. Para isso, basta acrescentar um campo de identificação em cada mensagem. Assim, ao receber uma nova mensagem, o receive compara o campo de identificação com o das outras mensagens e a descarta se concluir que é uma retransmissão. A troca de mensagens é uma solução, mas possui outros problemas presentes em qualquer comunicação distribuída, como, por exemplo, garantir a autenticidade do transmissor e receptor no envio das mensagens, além de se tornar um processo mais lento do que as operações com semáforos e os monitores. APRENDA A APRENDER: Terminado o estudo desta unidade é importante que você reflita sobre os conteúdos estudados, bem como sobre as técnicas e estratégias propostas para sua aprendizagem. Identifique o que foi útil e, portanto, pode ser incorporado e o que pode ser dispensado. Em caso de eventuais dúvidas, retome o estudo do conteúdo, realize pesquisas e interaja na Sala de Aula Virtual com seus colegas de curso e com seu professor. Você é o protagonista de sua aprendizagem. Participe! Sistemas Operacionais CRC Batatais Claretiano 31

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais GERÊNCIA DO PROCESSADOR MACHADO/MAIA: CAPÍTULO 08 Prof. Pedro Luís Antonelli Anhanguera Educacional Gerenciamento do Processador A gerência do processador pode ser considerada a atividade

Leia mais

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton Universidade Federal de Itajubá UNIFEI Instituto de Engenharia de Sistemas e Tecnologias da Informação IESTI CCO 004 Sistemas Operacionais Prof. Edmilson Marmo Moreira 4.1 Introdução Capítulo 4 Gerência

Leia mais

Gerência do Processador

Gerência do Processador Andrique Amorim www.andrix.com.br professor@andrix.com.br Gerência do Processador Gerência do Processador No gerenciamento dos processos serão definidas as propriedades dos processos em execução, e a maneira

Leia mais

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Notas da Aula 6 - Fundamentos de Sistemas Operacionais 1. Monitores Notas da Aula 6 - Fundamentos de Sistemas Operacionais Embora os semáforos sejam uma boa solução para o problema da exclusão mútua, sua utilização não é trivial. O programador é obrigado a

Leia mais

Gerenciamento de memória

Gerenciamento de memória Na memória principal ficam todos os programas e os dados que serão executados pelo processador. Possui menor capacidade e custo maior. S.O buscam minimizar a ocupação da memória e otimizar sua utilização.

Leia mais

Prof. Antonio Torres antonioctorres@gmail.com @_antonioctorres. Fundamentos de Sistemas Operacionais UNIP/2015

Prof. Antonio Torres antonioctorres@gmail.com @_antonioctorres. Fundamentos de Sistemas Operacionais UNIP/2015 Prof. Antonio Torres antonioctorres@gmail.com @_antonioctorres Fundamentos de Sistemas Operacionais UNIP/2015 Disciplinas FUNDAMENTOS DE SISTEMAS OPERACIONAIS Horários Quarta-feira Fundamentos de Sistemas

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Gerenciamento de processos Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO 1 Conceitos Básicos Máxima utilização da CPU obtida com

Leia mais

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados. O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados. A multiprogramação tem como objetivo permitir que, a todo instante, haja algum processo

Leia mais

Gerência do Processador

Gerência do Processador Andrique Amorim www.andrix.com.br professor@andrix.com.br Gerência do Processador Desenvolvimento web II IMPORTANTE SABER Desenvolvimento web II DEADLOCK (interbloqueio, blocagem, impasse) Situação em

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

Sistemas Operacionais Processos e Threads

Sistemas Operacionais Processos e Threads Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br 1 Estrutura de um Sistema Operacional 2 GERÊNCIA DE PROCESSOS Um processo

Leia mais

Sistemas Operacionais. Roteiro. Tipos de Tarefas (temporal) Marcos Laureano

Sistemas Operacionais. Roteiro. Tipos de Tarefas (temporal) Marcos Laureano Sistemas Operacionais Marcos Laureano 1/28 Roteiro Tipos de Tarefas Preempção Escalonamento de processos Tipos de escalonamentos 2/28 Tipos de Tarefas (temporal) Tarefas de tempo real Previsibilidade em

Leia mais

Capítulo 4 Gerência de Processador

Capítulo 4 Gerência de Processador DCA-108 Sistemas Operacionais Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Capítulo 4 Gerência de Processador Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de

Leia mais

Sistemas Operacionais I

Sistemas Operacionais I Sistemas Operacionais I Material Baseado no Livro Sistemas Operacionais Modernos 2ª. Ed. da Pearson Education 1 Agenda Deadlocks Gerenciamento de Memória 2 1 DEADLOCKS 3 Recursos Exemplos de recursos de

Leia mais

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO? Índice BlueControl... 3 1 - Efetuando o logon no Windows... 4 2 - Efetuando o login no BlueControl... 5 3 - A grade de horários... 9 3.1 - Trabalhando com o calendário... 9 3.2 - Cancelando uma atividade

Leia mais

Métodos de Sincronização do Kernel

Métodos de Sincronização do Kernel Métodos de Sincronização do Kernel Linux Kernel Development Second Edition By Robert Love Tiago Souza Azevedo Operações Atômicas Operações atômicas são instruções que executam atomicamente sem interrupção.

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Trabalho 7 Fila de prioridade usando heap para simulação de atendimento

Trabalho 7 Fila de prioridade usando heap para simulação de atendimento Trabalho 7 Fila de prioridade usando heap para simulação de atendimento Data: 21/10/2013 até meia-noite Dúvidas até: 09/10/2013 Faq disponível em: http://www2.icmc.usp.br/~mello/trabalho07.html A estrutura

Leia mais

Sistemas Operacionais

Sistemas Operacionais AULA 09 Sincronização de Processos - II Monitores Conforme comentamos, o uso equivocado dos semáforos pode levar a uma situação de deadlock, por isso devemos tomar cuidado ao programar utilizando este

Leia mais

Sistemas Operacionais Arquivos. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Sistemas Operacionais Arquivos. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Sistemas Operacionais Arquivos Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Copyright Carlos Ferraz Cin/UFPE Implementação do Sistema de Arquivos Sistemas de arquivos são

Leia mais

PROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com

PROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com PROCESSOS Prof. Maicon A. Sartin mapsartin@gmail.com Cenários em Sistemas Multitarefas Um usuário pode executar diversas atividades simultâneas Música Editoração de texto Navegar na Internet Servidor pode

Leia mais

MODELAGEM E SIMULAÇÃO

MODELAGEM E SIMULAÇÃO MODELAGEM E SIMULAÇÃO Professor: Dr. Edwin B. Mitacc Meza edwin@engenharia-puro.com.br www.engenharia-puro.com.br/edwin Terminologia Básica Utilizada em de Sistemas Terminologia Básica Uma série de termos

Leia mais

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado Memória - Gerenciamento Sistemas Operacionais - Professor Machado 1 Partes físicas associadas à memória Memória RAM Memória ROM Cache MMU (Memory Management Unit) Processador Tabela de Páginas TLB 2 Conceitos

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Sincronização entre Processos Andreza Leite andreza.leite@univasf.edu.br Sincronização Freqüentemente, os processos precisam se comunicar com outros processos. Isto ocorre quando

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS 1 SISTEMAS OPERACIONAIS Profª Josiane T. Ferri Licenciada em Computação prof.jositf@yahoo.com.br facebook.com/josiferri ESTRUTURA DO SISTEMA OPERACIONAL Embora a definição de níveis de privilégio imponha

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Arquitetura dos Sistemas Operacionais

Arquitetura dos Sistemas Operacionais Arquitetura dos Sistemas Operacionais Arquitetura de um Sistema Operacional Basicamente dividido em shell é a interface entre o usuário e o sistema operacional é um interpretador de comandos possui embutido

Leia mais

PROGRAMAÇÃO II 3. FILA DINÂMICA

PROGRAMAÇÃO II 3. FILA DINÂMICA 3. FILA DINÂMICA PROGRAMAÇÃO II Prof. Jean Eduardo Glazar Uma fila é um tipo especial de lista na qual todas as inserções são feitas sempre depois do fim e as deleções no início. Por isso também recebe

Leia mais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Suporte do Sistema Operacional Material adaptado, atualizado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Objetivos

Leia mais

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova;

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova; Software Básico 2008.2 Trabalho Prático 1: programação de E/S, uso de sinais Prática de programação voltada a eventos Trabalho individual ou em dupla Data de entrega: 01/10/2008 1 O Objetivo Utilizando

Leia mais

Filas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário

Filas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário Filas Fila é um tipo de lista linear onde as inserções são realizadas num extremo (final da Fila) e as remoções restritas ao outro (começo da Fila). O primeiro a entrar é o primeiro a sair e último a entrar

Leia mais

Redes de Computadores II

Redes de Computadores II Redes de Computadores II UDP Prof: Ricardo Luís R. Peres Tem como objetivo prover uma comunicação entre dois processos de uma mesma sessão que estejam rodando em computadores dentro da mesma rede ou não.

Leia mais

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados Prof. Hugo Souza Até agora vimos como é formada a infraestrutura física e lógica das bases de dados com os principais componentes

Leia mais

Gerência de Processador

Gerência de Processador Gerência de Processador Prof. Edwar Saliba Júnior Junho de 2009 Unidade 03-003 Gerência de Processador 1 Introdução Com o surgimento dos sistemas multiprogramáveis, onde múltiplos processos poderiam permanecer

Leia mais

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona. Aula 14 Redes de Computadores 24/10/07 Universidade do Contestado UnC/Mafra Sistemas de Informação Prof. Carlos Guerber ROTEAMENTO EM UMA REDE DE COMPUTADORES A máscara de sub-rede é utilizada para determinar

Leia mais

Sincronização de Processos (1) Mecanismos de busy wait

Sincronização de Processos (1) Mecanismos de busy wait Sincronização de Processos (1) Mecanismos de busy wait Condições de Corrida Exemplo: Fila de impressão. Qualquer processo que queira imprimir precisa colocar o seu documento na fila de impressão (compartilhada).

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Processos e Threads Andreza Leite andreza.leite@univasf.edu.br Plano de Aula 2 Gerenciamento de Processos Threads Aplicações com múltiplas Threads Concorrência e Compartilhamento

Leia mais

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto lasf.bel@gmail.com

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto lasf.bel@gmail.com Sumário Condições para Ocorrência de Modelagem de Evitando deadlock Algoritmo do banqueiro M. Sc. Luiz Alberto lasf.bel@gmail.com Aula - SO 1 Definição Um conjunto de N processos está em deadlock quando

Leia mais

MANUAL DA SECRETARIA

MANUAL DA SECRETARIA MANUAL DA SECRETARIA Conteúdo Tela de acesso... 2 Liberação de acesso ao sistema... 3 Funcionários... 3 Secretaria... 5 Tutores... 7 Autores... 8 Configuração dos cursos da Instituição de Ensino... 9 Novo

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Sistemas Distribuídos Modelo Cliente-Servidor

Sistemas Distribuídos Modelo Cliente-Servidor Sistemas Distribuídos Modelo Cliente-Servidor Disciplina: Sistemas Distribuídos Prof.: Edmar Roberto Santana de Rezende Faculdade de Engenharia de Computação Centro de Ciências Exatas, Ambientais e de

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

Montagem e Manutenção. Luís Guilherme A. Pontes

Montagem e Manutenção. Luís Guilherme A. Pontes Montagem e Manutenção Luís Guilherme A. Pontes Introdução Qual é a importância da Montagem e Manutenção de Computadores? Sistema Binário Sistema Binário Existem duas maneiras de se trabalhar e armazenar

Leia mais

GABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios

GABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios CURSO - TADS TURMA 2008.1 2 PERÍODO 3 MÓDULO AVALIAÇÃO MP2 DATA 02/10/2008 SISTEMAS OPERACIONAIS 2008/2 GABARITO COMENTADO SISTEMAS OPERACIONAIS PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 11 Sincronização de Processos Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Revisão Ultima aula [1/2]

Revisão Ultima aula [1/2] SOP - TADS Comunicação Interprocessos - 2 IPC Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 1 ARQUITETURA DE COMPUTADORES U C P Prof. Leandro Coelho Plano de Aula 2 Aula Passada Definição Evolução dos Computadores Histórico Modelo de Von-Neumann Básico CPU Mémoria E/S Barramentos Plano de Aula

Leia mais

Tanto na visão semanal como diária você tem a sua disposição algumas opções uteis que facilitarão seu dia a dia.

Tanto na visão semanal como diária você tem a sua disposição algumas opções uteis que facilitarão seu dia a dia. Agenda A agenda é o coração de qualquer clinica estética, já que trata-se de uma peça fundamental para organizar seu trabalho diário. Entretanto, dentro de FLOWww a agenda ganha um destaque ainda mais

Leia mais

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza Sistemas Distribuídos Processos I Prof. MSc. Hugo Souza Até agora vimos a organização como um todo dos SDS, com o mapeamento estrutural e suas devidas características descritas em elementos, regras, conceitos,

Leia mais

TUTORIAL PARA UTILIZAÇÃO DA PLATAFORMA LMS

TUTORIAL PARA UTILIZAÇÃO DA PLATAFORMA LMS TUTORIAL PARA UTILIZAÇÃO DA PLATAFORMA LMS Neste documento você encontrará um conjunto de orientações de como navegar na plataforma do MBA Gestão Empreendedora. Siga as instruções com atenção e salve este

Leia mais

Nível da Arquitetura do Conjunto das Instruções

Nível da Arquitetura do Conjunto das Instruções Nível da Arquitetura do Conjunto das Instruções (Aula 13) Fluxo de Controle Fluxo Seqüencial de Controle e Desvios (1) Fluxo de Controle: É a seqüência na qual instruções são dinamicamente executadas Isto

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

MINISTÉRIO DA SAÚDE. Secretária de Gestão Estratégica e Participativa da Saúde SGEP. Coordenação de Desenvolvimento dos Sistemas de Saúde - CDESS

MINISTÉRIO DA SAÚDE. Secretária de Gestão Estratégica e Participativa da Saúde SGEP. Coordenação de Desenvolvimento dos Sistemas de Saúde - CDESS MINISTÉRIO DA SAÚDE Secretária de Gestão Estratégica e Participativa da Saúde SGEP Coordenação de Desenvolvimento dos Sistemas de Saúde - CDESS Departamento de Informática do SUS - DATASUS Manual operacional

Leia mais

Manual do Instar Mail v2.0

Manual do Instar Mail v2.0 Manual do Instar Mail v2.0 Sumário Conteúdo Menu Principal... 2 Menu Cliente... 3 Pagina Categorias do Instar-Mail... 4 Importação... 4 Campanhas... 8 Cadastramento de campanhas do Instar-Mail... 9 Ações

Leia mais

8 Threads. 8.1 Introdução

8 Threads. 8.1 Introdução 1 8 Threads 8.1 Introdução Uma thread, também chamada de tarefa, pode ser definida como uma parte ou rotina de um processo em execução que compartilha o mesmo espaço de endereçamento, mas tem seu próprio

Leia mais

Manual do Painel Aceno Digital A3000/A6000. www.acenodigital.com.br. Rua Porto Alegre, 212 Jd. Agari 43 3027-2255 Cep: 86.

Manual do Painel Aceno Digital A3000/A6000. www.acenodigital.com.br. Rua Porto Alegre, 212 Jd. Agari 43 3027-2255 Cep: 86. Manual do Painel Aceno Digital A3000/A6000 Manual do Painel Aceno Digital A3000/A6000 Este manual apresenta o funcionamento e os procedimentos de configuração e instalação dos painéis Aceno Digital, modelos

Leia mais

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread; CAPÍTULO VI THREADS 6.1 INTRODUÇÃO Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread; O sistema operacional Toth, em 1979, foi o primeiro a implementar

Leia mais

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade Introdução É sabido que os processos rodam em processadores. Nos sistemas tradicionais existe somente um único processador, de forma que não há dúvida a respeito de como ele deve ser usado. Em um sistema

Leia mais

Mais configuração OptraImage

Mais configuração OptraImage 1 fax Personalizarconfiguraçõesdecópia...2 Definirmanualmenteasinformaçõesbásicasdofax...3 Criardestinospermanentesdefax...5 Alterarasconfiguraçõesderecebereenviarfax...7 Ajustarasopçõesdeenviodefax...8

Leia mais

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador A partir do momento em que diversos processos podem

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

Sistemas Operacionais Sincronização e Comunicação entre Processos

Sistemas Operacionais Sincronização e Comunicação entre Processos Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Sincronização e Comunicação entre Processos Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Prof. Ms. Márcio Andrey Teixeira A Caracterização dos Sistemas Funções do S.O Administração de Processos Administração da Memória Principal Administração do Armazenamento Secundário Administração

Leia mais

Portal de Aprendizado Tutorial do Aluno

Portal de Aprendizado Tutorial do Aluno Portal de Aprendizado Tutorial do Aluno Índice 1 Acessando o Portal... 2 1.1 Verificação do Browser... 2 1.2 Entre em contato... 3 1.3 Portal Autenticado... 5 2 Meus Cursos... 6 2.1 Matriculando-se em

Leia mais

Memória cache. Prof. Francisco Adelton

Memória cache. Prof. Francisco Adelton Memória cache Prof. Francisco Adelton Memória Cache Seu uso visa obter uma velocidade de acesso à memória próxima da velocidade das memórias mais rápidas e, ao mesmo tempo, disponibilizar no sistema uma

Leia mais

Introdução à Computação: Sistemas de Computação

Introdução à Computação: Sistemas de Computação Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS MACHADO/MAIA: CAPÍTULO 07, PÁGINA 101 Prof. Pedro Luís Antonelli Anhanguera Educacional sistemas multiprogramáveis Os sistemas multiprogramáveis

Leia mais

Escalonamento de CPU 2 Quadrimestre

Escalonamento de CPU 2 Quadrimestre BC1518-Sistemas Operacionais Escalonamento de CPU 2 Quadrimestre de 2010 (aula 05) Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br Roteiro Conceito Despachante Critérios de escalonamento

Leia mais

Fundamentos de Teste de Software

Fundamentos de Teste de Software Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 2- Teste Estático e Teste Dinâmico Aula 4 Projeto de Teste 1 SUMÁRIO INTRODUÇÃO... 3 ANÁLISE E PROJETO DE TESTE... 3 1.

Leia mais

Gerenciamento de memória

Gerenciamento de memória Sistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings O problema Em um ambiente multiprogramado, é necessário: subdividir a memória

Leia mais

Exercícios Teóricos Resolvidos

Exercícios Teóricos Resolvidos Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar

Leia mais

Neo Solutions Manual do usuário Net Contábil. Índice

Neo Solutions Manual do usuário Net Contábil. Índice Manual Neo Fatura 2 Índice 1. Introdução... 3 2. Configurando o software para importar dados de clientes... 3 3. Importando o cadastro de clientes... 4 4. Cadastro de Bancos... 5 5. Cadastro de Conta Correntes...

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos TUTORIAL Barra de LEDs Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

ITIL v3 - Operação de Serviço - Parte 1

ITIL v3 - Operação de Serviço - Parte 1 ITIL v3 - Operação de Serviço - Parte 1 É na Operação de Serviço que se coordena e realiza as atividades e processos necessários para fornecer e gerenciar serviços em níveis acordados com o usuário e clientes

Leia mais

Gerenciando a memória

Gerenciando a memória Memória da impressora 1 Sua impressora vem com, pelo menos, 64 MB de memória. Para determinar a quantidade de memória instalada atualmente em sua impressora, selecione Imprimir menus no Menu Utilitários.

Leia mais

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação Programação 1I Prof. Osório Fila / Alocação Estática Pag.: 1 - UNIVERSIAE O VALE O RIO OS SINOS IÊNIAS EXATAS E TENOLÓGIAS urso: Informática / iência da omputação Programação II isciplina: Linguagem de

Leia mais

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba Questão 01 Assumindo um registrador de 10 bits e utilizando-se de representação binária, com valores negativos representados em código de 2, os valores em representação decimal 235, -189 possuem, respectivamente,

Leia mais

Comunicação de Dados

Comunicação de Dados UNISUL 2013 / 1 Universidade do Sul de Santa Catarina Engenharia Elétrica - Telemática 1 Comunicação de Dados Aula 6 Agenda Projeto da camada de enlace de dados Detecção e correção de erros Protocolos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Processos e Threads Gustavo Reis gustavo.reis@ifsudestemg.edu.br - O que são Processos? Uma abstração de um programa em execução. Mantêm a capacidade de operações (pseudo)concorrentes,

Leia mais

1Ò&/(2'(('8&$d 2$',67Æ1&,$1($' PROCEDIMENTOS PARA DISCIPLINAS A DISTÂNCIA MANUAL DO ALUNO

1Ò&/(2'(('8&$d 2$',67Æ1&,$1($' PROCEDIMENTOS PARA DISCIPLINAS A DISTÂNCIA MANUAL DO ALUNO 1Ò&/(2'(('8&$d 2$',67Æ1&,$1($' PROCEDIMENTOS PARA DISCIPLINAS A DISTÂNCIA MANUAL DO ALUNO 2 SUMÁRIO 1 INTRODUÇÃO... 03 2 PROCEDIMENTOS PARA MATRÍCULA...04 3. PARTICIPAÇÃO NAS DISCIPLINAS EAD...04 4 AVALIAÇÃO

Leia mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta

Leia mais

Acessando o SVN. Soluções em Vendas Ninfa 2

Acessando o SVN. Soluções em Vendas Ninfa 2 Acessando o SVN Para acessar o SVN é necessário um código de usuário e senha, o código de usuário do SVN é o código de cadastro da sua representação na Ninfa, a senha no primeiro acesso é o mesmo código,

Leia mais

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

Leia mais

Algoritmos de Escalonamento

Algoritmos de Escalonamento Na aula anterior lgoritmos de Escalonamento Marcelo Johann Threads Sincronização Semáforos ula : Slide ula : Slide Plano da aula de Hoje. FIFO. SJF. Prioridade. Round-Robin 5. Múltiplas Filas 6. Garantido

Leia mais

Como estudar o SIPIA CT

Como estudar o SIPIA CT Como estudar o SIPIA CT Versão 1.0 Índice 1. Introdução... 2 2. O Ambiente Virtual de Aprendizagem (AVA)... 2 3. Recursos do AVA... 4 3.1. Fórum de dúvidas e discussões... 5 3.2. Apostila Eletrônica...

Leia mais

MANUAL DO USUÁRIO PORTAL DO PROFESSOR

MANUAL DO USUÁRIO PORTAL DO PROFESSOR MANUAL DO USUÁRIO PORTAL DO PROFESSOR ACESSANDO O PORTAL DO PROFESSOR Para acessar o portal do professor, acesse o endereço que você recebeu através da instituição de ensino ou acesse diretamente o endereço:

Leia mais

Sumário. 1. Instalando a Chave de Proteção 3. 2. Novas características da versão 1.3.8 3. 3. Instalando o PhotoFacil Álbum 4

Sumário. 1. Instalando a Chave de Proteção 3. 2. Novas características da versão 1.3.8 3. 3. Instalando o PhotoFacil Álbum 4 1 Sumário 1. Instalando a Chave de Proteção 3 2. Novas características da versão 1.3.8 3 3. Instalando o PhotoFacil Álbum 4 4. Executando o PhotoFacil Álbum 9 3.1. Verificação da Chave 9 3.1.1. Erro 0001-7

Leia mais

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento Professor Rene - UNIP 1 Revisão... Segmento A unidade de dados trocada entre as entidades de transporte é denominada

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

Leia mais

Gerência de Processador

Gerência de Processador Gerência de Processador mbientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Multiprogramação Torna mais eficiente o aproveitamento dos recursos computacionais

Leia mais

Exemplo: Na figura 1, abaixo, temos: Clique aqui para continuar, que é a primeira atividade que você precisa realizar para iniciar seus estudos.

Exemplo: Na figura 1, abaixo, temos: Clique aqui para continuar, que é a primeira atividade que você precisa realizar para iniciar seus estudos. Visão Geral VISÃO GERAL Esse material abordará o acesso ao AVA (Ambiente Virtual de Aprendizagem) da Proativa do Pará, com intenção de ilustrar os aspectos na visão do Aprendiz. Essa abordagem dedica-se

Leia mais