Conceito de processo como uma unidade de trabalho em um sistema moderno de tempo compartilhado. Estados de um processo.
|
|
- Nelson Penha Branco
- 8 Há anos
- Visualizações:
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
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 maisSistemas 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 maisCapí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 maisGerê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 maisNotas 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 maisGerenciamento 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 maisProf. 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 maisProf. 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 maisO 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 maisGerê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 maisCapí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 maisSistemas 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 maisSistemas 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 maisCapí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 maisSistemas 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 maisFigura 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 maisMé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 maisSistemas 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 maisTrabalho 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 maisSistemas 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 maisSistemas 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 maisPROCESSOS. 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 maisMODELAGEM 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 maisMemó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 maisSISTEMAS 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 maisSISTEMAS 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 maisProcessos 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 maisArquitetura 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 maisPROGRAMAÇÃ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 maisProf.: 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 maisArquitetura 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 maisPermitir 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 maisFilas. 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 maisRedes 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 maisTó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 maisGerê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 mais1. 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 maisSincronizaçã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 maisSISTEMAS 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 maisSumá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 maisMANUAL 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 maisIFPE. 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 maisSistemas 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 maisCapí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 maisMontagem 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 maisGABARITO 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 maisSistemas 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 maisRevisã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 maisARQUITETURA 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 maisTanto 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 maisSistemas 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 maisTUTORIAL 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 maisNí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 maisCapí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 maisMINISTÉ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 maisManual 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 mais8 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 maisManual 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 maisAté 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 maisIntroduçã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 maisMais configuração OptraImage
1 fax Personalizarconfiguraçõesdecópia...2 Definirmanualmenteasinformaçõesbásicasdofax...3 Criardestinospermanentesdefax...5 Alterarasconfiguraçõesderecebereenviarfax...7 Ajustarasopçõesdeenviodefax...8
Leia maisSistemas 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 maisProgramaçã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 maisSistemas 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 maisSistemas 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 maisPortal 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 maisMemó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 maisIntroduçã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 maisSistemas 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 maisEscalonamento 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 maisFundamentos 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 maisGerenciamento 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 maisExercí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 maisNeo 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 maisArquitetura 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 maisGuia 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 maisAutor: 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 maisITIL 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 maisGerenciando 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
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 maisConcurso 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 maisComunicaçã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 maisSistemas 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 mais1Ò&/(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 maisNotas 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 maisAcessando 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 maisEXEMPLO: 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 maisAlgoritmos 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 maisComo 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 maisMANUAL 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 maisSumá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 maisCurso: 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 maisSistemas 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 maisGerê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 maisExemplo: 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