17. Estudo de Caso: Velocidade do Ventilador de Resfriamento
Estudo de Caso: Velocidade do
Uma aplicação "clássica" dos princípios de feedback é fornecida pelo ajuste automático das velocidades de ventilador de resfriamento, a �m de manter algum equipamento em uma temperatura desejável — por exemplo, a CPU em um computador ou notebook. Esse sistema já foi apresentado no Capítulo 5. Ao contrário da maioria dos outros exemplos discutidos, neste caso as leis que governam o sistema são conhecidas desde o início. Isso desloca o foco da nossa investigação: em vez de tentar obter uma descrição básica, aproximada da dinâmica, precisamos encontrar valores numéricos para os parâmetros de um modelo existente.
Queremos controlar a velocidade dos ventiladores de resfriamento para manter uma temperatura desejável do componente resfriado. A saída de controle é a temperatura, a entrada de controle é a velocidade do ventilador, que é ajustável continuamente, de modo que podemos tratá-la como um número em ponto �utuante. O calor gerado pela CPU depende de sua "carga", que modelaremos como alterado por degraus �xos em intervalos aleatórios.
Capítulo 5 - Algoritmos gulosos
Algoritmo_Cap05m 15.07.08 9:08 Page 127
Um jogo como xadrez somente pode ser vencido antecipando-se jogadas: um jogador concentrado inteiramente na vantagem imediata é fácil de derrotar. Mas em muitos outros jogos, como, por exemplo, Scrabble (o jogo de palavras cruzadas entre vários jogadores), é possível jogar muito bem simplesmente fazendo o movimento que parece melhor no momento, sem se preocupar muito com as conseqüências futuras.
Esse tipo de comportamento míope é fácil e conveniente, fazendo dele uma estratégia atrativa para algoritmos. Algoritmos gulosos constroem uma solução peça por peça, sempre escolhendo a próxima peça que oferece o benefício mais óbvio e imediato.
Embora uma abordagem como essa possa ser desastrosa para algumas tarefas computacionais, existem muitas para as quais ela é ótima. Nosso primeiro exemplo é o de
árvores espalhadas mínimas.
5.1 Árvores espalhadas mínimas
Suponha que você precise conectar uma coleção de computadores em rede, ligando pares selecionados deles. Isso se traduz em um problema em grafos no qual nós são computadores, arestas não-direcionadas são links em potencial e o objetivo é selecionar um número suficiente dessas arestas para que o grafo seja conexo. Mas não é tudo; cada link também tem um custo de manutenção, refletido no peso daquela aresta. Qual a rede mais barata possível?
Enterprise JavaBeans (EJB) é uma arquitetura de componente do lado do servidor que simplifica o processo de construção de aplicações distribuídas da classe corporativa baseadas em componentes
Java. Utilizando o EJB, você pode escrever aplicações seguras, confiáveis e escaláveis sem escrever sua própria estrutura complexa distribuída baseada em componente. O EJB oferece desenvolvimento rápido de aplicativos para o lado do servidor; você pode rápida e facilmente construir componentes do lado do servidor em Java valendo-se de uma infra-estrutura distribuída pré-escrita fornecida pela indústria. O EJB foi projetado para suportar a portabilidade e a capacidade de reutilização de aplicações entre serviços de middleware corporativos de qualquer fornecedor.
Se você for novo na computação corporativa, esses conceitos serão esclarecidos brevemente. O EJB é um assunto complexo e, portanto, merece uma explicação completa. Neste capítulo, apresentaremos o EJB respondendo as seguintes perguntas:
15.10 Importação de arquivos PDF
No AutoCAD, você pode se conectar diretamente ao Autodesk 360 para compartilhamento de arquivos on-line, sincronização de arquivos e muito mais. O acesso é a partir da barra do InfoCenter, selecionando-se Sign in to Autodesk Account. Se não tiver uma conta, ainda pode criar uma.
Figura 15.30 Menu de conexão com Autodesk 360.
Após entrar na sua conta com seu nome de usuário, são exibidas ferramentas acessíveis pelo menu de barras, incluindo a opção de sincronizar seus ajustes com a nuvem, especificar opções on-line, acessar documentos no Autodesk 360, sair e gerenciar sua conta. No período período em que estiver conectado, seu nome será exibido na parte superior do menu (Figura 15.31).
Figura 15.31 Menu depois da conexão.
Quando você faz o upload de um desenho diretamente do AutoCAD para a nuvem, referências externas e outros arquivos dependentes são automaticamente incluídos no upload.
15.9	Autodesk App Store
Capítulo 2 Metadados: Como Organizar?
KARIN-1 02.indd 15
8/25/05 12:22:50 PM
Atualmente existe uma quantidade enorme de informação disponível na Internet. Para muitos usuários, a maior vantagem da rede é o número de serviços que podem ser acessados de suas casas e escritórios. A Internet de hoje dá acesso a informações financeiras, consultas a grandes bases de dados, compra e venda de ações, livros, eletrodomésticos, leilões, informações meteorológicas e reservas de passagens e hotéis, entre muitas outras opções. As possibilidades parecem infinitas, mas a tecnologia deixa a desejar em um ponto crucial – falta informação sobre a informação. Uma busca por sites para reserva de hotéis, por exemplo, traz como resultado, além dos sites desejados, uma série de "lixos", que não interessam ao usuário que deseja realmente fazer uma reserva. Para melhorar essa situação é preciso indexar os recursos da Internet; em outras palavras, acrescentar elementos que informem que tipo de informação ou serviço é fornecido por aquelas páginas. O que é preciso são Metadados.
Capítulo 2 - Modelos de Sistema
Modelos de arquitetura para sistemas distribuídos
Este capítulo fornece uma explicação sobre maneiras importantes e complementares pelas quais o projeto de sistemas distribuídos pode ser descrito e discutido:
Os modelos físicos consideram os tipos de computadores e equipamentos que constituem um sistema e sua interconectividade, sem os detalhes das tecnologias específicas.
Os modelos de arquitetura descrevem um sistema em termos das tarefas computacionais e de comunicação realizadas por seus elementos computacionais – os computadores individuais ou conjuntos deles interligados por conexões de rede apropriadas. Os modelos cliente-servidor e peer-to-peer são duas das formas mais usadas de arquitetura para sistemas distribuídos.
Os modelos fundamentais adotam uma perspectiva abstrata para descrever soluções para os problemas individuais enfrentados pela maioria dos sistemas distribuídos.
Capítulo 27 - Política Fiscal
Uma dádiva para a
Com a aproximação do prazo final de entrega da declaração de imposto de renda federal de 2008, alguns contribuintes estavam confusos. No início de
2008, muitos formuladores de políticas econômicas tinham ficado receosos de que o lento crescimento da demanda agregada poderia levar a economia norte-americana a entrar em recessão.
Em resposta a isso, o Congresso e o presidente haviam usado a política fiscal discricionária de reduzir o imposto de renda para aumentar os gastos das famílias. Sob essa nova legislação promulgada em fevereiro, a maioria das unidades familiares receberiam uma restituição, o que significa que uma quantia em dinheiro que elas já haviam pagado em impostos retornaria para elas. Contribuintes solteiros receberiam restituições de US$ 600, enquanto contribuintes casados receberiam US$
1.200. Além disso, famílias receberiam restituições adicionais de US$ 300 por filho. Contribuintes com rendas maiores do que US$ 75.000 receberiam menos do que esta quantia total.
Apêndice F: Plano de Gerenciamento de Projeto de Software: O Estudo de Caso da MSG Foundation
O Estudo de Caso da
O plano aqui apresentado se destina ao desenvolvimento do produto da MSG realizado por uma pequena empresa desenvolvedora de software formada por três pessoas: Almaviva, o dono da empresa, e dois engenheiros de software, Bartolo e Cherubini.
1 Visão Geral.
1.1 Resumo do Projeto.
1.1.1 Propósito, Escopo e Objetivos. O objetivo desse projeto é desenvolver um produto de software que vai auxiliar a Martha Stockton Greengage (MSG) Foundation na tomada de decisões referentes a financiamentos imobiliários com hipoteca para casais. O produto permitirá ao cliente acrescentar, modificar ou eliminar informações referentes aos investimentos e às despesas operacionais da fundação bem como às informações de seus mutuários. O produto executará os cálculos necessários nessas áreas e gerará relatórios listando investimentos, financiamentos e despesas operacionais semanais.
Capítulo 6 - Programação dinâmica
Algoritmo_Cap06i 15.07.08 9:25 Page 156
Nos capítulos anteriores vimos alguns princípios elegantes de projeto — tal como divisão-e-conquista, exploração de grafos e escolha gulosa — que levam a algoritmos definitivos para uma variedade de importantes tarefas computacionais. A desvantagem dessas ferramentas é que somente podem ser usadas em tipos muito específicos de problemas. Nós agora nos voltamos para os dois pesos pesados da área de algoritmos, programação dinâmica e programação linear, técnicas de aplicabilidade muito ampla que podem ser invocadas quando métodos mais especializados falham. Previsivelmente, essa generalidade por vezes vem com um custo na eficiência.
6.1 Caminhos mínimos em dags, revisitados
Na conclusão do nosso estudo de caminhos mínimos (Capítulo 4), observamos que o problema é especialmente fácil em grafos direcionados acíclicos (dags). Recapitulemos esse caso, porque ele está no coração de programação dinâmica.
A característica especial que distingue um dag é que seus nós podem ser linearizados, eles podem ser arrumados em uma linha de modo que todas as arestas sigam da esquerda para a direita (Figura 6.1). Para entender de que maneira isso ajuda no assunto caminhos mínimos, suponha que queiramos descobrir as distâncias do nó S para todos os outros nós. Para sermos concretos, vamos nos concentrar no nó D. A única maneira de chegar a ele é pelos seus predecessores B ou C, portanto para encontrarmos o caminho mínimo para D, precisamos apenas comparar estas duas rotas: dist(D) ϭ min{dist(B) ϩ 1, dist(C) ϩ 3}.
herda elementos nem usa métodos getter e setter para os elementos, deve-se esperar que ele utilize um caminho de código não otimizado: o tempo para acessar um elemento de um array assim seria semelhante aos tempos de busca de propriedade de objeto normal.
Um array esparso é aquele no qual os elementos não têm índices contíguos começando em 0. Normalmente, a propriedade length de um array especifica o número de elementos no array. Se o array
é esparso, o valor da propriedade length é maior do que o número de elementos. Os arrays esparsos podem ser criados com a construtora Array() ou simplesmente pela atribuição de um índice de array maior do que a propriedade length atual do array. a = new Array(5); a = []; a[1000] = 0;
// Nenhum elemento, mas a.length é 5.
// Cria um array sem elementos e comprimento = 0.
// A atribuição adiciona um elemento, mas configura o comprimento
//como 1001.
Parte II - Capítulo 5 - Processo
Processo ff 5.1 Introdução
A gerência de um ambiente multiprogramável é função exclusiva do sistema operacional que deve controlar a execução dos diversos programas e o uso concorrente do processador e demais recursos. Para isso, um programa ao ser executado deve estar sempre associado a um processo.
A gerência de processos é uma das principais funções de um sistema operacional, possibilitando aos programas alocar recursos, compartilhar dados, trocar informações e sincronizar suas execuções. Nos sistemas multiprogramáveis os processos são executados concorrentemente, compartilhando o uso do processador, memória principal e dispositivos de E/S, dentre outros recursos. Nos sistemas com múltiplos processadores não só existe a concorrência de processos pelo uso do processador como também a possibilidade de execução simultânea de processos nos diferentes processadores.
Neste capítulo serão abordados os principais conceitos relacionados a processos, como sua estrutura, estados de execução, tipos de processos e sinais.