Notas da Aula 6 - Fundamentos de Sistemas Operacionais
|
|
- José Rijo Meneses
- 8 Há anos
- Visualizações:
Transcrição
1 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 saber onde colocar as chamadas P e V, e precisa lembrar de liberar os semáforos (realizar a operação V) uma vez que termine a execução da sua seção crítica. Uma tentativa de simplificar o tratamento da seção crítica foi o advento dos Monitores. Os monitores são uma estrutura específica de algumas linguagens, como Java, que permitem que o programador coloque todas as funções que acessam um determinado recurso compartilhado em um mesmo bloco. Este bloco de funções é justamente o monitor. Quando um determinado processo está executando uma função declarada dentro de um monitor, dizemos que o processo está no monitor. Os monitores têm a propriedade de deixar no máximo um processo por vez acessá-los. Logo, ao declarar todas as funções que manipulam um recurso compartilhado dentro de um mesmo monitor, estamos automaticamente garantindo a exclusão mútua ao recurso. Este método tem a vantagem de ser muito simples, do ponto de vista do programador. Por outro lado, essa propriedade dos monitores por si só não oferece os mesmos recursos que um semáforo contador é capaz de oferecer. Tendo isto em mente, foram criadas duas operações especiais que podem ser executadas dentro de um monitor: a operação wait e a operação signal. Os nomes dessas operações podem variar de linguagem para linguagem, mas o funcionamento é sempre o mesmo. Ambas as operações recebem como parâmetro uma variável chamada de Variável de Condição. Uma variável de condição pode ser verdadeira ou falsa, representando alguma condição do estado atual do programa. Por exemplo, considere o seguinte código baseado em monitores que implementa um semáforo: monitor class Semaphore { private int s := 0; private Condition IsPositive; public method P() { } if s = 0 then wait IsPositive s := s - 1 public method V() {
2 } } s := s + 1 signal IsPositive; Quando um processo chama a função P do semáforo, ele inicialmente testa se o valor atual do contador é 0. Caso seja, o processo precisa ficar bloqueado. Para isso, a operação wait é chamada, recebendo como argumento a variável de condição ispositive. Ou seja, o processo deseja esperar até que a condição ispositive se torne verdadeira. Como a condição neste momento é falsa, o processo fica bloqueado. Eventualmente, outro processo tenta executar a função V sobre o semáforo. Ele incrementa o valor do contador s e executa a operação signal sobre a variável de condição ispositive. Isso faz com que o SO escolha um dos processos que estavam bloqueados na operação wait da variável ispositive para ser desbloqueado e prosseguir sua execução. Note que as operações wait e signal burlam a propriedade de exclusão mútua dos monitores. Quando um processo fica bloqueado em uma variável de condição dentro do monitor, ele precisa que um outro processo entre no monitor e execute o signal apropriado. Em outras palavras, pode haver mais de um processo dentro do monitor ao mesmo tempo. É preciso ter cuidado ao usar monitores, pois o comportamento da execução após a chamada a uma operação signal é dependente da implementação do monitor. Uma vez que a operação signal tenha sido executada, o SO pode desbloquear um dos processos que estavam aguardando que a condição ficasse verdadeira. No entanto, qual processo será executado neste instante? O processo que disparou o signal ou o processo que foi desbloqueado neste momento? Dependendo da resposta para esta pergunta e das instruções executadas após o signal e o wait, o programa pode incorrer no problema de condição de corrida. Em relação aos semáforos, os monitores podem ser mais simples, do ponto de vista do programador. Entretanto, semáforos são mais flexíveis e, em geral, resultam em melhor desempenho, já que o programador pode posicionar as chamadas P e V nos locais mais convenientes. Além disso, semáforos são mais comuns, pois são mecanismos fornecidos pelo SO, enquanto monitores são mecanismos específicos de algumas linguagens. Há ainda a questão do cuidado no uso das operações wait e signal. 2. Troca de Mensagens Todos os mecanismos discutidos até então relacionados a programação concorrente são voltados para sistemas de memória compartilhada. Em todos os exemplos vistos até aqui, é necessário que haja uma memória compartilhada para que algum tipo de variável de controle seja manipulada por vários processos. Existem, no entanto, programas concorrentes que são executados em sistemas distribuídos, ou
3 seja, sistemas nos quais não há uma memória compartilhada entre os vários processadores (e processos). Neste tipo de programa, toda comunicação e sincronização entre processos tem que ser realizada através de trocas de mensagens pela rede que interliga os processadores. Esta troca de mensagens é feita através de duas funções básicas: a função Send e a função Receive. A função Send é utilizada para enviar uma mensagem para outro processo. Esta função recebe, no mínimo, dois argumentos: o endereço do processo de destino e o os dados a serem enviados. Há várias maneiras de endereçar um processo em uma máquina remota. Por exemplo, em redes TCP/IP, em geral, um processo em uma máquina é endereçado pelo IP da máquina e a porta do processo. Em alguns sistemas operacionais, existe ainda a possibilidade de utilizar um mecanismo de Caixa Postal. Uma caixa postal é um endereço cujas mensagens podem ser recebidas por vários processos na máquina. Um exemplo disso é um programa que dispara vários processos, todos capazes de atender a um mesmo tipo de requisição. Quando um cliente faz uma requisição, ele envia sua mensagem para a caixa postal dos processos. Em algum momento, um dos processos consulta a caixa postal, obtendo a mensagem do cliente. Geralmente, considera-se que a função Send é não-bloqueante. Ou seja, o processo que chama a função Send não espera que a mensagem seja efetivamente recebida pelo processo de destino. Uma vez que a mensagem tenha sido enviada, o processo remetente pode continuar sua execução. Algumas vezes, no entanto, é útil que um processo fique bloqueado na função Send até que exista uma confirmação de que a mensagem foi recebida. A função Receive é utilizada para receber uma mensagem. A função recebe, no mínimo, um argumento: uma posição de memória para armazenar a mensagem recebida. É comum, no entanto, que a função Receive possa receber como argumento também o endereço do processo do qual deseja-se receber uma mensagem. Em geral, a função Receive é bloqueante, o que significa que o processo que a chamou ficará bloqueado até que haja uma mensagem a ser recebida. Por outro lado, existem casos em que é interessante que a função Receive seja não-bloqueante. Neste caso, o processo pode apenas verificar se há novas mensagens a receber. Caso não haja, a função Receive retorna um erro, o processo prossegue executando outras tarefas e eventualmente volta a chamar a função Receive. Ambas as funções Send e Receive podem fazer uso de buffers. Por exemplo, o SO pode manter um buffer de recepção para que mensagens destinadas a um certo processo não sejam perdidas, caso este processo demore muito tempo para tentar recebê-las. Enquanto o processo não faz uma chamada à função Receive, o SO guarda as mensagens recebidas em um buffer. Buffers geralmente trazem benefícios de desempenho aos sistemas. Caso não haja buffers, os envios e recebimentos de mensagens teriam que ser síncronos, para garantir que o remetente não sobrescrevesse sua própria mensagem com um novo envio. Isso reduz a possibilidade de processamento paralelo das tarefas de um programa concorrente. As redes de comunicação utilizam protocolos para gerenciar o envio e recebimento dos dados.
4 Alguns dos protocolos tendem a ser complexos, em termos de implementação. Para simplificar a escrita de programas concorrentes em ambientes distribuídos, é quase sempre tarefa do SO implementar os protocolos de rede. Desta forma, uma chamada à função Send feita por um processo de uma aplicação qualquer se resume a basicamente transferir a mensagem para uma área de memória do SO, de forma que o próprio SO se encarregue do envio deste ponto em diante. Um exemplo clássico de sistema de comunicação entre processos através de troca de mensagens é o RPC (Remote Procedure Call). O RPC utiliza as primitivas Send e Receive para implementar um sistema no qual um processo em uma máquina local pode requisitar a outro processo em uma máquina remota que execute alguma função ou rotina. O processo local envia uma mensagem para o processo remoto indicando o nome da rotina a ser executada e os parâmetros para execução. Ao receber a mensagem, o processo remoto executa a rotina, verifica se houve erros, e envia uma mensagem de volta para o processo local contendo o resultado da computação. Existem várias implementações diferentes do RPC e, em geral, elas não são compatíveis umas com as outras. O RPC também é muitas vezes considerado um mecanismo inseguro. No entanto, até hoje existem serviços comuns que utilizam o RPC. Um exemplo é o NFS (Network File System), um sistema de arquivos acessado através da rede. Os arquivos são armazenados no disco rígido de um servidor e outras máquinas clientes fazem requisições de criação, remoção, leitura e escrita de arquivos através de chamadas RPC. 3. Deadlock Dizemos que N processos estão em deadlock quando cada um deles está bloqueado à espera de um evento que só pode ser causado por um dos outros N processos. Quando isso ocorre, é impossível que os processos sejam desbloqueados, pois o evento necessário para isso nunca ocorrerá, dado que o processo que poderia causá-lo também está bloqueado. A menos que haja a interferência de alguma entidade externa (um outro processo que não faz parte do deadlock, por exemplo), estes N processos ficarão bloqueados indefinidamente. Deadlocks geralmente ocorrem por causa de disputas de recursos entre processos. Por exemplo, quando processos disputam pela oportunidade executar uma seção crítica. Um exemplo bastante simples de deadlock ocorre nos trechos de código abaixo: Processo 1:... P(S1); P(S2); V(S1); V(S2);
5 Processo 2:... P(S2); P(S1); V(S1); V(S2); Em determinado ponto da execução, o processo 1 executa a operação P em dois semáforos, S1 e S2, respectivamente. O processo 2 faz o mesmo, porém em ordem invertida. Suponha que, logo após a execução de P(S1), o processo 1 seja interrompido e substituído pelo processo 2. Por sua vez, o processo 2 executa P(S2) e tenta executar P(S1). Suponha ainda que ambos os semáforos estejam sendo usados para exclusão mútua. Logo, o processo 2 ficará bloqueado na operação P(S1). Ao voltar ao processador, o processo 1 tenta executar P(S2). Entretanto, ele também ficará bloqueado, pois o processo 2 já executou a operação P sobre o semáforo S2. Ambos os processos, portanto, estão bloqueados e não há como resolver o impasse, pois o processo 1 depende de que o processo 2 continue sua execução para chegar ao ponto do código no qual a operação V(S2) é chamada. Como o processo 2 está bloqueado, isso nunca acontecerá. O mesmo raciocínio se aplica no sentido inverso. Situações de deadlock são facilmente representáveis através de uma estrutura conhecida como Grafo de Disputa de Recursos. Este grafo tem dois tipos de vértices: processos e recursos. Um arco saindo de um processo em direção a um recurso simboliza o fato de que aquele processo deseja utilizar este recurso. Um arco saindo de um recurso e indo em direção a um processo representa que aquele recurso está alocado para este processo. Existem 4 condições necessárias para ocorrência de deadlocks: 1. exclusão mútua; 2. posse e espera; 3. não-preempção; e 4. espera circular. Exclusão mútua quer dizer que um determinado recurso não pode ser acessado simultaneamente por dois processos. Um exemplo de recurso que requer exclusão mútua são as regiões críticas. Como visto nas aulas anteriores, se dois processos acessam simultaneamente uma seção crítica, pode acontecer uma condição de corrida. Posse e espera significa que um determinado processo fez uma requisição para obter um recurso A, obteve este recurso (o SO alocou o recurso para o processo) e, antes de liberá-
6 lo, o processo realizou uma requisição por um recurso B. Se o recurso B estiver indisponível, o processo será bloqueado, estando em posse do recurso A (e, por isso, potencialmente bloqueando processos que necessitam do recurso A). Um exemplo simples disso é a cópia de dois arquivos. Suponha um processo que crie uma cópia de um arquivo. Para isso, ele primeiro tenta abrir o arquivo de origem. Uma vez que o SO tenha dado o direito a este processo de ler o arquivo, o processo requisita a abertura do arquivo de destino. Não-preempção significa que um dado recurso, uma vez que tenha sido alocado para um determinado processo, não pode ser retirado do processo, até que o mesmo termine de utilizálo. Por outro lado, um recurso é dito preemptível quando o SO pode retirá-lo do processo a qualquer momento, sem prejudicar a utilização do mesmo pelo processo. Um exemplo de recurso preemptível é o processador. O SO pode, a qualquer momento, interromper a execução de um processo e passar o processador para outro. Em outro momento, o processador é devolvido ao processo original que continua sua execução do exato ponto onde havia parado. Um exemplo de recurso não-preemptível é uma região crítica. Uma vez que um processo tenha recebido o direito de entrar na região crítica, o SO não pode simplesmente retirá-lo de lá e deixar que outro processo entre. Isso porque o processo original pode já ter realizado alterações parciais nos dados acessados na região, que fariam o programa concorrente incorrer em uma condição de corrida. Espera circular significa que existe um ciclo no grafo de disputa de recursos. Por exemplo, suponha que um processo P1 necessita do recurso R1, que está em posse de P2, que necessita do recurso R2, que está em posse de P3, que necessita do recurso R3, que está em posse de P1. Isso quer dizer que existe um ciclo de dependência entre os processos. Note, no entanto, que o ciclo de espera não necessariamente contém todos os processos e recursos que participam do deadlock. No exemplo citado, pode existir um processo P4 que necessita do recurso R3 (que está em posse de P1). Embora P4 não faça parte do ciclo, ele participa do deadlock, pois está bloqueado esperando por um evento que apenas o processo P1 pode provocar. É importante lembrar que estas 4 condições são necessárias. Ou seja, todas elas precisam ser verdadeiras simultaneamente para todos os recursos e processos para que possa existir um deadlock. Em outras palavras, se qualquer uma destas condições não for verdadeira, não é possível existir deadlock (ao menos, não em relação ao conjunto de processos e recursos considerados). A exclusão mútua é necessária à ocorrência de deadlocks, porque um recurso que pode ser compartilhado não faz com que seus processos requisitantes fiquem bloqueados. Se os processos não estão bloqueados, eles sempre podem liberar os demais recursos, possibilitando a execução dos demais processos. A posse e espera é necessária à ocorrência de deadlocks, porque se processos acessam um único recurso por vez (i.e., se o processo requisita um recurso, o utiliza e depois o libera antes de realizar novas requisições), eles nunca ficarão bloqueados durante o uso dos recursos.
7 Desta forma, uma vez que um processo tenha conseguido um recurso, ele eventualmente terminará de usá-lo e poderá liberá-lo desbloqueando os demais processos que estão aguardando. A não-preempção é necessária à ocorrência de deadlocks, porque se um dado recurso é preemptível, o SO sempre pode interromper o uso do processo atual, e passá-lo para um outro processo. Desta forma, processos nunca ficarão permanentemente bloqueados. A espera circular é necessária à ocorrência de deadlocks, porque se um ciclo de espera não existe, então há obrigatoriamente (ao menos) um processo de posse de todos os recursos necessários para continuar a sua execução. Neste caso, eventualmente este processo terminará de utilizar os recursos, liberando-os para outros processos atualmente bloqueados. Esta sequência continua até que todas as demandas de recursos sejam atendidas. Note que deadlock não é a mesma coisa que o travamento de um conjunto de processos. Suponha que um processo P1 tenha todos os recursos dos quais precisa para continuar a sua execução. Suponha ainda que haja outros processos que necessitam dos recursos alocados para P1 para sua execução e, por isso, estejam bloqueados no momento. Existe a possibilidade de P1 jamais liberar estes recursos, fazendo com que os demais processos fiquem indefinidamente bloqueados. Isto, no entanto, não se caracteriza como um deadlock, pois, segundo a definição, todos os processos envolvidos precisariam estar bloqueados. Neste caso, P1 não está bloqueado. Sua execução não depende de eventos que só possam ser disparados por um ou mais processos bloqueados. P1 simplesmente não liberou seus recursos, ou por um erro de programação, ou por uma atitude deliberada do programador. Em todo caso, P1 não pertence a um deadlock. Por outro lado, os processos bloqueados estão aguardando um evento que só pode ser disparado por P1 (a liberação dos recursos). Neste caso, eles dependem de um processo que não participa de um deadlock. Logo, segundo a definição, esta situação não é um deadlock. É fácil perceber que não se trata de um deadlock apenas pela observação de que não existe espera circular, neste caso. Logo, um deadlock é impossível. Existem três estratégias diferentes para solucionar os deadlocks. A primeira delas é a prevenção. Neste caso, toda vez que um processo requisitar algum recurso, o SO deve se certificar de que a concessão do recurso não levará o sistema a um deadlock. Existem vários métodos na literatura para isso, incluindo o Algoritmo do Banqueiro e a Enumeração de Recursos. Uma outra estratégia é a detecção e correção. Ou seja, ao invés de tentar previnir a ocorrência dos deadlocks, o SO deixa que eles aconteçam. Periodicamente, o SO verifica o estado atual do sistema, determinando se existe um deadlock. Caso exista, o SO toma alguma atitude, como matar um dos processos envolvidos, em uma tentativa de desfazer o conflito. A última estratégia é simplesmente não fazer nada. Ao invés de tentar previnir ou consertar situações de deadlock, o SO deixa que elas aconteçam e que os usuários da máquina se
8 encarreguem de tomar alguma atitude (por exemplo, pedir ao SO que mate um dos processos envolvidos). Esta estratégia é comumente chamada de algoritmo da avestruz, numa referência à suposta atitude deste animal em situações de perigo, e é adotada em uma série de áreas. Embora possa parecer uma displicência adotar esta estratégia, existe um forte argumento a seu favor: as técnicas de prevenção e detecção de deadlocks são, em geral, custosas. Além disso, a ocorrência de deadlocks em Sistemas Operacionais é relativamente rara e não costuma causar grandes danos. Portanto, pode ser mais vantajoso deixar que o problema ocorra e delegar a tarefa de correção ao usuário, que empregar métodos complexos, que farão o SO ocupar mais memória e se tornar mais lento. A grande maioria dos SOs adotam esta estratégia, justamente por este motivo. Há alguns sistemas, no entanto, nos quais estratégias de prevenção ou detecção e correção de deadlocks são usadas. Sistemas Operacionais de equipamentos que realizam tarefas de muita importância e sistemas gerenciadores de banco de dados precisam implementar tais mecanismos, pois ou deadlocks são muito frequentes (caso dos bancos de dados), ou suas consequências não são toleráveis (caso dos primeiros sistemas).
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 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 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 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 maisResolução da lista de exercícios de casos de uso
Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se
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 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 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 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 maisNotas da Aula 15 - Fundamentos de Sistemas Operacionais
Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos
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 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 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 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 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 maisGerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger
Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger O controle da entrada e saída (E/S ou I/O, input/output) de dados dos dispositivos é uma das funções principais de um sistema operacional.
Leia maisSistemas Operativos. Deadlocks. 3º ano ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@ipiaget.net)
Sistemas Operativos Deadlocks 3º ano ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@ipiaget.net) Sistemas Operativos [2011/12] Eng.º Anilton Silva Fernandes
Leia maisNotas da Aula 17 - Fundamentos de Sistemas Operacionais
Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.
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 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 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 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 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 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 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 maisDALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS
DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS Aluno: Ricardo Gomes Leal Costa Orientadora: Noemi de la Rocque Rodriguez Introdução A biblioteca DALua [1], fruto do projeto anterior, tem por objetivo oferecer
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 maisSumário. Administração de Banco de dados Módulo 12. Ilustração Backup-Recovery. Recuperação (Recovery) - Definição
Sumário Administração de Banco de dados Módulo 12 1. Administração de SGBDs - Continuação 1.1. Recuperação (Recovery) 1.1.1. Recuperação de sistema 1.1.2. Recuperação da mídia M. Sc. Luiz Alberto lasf.bel@gmail.com
Leia maisIntrodução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br
Introdução a Banco de Dados Aula 03 Prof. Silvestri www.eduardosilvestri.com.br Arquiteturas de Banco de Dados Arquiteturas de BD - Introdução Atualmente, devem-se considerar alguns aspectos relevantes
Leia mais- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções
1 - Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções Um programa pode possuir determinados processos realizados repetidas vezes ao longo da execução do programa. Estes processos podem se agrupar
Leia maisTÉCNICAS DE PROGRAMAÇÃO
TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente
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 maisEventos independentes
Eventos independentes Adaptado do artigo de Flávio Wagner Rodrigues Neste artigo são discutidos alguns aspectos ligados à noção de independência de dois eventos na Teoria das Probabilidades. Os objetivos
Leia maisManual de instalação, configuração e utilização do Enviador XML
Manual de instalação, configuração e utilização do Enviador XML 1. Conceitos e termos importantes XML Empresarial: é um sistema web (roda em um servidor remoto) de armazenamento e distribuição de documentos
Leia maisTRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 3-1. A CAMADA DE REDE (Parte 1) A camada de Rede está relacionada à transferência de pacotes da origem para o destino. No entanto, chegar ao destino pode envolver vários saltos em roteadores intermediários.
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 maisEste artigo abaixo foi produzido originalmente para a Network Core Wiki. Reproduzo-a aqui na íntegra. Publicado originalmente em 07/12/2007.
Vírus no Linux? Este artigo abaixo foi produzido originalmente para a Network Core Wiki. Reproduzo-a aqui na íntegra. Publicado originalmente em 07/12/2007. Interface de uma distribuição Linux Uma das
Leia maisUNIDADE 6 - PROGRAMAÇÃO MODULAR
UNIDADE 6 - PROGRAMAÇÃO MODULAR Até o momento as estruturas de controle (seqüência, seleção e repetição) de um algoritmo definia-o como um bloco lógico (início e fim). À medida que os problemas a serem
Leia maisBanco de Dados Orientado a Objetos
Banco de Dados Orientado a Objetos MODELAGEM, ANÁLISE, PROJETO e CLASSIFICAÇÃO Interação combinando lógica, através de objetos que contém os dados. Estes divididos conforme seus tipos e métodos (classe),
Leia maisCampus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com /
Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: SEGURANÇA DA INFORMAÇÃO Aula N : 15 Tema:
Leia maisSistema de Gerenciamento de Projetos V 1.01 MANUAL DO COORDENADOR
Roteiro para utilização do GEP Versão de referência: GEP V1.00 Índice analítico I Apresentação... 2 I.1 Controles básicos do sistema;... 2 I.2 Primeiro acesso... 2 I.3 Para trocar a senha:... 3 I.4 Áreas
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 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 maisTodos os microprocessadores hoje disponíveis em micros compatíveis com PC utilizam o funcionamento do 80386 como ponto de partida.
8 0 Introdução Todos os microprocessadores hoje disponíveis em micros compatíveis com PC utilizam o funcionamento do 80386 como ponto de partida. Isso acontece por pelo menos três motivos técnicos: 0 80386
Leia maisTransporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino.
Redes de Computadores Transporte Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Camada de transporte Sua função é: Promover uma transferência de dados confiável e econômica
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 maisResolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite
Resolução de Problemas de Rede Disciplina: Suporte Remoto Prof. Etelvira Leite Ferramentas para manter o desempenho do sistema Desfragmentador de disco: Consolida arquivos e pastas fragmentados Aumenta
Leia maisDeadlocks. 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 Dispositivos e recursos são compartilhados a todo momento: impressora, disco, arquivos,
Leia mais1. Arquivos Seqüenciais
1. Arquivos Seqüenciais 1.1. Introdução Historicamente, os arquivos seqüências são associados as fitas magnéticas devido a natureza seqüencial deste meio de gravação. Mas os arquivos seqüências são também
Leia maisOBJETIVO VISÃO GERAL SUAS ANOTAÇÕES
OBJETIVO Assegurar a satisfação do cliente no pós-venda, desenvolvendo um relacionamento duradouro entre o vendedor e o cliente, além de conseguir indicações através de um sistema de follow-up (acompanhamento).
Leia maisConceitos básicos da linguagem C
Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por
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 maisDesenvolvimento de uma Etapa
Desenvolvimento de uma Etapa A Fase Evolutiva do desenvolvimento de um sistema compreende uma sucessão de etapas de trabalho. Cada etapa configura-se na forma de um mini-ciclo que abrange as atividades
Leia maisManual do Desktop Sharing. Brad Hards Tradução: Marcus Gama
Brad Hards Tradução: Marcus Gama 2 Conteúdo 1 Introdução 5 2 O protocolo do Buffer de Quadro Remoto (Buffer de Quadro Remoto) 6 3 Usando o Desktop Sharing 7 3.1 Gerenciando convites do Desktop Sharing........................
Leia maisDiretrizes para determinação de intervalos de comprovação para equipamentos de medição.
Diretrizes para determinação de intervalos de comprovação para equipamentos de medição. De acordo com a Norma NBR 1001, um grande número de fatores influência a freqüência de calibração. Os mais importantes,
Leia mais7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura 7.1 - Exemplo de um grafo linear.
CAPÍTULO 7 7 ANÁLISE DE REDES 7.1 Conceitos Básicos em Teoria dos Grafos Diversos problemas de programação linear, inclusive os problemas de transporte, podem ser modelados como problemas de fluxo de redes.
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisEspecificação Operacional.
Especificação Operacional. Para muitos sistemas, a incerteza acerca dos requisitos leva a mudanças e problemas mais tarde no desenvolvimento de software. Zave (1984) sugere um modelo de processo que permite
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 maisUNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.
UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor. Modelo Cliente/Servidor Por HIARLY ALVES Fortaleza - CE Apresentação. O mais famoso tipo de arquitetura utilizada em redes de computadores
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 maisMANUAL DE UTILIZAÇÃO. Produtos: Saúde Pró Faturamento Saúde Pró Upload. Versão: 20130408-01
Produtos: Saúde Pró Upload Versão: 20130408-01 Sumário 1 APRESENTAÇÃO... 3 2 LOGIN... 4 3 VALIDADOR TISS... 7 4 CONFIGURAÇÃO DO SISTEMA... 10 4.1 DADOS CADASTRAIS MATRIZ E FILIAL... 11 4.2 CADASTRO DE
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 maisSistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery
Sistemas Operacionais Curso Técnico Integrado Profa: Michelle Nery Conteúdo Programático CONTAS DE E GRUPOS DE O Microsoft Management Console - MMC Permissões de Segurança de um Console Contas de Usuários
Leia maisPortal do Projeto Tempo de Ser
Sumário Portal do Projeto Tempo de Ser O que é um Wiki?...2 Documentos...2 Localizando documentos...3 Links...3 Criando um Documento...4 Criando um link...4 Editando um Documento...5 Sintaxe Básica...5
Leia maisProgramação Concorrente
+ XV Jornada de Cursos CITi Programação Concorrente Aula 1 Benito Fernandes Fernando Castor João Paulo Oliveira Weslley Torres + Suposições básicas Conhecimento básico sobre Programação Orientada a Objetos
Leia maisManual do Usuário. Protocolo
Manual do Usuário Protocolo Índice de capítulos Parte I - Processos............................... 01 1 - Buscar................................ 01 2 - Listar................................ 02 3 - Abertura..............................
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 maisManual do Gestor da Informação do Sistema
Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Gestor da Informação do Sistema João Braga
Leia maisSistemas Operativos I
Arquitectura de um Computador Maria João Viamonte / Luis Lino Ferreira Fevereiro de 2006 Sumário Arquitectura de um Computador Estrutura de I/O Estrutura de Armazenamento Hierarquia de Armazenamento Protecção
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 maisImplementando uma Classe e Criando Objetos a partir dela
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe
Leia maisUFG - Instituto de Informática
UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 6 EJB Enterprise Java
Leia maisSimulado Informática Concurso Correios - IDEAL INFO
Simulado Informática Concurso Correios - IDEAL INFO Esta prova de informática é composta por 20 (vinte) questões de múltipla escolha seguindo o molde adotado pela UnB/CESPE. O tempo para a realização deste
Leia maisNo projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.
No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano. Essa estratégia foi deixada para trás. Atualmente, o software de rede é altamente
Leia maisTRANSFERÊNCIA DO REVENDEDOR
TRANSFERÊNCIA DO REVENDEDOR 1. Orientações sobre Transferência de Revendedor 1 1.1Revendedor comunica sua mudança de endereço 1 1.2 Franqueado de origem bloqueia cadastro do Revendedor 1 1.3 Franqueado
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 maishttp://www.matematica.br/programas/icg. 5. Uma lousa denominada EPI (registrador de endereço de próxima instrução).
Universidade de São Paulo Instituto de Matemática e Estatística DCC Leônidas O. Brandão 1 Computador à Gaveta O objetivo deste texto é introduzir os primeiros conceitos de algoritmos a partir de um modelo
Leia maisCarlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br
Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Principais problemas programação concorrente Deadlocks (impasses) Starvation (inanição) Condições de corrida Erros de consistência na
Leia maisGrupos de Processos (Comunicação Grupal)
Grupos de Processos (Comunicação Grupal) Roteiro Definição de Grupos Tipos (organização) de grupos Atomicidade Ordenação de mensagens 2 RPC Comunicação entre Pares (duas partes) Cliente - Servidor Comunicação
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 mais2 Ferramentas Utilizadas
2 Ferramentas Utilizadas Esta dissertação utiliza vários outros trabalhos para implementar os mecanismos de adaptação abordados. Essas ferramentas são descritas nas seções seguintes. 2.1 Lua Lua [7, 8]
Leia maisProcessos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo. http://www.dei.isep.ipp.pt/~orlando/so2/processos.
Página 1 de 5 Processos Consiste num método de descrição das actividades de um sistema operativo; Todo o software incluído no sistema operativo é organizado num grupo de programas executáveis. Cada um
Leia maisGuia de funções do SWCA (System-Wide Call Appearance, Apresentação de chamada em todo o sistema)
Guia de funções do SWCA (System-Wide Call Appearance, Apresentação de chamada em todo o sistema) Nº do componente N0069077 Novembro de 2005 Sobre as teclas do SWCA (System-Wide Call Appearance, Apresentação
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 maisTer o controle das pastas (Prontuários) armazenadas no "SAME", utilizando-se do recurso do "Volume".
Page 1 of 31 184771 Módulo: AMAP - SAME PDA 184771: Controle do Arquivamento de Pastas do SAME. SOLICITAÇÃO DO CLIENTE Ter o controle das pastas (Prontuários) armazenadas no "SAME", utilizando-se do recurso
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 maisMetadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados
1. Introdução O governo é um dos maiores detentores de recursos da informação. Consequentemente, tem sido o responsável por assegurar que tais recursos estejam agregando valor para os cidadãos, as empresas,
Leia maisNORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO
NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO Referência: NT-AI.04.02.01 http://www.unesp.br/ai/pdf/nt-ai.04.02.01.pdf Data: 27/07/2000 STATUS: EM VIGOR A
Leia maisConceitos Básicos de Rede. Um manual para empresas com até 75 computadores
Conceitos Básicos de Rede Um manual para empresas com até 75 computadores 1 Conceitos Básicos de Rede Conceitos Básicos de Rede... 1 A Função de Uma Rede... 1 Introdução às Redes... 2 Mais Conceitos Básicos
Leia maisUnidade 8: Padrão MVC e DAO Prof. Daniel Caetano
Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores
Leia maisGerência do Sistema de Arquivos. Adão de Melo Neto
Gerência do Sistema de Arquivos Adão de Melo Neto 1 Gerência do Sistema de Arquivos Organização dos arquivos Estrutura de diretório Gerência de espaço livre Gerência de alocação de espaços em disco Proteção
Leia mais