segunda-feira, 14 de junho de 2010

Máquina Virtual

Uma máquina virtual (Virtual Machine – VM) pode ser definida como “uma duplicata eficiente e isolada de uma máquina real”.

Máquinas virtuais são extremamente úteis no dia-a-dia, pois permitem ao usuário rodar outros sistemas operacionais dentro de uma janela, tendo acesso a todos os softwares que precisa.

Definição
O termo máquina virtual foi descrito na década de 1960 utilizando um termo de sistema operacional: uma abstração de software que enxerga um sistema físico (máquina real). Com o passar dos anos, o termo englobou um grande número de abstrações – por exemplo, Java Virtual Machine – JVM que não virtualiza um sistema real.

Ao invés de ser uma máquina real, isto é, um computador real feito de hardware e executando um sistema operacional específico, uma máquina virtual é um computador fictício criado por um programa de simulação. Sua memória, processador e outros recursos são virtualizados. A virtualização é a interposição do software (máquina virtual) em várias camadas do sistema. É uma forma de dividir os recursos de um computador em múltiplos ambientes de execução.

Os emuladores são máquinas virtuais que simulam computadores reais. São bastante conhecidos os emuladores de vídeogames antigos e os emuladores de microcomputadores, como o VMware, o Bochs e o VirtualBox, software livre da Sun Microsystems.

Tipos
As máquinas virtuais podem ser divididas em dois tipos:
- Tipo 1: Sistema em que o monitor é implementado entre o hardware e os sistemas convidados (guest system).
- Tipo 2: Nele o monitor é implementado como um processo de um sistema operacional real, denominado sistema anfitrião (host system).

Tipos Híbridos: Os monitores de tipo 1 e 2 raramente são usados em sua forma conceitual em implementações reais. Na prática, várias otimizações são inseridas nas arquiteturas apresentadas, com o objetivo principal de melhorar o desempenho das aplicações nos sistemas convidados. Como os pontos cruciais do desempenho dos sistemas de máquinas virtuais são as operações de I/O, as principais otimizações utilizadas em sistemas de produção dizem respeito a essas operações.

Outra importante categoria de máquinas virtuais são as máquinas virtuais para computadores fictícios projetados para uma finalidade específica. Atualmente a mais importante máquina virtual desta família é a JVM (máquina virtual Java). Existem simuladores para ela em quase todos os computadores atuais, desde computadores de grande porte até telefones celulares, o que torna as aplicações Java extremamente portáveis.

Uma importante vantagem sem duvida de se escrever código para uma máquina virtual é a de se poder compilar o código sem que seja perdida a portabilidade, melhorando-se a velocidade em relação à programação interpretada, que também é portátil, porém mais lenta, já que neste caso cada linha será traduzida e executada em tempo de execução, e no caso da máquina virtual cada mnemônico da máquina virtual é convertido no equivalente em linguagem de máquina (ou assembly) da máquina real.

Vantagens
- Facilita o aperfeiçoamento e testes de novos sistemas operacionais.
- Possibilita a comparação de vários sistemas operacionais utilizando o mesmo equipamento.
- Executa diferentes sistemas operacionais sobre o mesmo hardware, simultaneamente.
- Simula alterações e falhas no hardware para testes ou reconfiguração de um sistema operacional, provendo confiabilidade e escalabilidade para as aplicações.
- Diminuição de custos com hardware.
- Facilidades no gerenciamento, migração e replicação de computadores, aplicações ou sistemas operacionais.
- Confiança e disponibilidade: A falha de um software não prejudica os demais serviços.

Desvantagens
- Gerenciamento: Os ambientes virtuais necessitam ser, monitorados, configurados e salvos . Existem produtos que fornecem essas soluções, mas esse é o campo no qual estão os maiores investimentos na área de virtualização, justamente por se tratar de um dos maiores contratempos na implementação da virtualização.

- Desempenho: Atualmente, não existem métodos consolidados para medir o desempenho de ambientes virtualizados. No entanto, a introdução de uma camada extra de software entre o sistema operacional e o hardware, o VMM ou hypervisor, gera um custo de processamento superior ao que se teria sem a virtualização. Outro ponto importante de ressaltar é que não se sabe exatamente quantas máquinas virtuais podem ser executadas por processador, sem que haja o prejuízo da qualidade de serviço.

Segurança
Embora a máquina necessite do sistema real para sua inicialização, trabalha de maneira independente como se fosse outro computador, isto requer também um sistema de segurança independente, ou seja, a ocorrência de infecção por vírus na máquina virtual não afeta a máquina real.

domingo, 13 de junho de 2010

Banco de Dados

Banco de dados (ou base de dados), é um conjunto de registros dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados normalmente agrupa registros utilizáveis para um mesmo fim.

Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD). Normalmente um SGBD adota um modelo de dados, de forma pura, reduzida ou estendida. Muitas vezes o termo banco de dados é usado, de forma errônea, como sinônimo de SGDB.

O modelo de dados mais adotado hoje em dia é o modelo relacional, onde as estruturas têm a forma de tabelas, compostas por tuplas (linhas) e colunas.
Um Sistema de Gestão de Bases de Dados, (SGBD) não é nada mais do que um conjunto de programas que permitem armazenar, modificar e extrair informação de um banco de dados. Há muito tipos diferentes de SGBD. Desde pequenos sistemas que funcionam em computadores pessoais a sistemas enormes que estão associados a mainframes.

Um Sistema de Gestão de Base de Dados implica a criação e manutenção de bases de dados, elimina a necessidade de especificação de definição de dados, age como interface entre os programas de aplicação e os ficheiros de dados físicos e separa as visões lógica e de concepção dos dados. Assim sendo, são basicamente três as componentes de um SGBD:
- Linguagem de definição de dados (especifica conteúdos, estrutura a base de dados e define os elementos de dados);
- Linguagem de manipulação de dados (para poder alterar os dados na base);
- Dicionário de dados (guarde definições de elementos de dados e respectivas características – descreve os dados, quem os acede, etc. [questões de informação]).

Utilização
Os bancos de dados são utilizados em muitas aplicações, abrangendo praticamente todo o campo dos programas de computador. Os bancos de dados são o método de armazenamento preferencial e baseiam-se em tecnologias padronizadas de bancos de dados.
Um banco de dados é um conjunto de informações com uma estrutura regular. Um banco de dados é normalmente, mas não necessariamente, armazenado em algum formato de máquina legível para um computador. Há uma grande variedade de bancos de dados, desde simples tabelas armazenadas em um único arquivo até gigantescos bancos de dados com muitos milhões de registos, armazenados em salas cheias de discos rígidos.

Apresentação dos dados
A apresentação dos dados geralmente é semelhante à de uma planilha eletrônica, porém os sistemas de gestão de banco de dados possuem características especiais para o armazenamento, classificação, gestão da integridade e recuperação dos dados. Com a evolução de padrões de conectividade entre as tabelas de um banco de dados e programas desenvolvidos em linguagens como Java, Delphi, Visual Basic, C++ etc, a apresentação dos dados, bem como a navegação, passou a ser definida pelo programador ou o designer de aplicações. Como hoje em dia a maioria das linguagens de programação fazem ligações a bancos de dados, a apresentação destes tem ficado cada vez mais a critério dos meios de programação, fazendo com que os bancos de dados deixem de restringir-se às pesquisas básicas, dando lugar ao compartilhamento, em tempo real, de informações, mecanismos de busca inteligentes e permissividade de acesso hierarquizada.

Direitos de propriedade
A Directiva CE de Bases de Dados (EU Database Directive), estabelecida pelo Parlamento Europeu em de 11 de março de 1996, fixa os termos de protecção jurídica e fisica do sitema de bancos de dados, em particular os direitos de propriedade sobre a base.
Mesmo para os países que não a adoptam explicitamente, ou não possuam normas mais específicas sobre o tema, como o Brasil, tem sido a principal referência.

Visão de negócio
Todas as organizações têm quantidades, por vezes, astronómicas de dados e informação que têm de armazenar. Contudo, o papel tem problemas ao nível da persistência (tempo e tipo de visualização) e da recuperação (validação e verificação), ou seja, dura pouco. Neste sentido, torna-se mais fácil encontrar a informação numa base de dados que recorre a uma das tecnologias de informação de maior sucesso. Ou seja, as bases de dados estendem a função do papel ao guardar a informação em computadores. Qualquer empresa que pretenda garantir um controlo efectivo sobre todo o seu negócio, tem obrigatoriamente de recorrer a sistemas de gestão de bases de dados.
O Microsoft Excel continua a ser uma ferramenta de controle extremamente poderosa porque consegue operacionalizar os dados e assim criar informação útil ao planeamento diário das empresas. Contudo, existem outro tipo de ferramentas, mais completas e com funcionalidades acrescidas que elevam para outros níveis, a capacidade operacional de gerar informação de valor para a organização.

Modelos de base de dados
- O modelo plano (ou tabular) consiste de matrizes simples, bidimensionais, compostas por elementos de dados: inteiros, números reais, etc. Este modelo plano é a base das planilhas eletrônicas.

- O modelo em rede permite que várias tabelas sejam usadas simultaneamente através do uso de apontadores (ou referências). Algumas colunas contêm apontadores para outras tabelas ao invés de dados. Assim, as tabelas são ligadas por referências, o que pode ser visto como uma rede. Uma variação particular deste modelo em rede, o modelo hierárquico, limita as relações a uma estrutura semelhante a uma árvore (hierarquia - tronco, galhos), ao invés do modelo mais geral direcionado por grafos.

Bases de dados relacionais consistem, principalmente de três componentes:
- Uma coleção de estruturas de dados, nomeadamente relações, ou informalmente tabelas;
- Uma coleção dos operadores, a álgebra e o cálculo relacionais;
- Uma coleção de restrições da integridade, definindo o conjunto consistente de estados de base de dados e de alterações de estados.

As restrições de integridade podem ser de quatro tipos:
- Domínio (também conhecidas como type);
- Atributo;
- Relvar (variável relacional);
- Restrições de base de dados.

Diferentemente dos modelos hierárquico e de rede, não existem quaisquer apontadores, de acordo com o Princípio de Informação: toda informação tem de ser representada como dados; qualquer tipo de atributo representa relações entre conjuntos de dados. As bases de dados relacionais permitem aos utilizadores (incluindo programadores) escreverem consultas (queries) que não foram antecipadas por quem projetou a base de dados. Como resultado, bases de dados relacionais podem ser utilizadas por várias aplicações em formas que os projetistas originais não previram, o que é especialmente importante em bases de dados que podem ser utilizadas durante décadas. Isto tem tornado as bases de dados relacionais muito populares no meio empresarial.

- O modelo relacional é uma teoria matemática desenvolvida por Edgard Frank Codd, matemático e pesquisador da IBM, para descrever como as bases de dados devem funcionar. Embora esta teoria seja a base para o software de bases de dados relacionais, muito poucos sistemas de gestão de bases de dados seguem o modelo de forma restrita ou a pé da letra - lembre-se das 13 leis do modelo relacional - e todos têm funcionalidades que violam a teoria, desta forma variando a complexidade e o poder. A discussão se esses bancos de dados merecem ser chamados de relacional ficou esgotada com o tempo, com a evolução dos bancos existentes. Os bancos de dados hoje implementam o modelo definido como objeto-relacional.

Aplicações de bancos de dados
Sistemas Gerenciadores de Bancos de dados são usados em muitas aplicações, enquanto atravessando virtualmente a gama inteira de software de computador. Os Sistemas Gerenciadores de Bancos de dados são o método preferido de armazenamento/recuperação de dados/informações para aplicações multi-usuárias grandes onde a coordenação entre muitos usuários é necessária. Até mesmo usuários individuais os acham conveniente, entretanto, muitos programas de correio eletrônico e organizadores pessoais estão baseados em tecnologia de banco de dados standard.

Aplicativo de Banco de Dados
Um Aplicativo de Banco de dados é um tipo de software exclusivo para gerenciar um banco de dados. Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e objectivos, de pequenas ferramentas como uma agenda, até complexos sistemas empresariais para desempenhar tarefas como a contabilidade.
O termo "Aplicativo de Banco de dados" usualmente se refere a softwares que oferecem uma interface para o banco de dados. O software que gerencia os dados é geralmente chamado de sistema gerenciador de banco de dados (SGBD) ou (se for embarcado) de "database engine".
Exemplos de aplicativos de banco de dados são Microsoft Visual FoxPro, Microsoft Access, dBASE, FileMaker, (em certa medida) HyperCard, MySQL,Intpró, PostgreSQL, Firebird, Microsoft SQL Server, Oracle, Informix, DB2, Caché e Sybase.
Em Março, 2004, AMR Research (como citado em um artigo da CNET News.com listado na secção de "Referências") previu que aplicações de banco de dados de código aberto seriam amplamente aceitas em 2006.

Transação
É um conjunto de procedimentos que é executado num banco de dados, que para o usuário é visto como uma única ação.
A integridade de uma transação depende de 4 propriedades, conhecidas como ACID.

• Atomicidade
o Todas as ações que compõem a unidade de trabalho da transação devem ser concluídas com sucesso, para que seja efetivada. Qualquer ação que constitui falha na unidade de trabalho, a transação deve ser desfeita (rollback). Quando todas as ações são efetuadas com sucesso, a transação pode ser efetivada (commit).

• Consistência
o Nenhuma operação do banco de dados de uma transação pode ser parcial.O status de uma transação deve ser implementado na íntegra. Por exemplo, um pagamento de conta não pode ser efetivado se o processo que debita o valor da conta corrente do usuário não for efetivado antes, nem vice-versa.

• Isolamento
o Cada transação funciona completamente à parte de outras estações. Todas as operações são parte de uma transação única. O principio é que nenhuma outra transação, operando no mesmo sistema, pode interferir no funcionamento da transação corrente(é um mecanismo de controle). Outras transações não podem visualizar os resultados parciais das operações de uma transação em andamento.

• Durabilidade
o Significa que os resultados de uma transação são permanentes e podem ser desfeitos somente por uma transação subseqüente.Por exemplo: todos os dados e status relativos a uma transação devem ser armazenados num repositório permanente, não sendo passíveis de falha por uma falha de hardware.

Na prática, alguns SGBDs relaxam na implementação destas propriedades buscando desempenho.

Controle de concorrência é um método usado para garantir que as transações sejam executadas de uma forma segura e sigam as regras ACID. Os SGBD devem ser capazes de assegurar que nenhuma ação de transações completadas com sucesso (committed transactions) seja perdida ao desfazer transações abortadas (rollback).

Uma transação é uma unidade que preserva consistência. Requeremos, portanto, que qualquer escalonamento produzido ao se processar um conjunto de transações concorrentemente seja computacionalmente equivalente a um escalonamento produzindo executando essas transações serialmente em alguma ordem. Diz-se que um sistema que garante esta propriedade assegura a seriabilidade.

Segurança em banco de dados
Os bancos de dados são utilizados para armazenar diversos tipos de informações, desde dados sobre uma conta de e-mail até dados importantes da Receita Federal.
Para tal existem diversos tipos, os quais variam em complexidade e sobretudo em segurança.
- Criptografia
- Senhas
- Backup

Funções internas comuns em BDs
- Tabelas
- Regras
- Procedimentos armazenados (mais conhecidos como stored procedures)
- Gatilho
- Default
- Visão
- Índice
- Generalizadores

segunda-feira, 7 de junho de 2010

Cópia de Segurança

Em informática, cópia de segurança (em inglês: backup) é a cópia de dados de um dispositivo de armazenamento a outro para que possam ser restaurados em caso da perda dos dados originais, o que pode envolver apagamentos acidentais ou corrupção de dados.

Meios difundidos de cópias de segurança incluem CD-ROM, DVD, disco rígido, disco rígido externo (compatíveis com USB), fitas magnéticas e a cópia de segurança externa (online). Esta transporta os dados por uma rede como a Internet para outro ambiente, geralmente para equipamentos mais sofisticados, de grande porte e alta segurança. Outra forma pouco difundida de cópia de segurança é feita via rede. Na própria rede local de computadores, o administrador ou o responsável pela cópia de segurança grava os dados em um formato de arquivo, processa e distribui as partes constituintes da cópia nos computadores da rede, de forma segura (arquivos são protegidos), criptografada (para não haver extração ou acesso aos dados na forma original) e oculta (na maioria das vezes o arquivo é ocultado).

Cópias de segurança são geralmente confundidas com arquivos e sistemas tolerantes a falhas. Diferem de arquivos pois enquanto arquivos são cópias primárias dos dados, cópias de segurança são cópias secundárias dos dados. Diferem de sistemas tolerantes a falhas pois cópias de segurança assumem que a falha causará a perda dos dados, enquanto sistemas tolerantes a falhas assumem que a falha não causará.

As cópias de segurança devem obedecer vários parâmetros, tais como: o tempo de execução, a periodicidade, a quantidade de exemplares das cópias armazenadas, o tempo que as cópias devem ser mantidas, a capacidade de armazenamento, o método de rotatividade entre os dispositivos, a compressão e criptografia dos dados. Assim, a velocidade de execução da cópia deve ser aumentada tanto quanto possível para que o grau de interferência desse procedimento nos serviços seja mínimo. A periodicidade deve ser analisada em função da quantidade de dados alterados na organização, no entanto se o volume de dados for elevado, as cópias devem ser diárias. Deve-se estabelecer um horário para realização da cópia, conforme a laboração da organização, devendo ser preferencialmente nocturno. Para uma fácil localização, a cópia deve ser guardada por data e categoria, em local seguro.

Armazenamento
Modelos de repositórios
Qualquer estratégia de cópia de segurança inicia com um conceito de repositório dos dados.

Num modelo não estruturado, o repositório pode ser armazenado em mídias de armazenamento com informações mínimas sobre o que e quando foi armazenado. Apesar da simplicidade de implementação, torna-se difícil recuperar as informações caso necessário.

Já um repositório global e incremental armazena várias cópias do dado. Originalmente, uma cópia de segurança completa é feita, de todos os arquivos. Posteriormente, cópias incrementais podem ser feitas, somente dos arquivos que foram modificados desde a última iteração de cópia incremental ou completa. Restaurar o sistema a um certo momento requer localizar a cópia completa obtida antes do momento dado e todas as cópias incrementais realizadas entre a cópia completa e o momento. Esse modelo oferece um alto nível de segurança de recuperação, e pode ser usado com diferentes tipos de dispositivos de armazenamento. Por outro lado, desvantagens incluem lidar com diferentes cópias incrementais e altos requisitos de armazenamento.

Num repositório global e diferencial, após a cópia de segurança completa ser feita, cada cópia diferencial captura todos os arquivos criados ou modificados desde a cópia completa, apesar de alguns já poderem ter sido incluídos numa cópia diferencial anterior. Sua vantagem é que a restauração envolve recuperar somente a última cópia de segurança completa e a última cópia diferencial.

Um repositório mirror (espelho) e rsync (reversamente incremental) é similar ao global e incremental, mas difere na medida que oferece uma cópia que reflete o estado dos dados da última cópia de segurança e a história reversa das cópias incrementais. Um benefício é requerer somente uma cópia completa. Cada cópia incremental é imediatamente aplicada à cópia espelho e os arquivos que ela modifica são movidos para a cópia reversamente incremental. Esse modelo não é adequado para dispositivos de armazenamento removíveis pois cada cópia de segurança deve ser feita comparando-se com a cópia espelho.

Já num modelo de proteção contínua dos dados, o sistema registra imediatamente cada mudança nos dados, o que é geralmente feito diferenças de bytes ou blocos de bytes e não de arquivos.

Dispositivo
Além do modelo de repositório, os dados devem ser armazenados num dispositivo de armazenamento determinado.

Fitas magnéticas são há tempos o meio mais comum, tendo uma relação de capacidade por custo maior do que discos rígidos. Por ter o acesso sequencial, o tempo de acesso aos dados é grande, mas o desempenho da escrita e leitura contínua pode ser favorável. Entretanto, a capacidade e o preço dos discos rígidos vêm melhorando, tornando-os competitivos em relação às fitas. Suas vantagens são o tempo de acesso, a disponibilidade, a capacidade e a facilidade de uso. Discos rígidos externos pode ser conectados através de interfaces locais como SCSI, USB, FireWire ou eSATA, ou interfaces remotas como Ethernet, iSCSI ou Fibre Channel.

Outra opção são discos ópticos. Por exemplo, a vantagem do CD é que ele pode ser restaurado em qualquer máquina com um leitor de CD-ROM, e as mídias são relativamente baratas. Diversos formatos de discos ópticos permitem somente uma gravação dos dados, mais adequado para cópias de segurança. Tecnologias recentes como o Blu-ray aumentaram consideravelmente a capacidade de armazenamento, ainda que também aumentando os custos.

Durante a década de 1980 e o começo da década de 1990, a cópia pessoal de segurança estava associada ao uso de disquetes, que acabaram se tornando obsoletos devido a baixa capacidade de armazenamento.

Dispositivos SSD como memória flash, USB flash drive, CompactFlash, SmartMedia, Memory Stick e Secure Digital Card são relativamente caros para sua baixa capacidade, mas oferecem grande portabilidade e facilidade de uso.

Por fim, há a opção de armazenamento remoto, que está ganhando popularidade com a banda larga. Garante muita segurança para os dados, mas uma desvantagem e a baixa velocidade de conexão pela Internet em relação aos dispositivos apresentados anteriormente, o que pode se tornar relevante no caso de grande volume de dados. Um risco associado é delegar o controle da cópia de segurança a outros.

Tipos de backup
O utilitário de backup oferece suporte a sete métodos para backup de dados no computador ou na rede.

Backup de Cópia
Um backup de cópia copia todos os arquivos selecionados, mas não os marca como arquivos que passaram por backup (ou seja, o atributo de arquivo não é desmarcado). A cópia é útil caso você queira fazer backup de arquivos entre os backups normal e incremental, pois ela não afeta essas outras operações de backup.

Backup Diário
Um backup diário copia todos os arquivos selecionados que foram modificados no dia de execução do backup diário. Os arquivos não são marcados como arquivos que passaram por backup (o atributo de arquivo não é desmarcado).

Backup Diferencial
Um backup diferencial copia arquivos criados ou alterados desde o último backup normal ou incremental. Não marca os arquivos como arquivos que passaram por backup (o atributo de arquivo não é desmarcado). Se você estiver executando uma combinação dos backups normal e diferencial, a restauração de arquivos e pastas exigirá o último backup normal e o último backup diferencial.

Backup Incremental
Um backup incremental copia somente os arquivos criados ou alterados desde o último backup normal ou incremental. e os marca como arquivos que passaram por backup (o atributo de arquivo é desmarcado). Se você utilizar uma combinação dos backups normal e incremental, precisará do último conjunto de backup normal e de todos os conjuntos de backups incrementais para restaurar os dados.

Backup Normal
Um backup normal copia todos os arquivos selecionados e os marca como arquivos que passaram por backup (ou seja, o atributo de arquivo é desmarcado). Com backups normais, você só precisa da cópia mais recente do arquivo ou da fita de backup para restaurar todos os arquivos. Geralmente, o backup normal é executado quando você cria um conjunto de backup pela primeira vez.

Cold Backup
Um backup realizado com o banco de dados offline, ou seja, consistente. Pode ser feito de modo automático através do RMAN(Recovery Manager) ou através de scripts shell (Linux/Unix) ou batch (Windows), onde para o formato manual do backup, pode envolver a cópia até mesmo dos arquivos de redo log, no RMAN não é necessário. É muito interessante ter um cold backup na sua estratégia de backup.

Hot Backup
Um backup realizado com o banco de dados online, ou seja inconsistente. O backup HOT é um dos principais tipos de backup realizados nos ambientes de produção, pois não é necessário a parada do banco de dados, quando está em modo ARCHIVELOG, porém,uma estratégia de backup HOT pode envolver a utilização de npiveis de backups incrementais, como:

- Backup incremental nível 0, ou backup base;
- Backup incremental nível 1,2,3, e 4.

Ao colocar esses níveis de backup na sua estratégia, irá ganhar performance, redução de volumetria de backup gerado e aumentar o nível de disponibilidade dos dados, dando mais eficiência para a recuperação.

O backup dos dados que utiliza uma combinação de backups normal e incremental exige menos espaço de armazenamento e é o método mais rápido. No entanto, a recuperação de arquivos pode ser difícil e lenta porque o conjunto de backup pode estar armazenado em vários discos ou fitas.

O backup dos dados que utiliza uma combinação dos backups normal e diferencial é mais longo, principalmente se os dados forem alterados com freqüência, mas facilita a restauração de dados, porque o conjunto de backup geralmente é armazenado apenas em alguns discos ou fitas.

Recuperação
Na eventualidade de ocorrência de incidente, os dados devem ser repostos, recorrendo então à informação armazenada na cópia de segurança. A recuperação dos dados deverá ser efectuada rapidamente e de forma eficiente, para que os serviços não se encontrem inactivos por muito tempo. A prioridade da reposição dos dados deve ser estabelecida, conforme as necessidades da organização.

quinta-feira, 27 de maio de 2010

Sistemas ERP

ERP (Enterprise Resource Planning) ou SIGE (Sistemas Integrados de Gestão Empresarial, no Brasil) são sistemas de informação que integram todos os dados e processos de uma organização em um único sistema. A integração pode ser vista sob a perspectiva funcional (sistemas de: finanças, contabilidade, recursos humanos, fabricação, marketing, vendas, compras, etc.) e sob a perspectiva sistêmica (sistema de processamento de transações, sistemas de informações gerenciais, sistemas de apoio a decisão, etc.).

Os ERPs em termos gerais são uma plataforma de software desenvolvida para integrar os diversos departamentos de uma empresa, possibilitando a automação e armazenamento de todas as informações de negócios.

A importância do ERP nas corporações
Entre as mudanças mais palpáveis que um sistema de ERP propicia a uma corporação, sem dúvida, está a maior confiabilidade dos dados, agora monitorados em tempo real, e a diminuição do retrabalho. Algo que é conseguido com o auxílio e o comprometimento dos funcionários, responsáveis por fazer a atualização sistemática dos dados que alimentam toda a cadeia de módulos do ERP e que, em última instância, fazem com que a empresa possa interagir. Assim, as informações trafegam pelos módulos em tempo real, ou seja, uma ordem de vendas dispara o processo de fabricação com o envio da informação para múltiplas bases, do estoque de insumos à logística do produto. Tudo realizado com dados orgânicos, integrados e não redundantes.

Para entender melhor como isto funciona, o ERP pode ser visto como um grande banco de dados com informações que interagem e se realimentam. Assim, o dado inicial sofre uma mutação de acordo com seu status, como a ordem de vendas que se transforma no produto final alocado no estoque da companhia.

Ao desfazer a complexidade do acompanhamento de todo o processo de produção, venda e faturamento, a empresa tem mais subsídios para se planejar, diminuir gastos e repensar a cadeia de produção. Um bom exemplo de como o ERP revoluciona uma companhia é que com uma melhor administração da produção, um investimento, como uma nova infra-estrutura logística, pode ser repensado ou simplesmente abandonado. Neste caso, ao controlar e entender melhor todas as etapas que levam a um produto final, a companhia pode chegar ao ponto de produzir de forma mais inteligente, rápida e melhor, o que, em outras palavras, reduz o tempo que o produto fica parado no estoque.

A tomada de decisões também ganha outra dinâmica. Imagine uma empresa que por alguma razão, talvez uma mudança nas normas de segurança, precise modificar aspectos da fabricação de um de seus produtos. Com o ERP, todas as áreas corporativas são informadas e se preparam de forma integrada para o evento, das compras à produção, passando pelo almoxarifado e chegando até mesmo à área de marketing, que pode assim ter informações para mudar algo nas campanhas publicitárias de seus produtos. E tudo realizado em muito menos tempo do que seria possível sem a presença do sistema.

De acordo com a empresa é possível direcionar ou adaptar o ERP para outros objetivos, estabelecendo prioridades que podem tanto estar na cadeia de produção quanto no apoio ao departamento de vendas como na distribuição, entre outras. Com a capacidade de integração dos módulos, é possível diagnosticar as áreas mais e menos eficientes e focar em processos que possam ter o desempenho melhorado com a ajuda do conjunto de sistemas.

Vantagens do ERP
Algumas das vantagens da implementação de um ERP em uma empresa são:
- Eliminar o uso de interfaces manuais;
- Reduzir custos;
- Otimizar o fluxo da informação e a qualidade da mesma dentro da organização (eficiência);
- Otimizar o processo de tomada de decisão;
- Eliminar a redundância de atividades;
- Reduzir os limites de tempo de resposta ao mercado;
- Reduzir as incertezas do Lead time;
- Incorporação de melhores práticas (codificadas no ERP) aos processos internos da empresa.

Desvantagens do ERP
Algumas das desvantagens da implementação de um ERP em uma empresa são:
- A utilização do ERP por si só não torna uma empresa verdadeiramente integrada;
- Altos custos que muitas vezes não comprovam a relação custo/benefício;
- Dependência do fornecedor do pacote;
- Adoção de melhores práticas aumenta o grau de imitação e padronização entre as empresas de um segmento;
- Torna os módulos dependentes uns dos outros, pois cada departamento depende das informações do módulo anterior, por exemplo. Logo, as informações têm que ser constantemente atualizadas, uma vez que as informações são em tempo real, ocasionando maior trabalho.

Uso do software
Um dos pontos fortes do sistema é a integração entre os módulos. Os monitores, as operações e a navegação dentro do sistema são de tal forma padronizadas que, à medida que o utilizador se familiariza com um módulo, aprende mais facilmente e rapidamente os demais. Os acessos às informações são realizados através de menus com utilização de senhas, permitindo que se controle quais os utilizadores que têm acesso a que tipo de informações. Além disso, os menus são customizados de forma que cada utilizador visualize e tenha acesso somente às operações que atendam aos objetivos específicos de seu interesse.

ERP comerciais
Os maiores fornecedores de sistemas ERPs são: SAP (Alemã) e Oracle(USA).

ERP livres
Existem diversos sistemas de ERP como software livre, como por exemplo, a Stoq e a OpenERP.

Modelo Cliente-Servidor

Cliente-servidor é um modelo computacional que separa clientes e servidores, sendo interligados entre si geralmente utilizando-se uma rede de computadores. Cada instância de um cliente pode enviar requisições de dados para algum dos servidores conectados e esperar pela resposta. Por sua vez, algum dos servidores disponíveis pode aceitar tais requisições, processá-las e retornar o resultado para o cliente. Apesar do conceito ser aplicado em diversos usos e aplicações, a arquitetura é praticamente a mesma.

Muitas vezes os clientes e servidores se comunicam através de uma rede de computador com hardwares separados, mas o cliente e servidor podem residir no mesmo sistema. A máquina servidor é um host que está executando um ou mais programas de servidor que partilham os seus recursos com os clientes.

Um cliente não compartilha de seus recursos, mas solicita o conteúdo de um servidor ou função de serviço. Os clientes, portanto, iniciam sessões de comunicação com os servidores que esperam as solicitações de entrada.

Descrição
A característica de cliente-servidor, descreve a relação de programas em um aplicativo. O componente de servidor fornece uma função ou serviço a um ou muitos clientes, que iniciam os pedidos de serviços.

Funções como a troca de e-mail, acesso à internet e acessar banco de dados, são construídos com base no modelo cliente-servidor. Por exemplo, um navegador da web é um programa cliente em execução no computador de um usuário que pode acessar informações armazenadas em um servidor web na Internet. Usuários de serviços bancários acessando do seu computador usam um cliente navegador da Web para enviar uma solicitação para um servidor web em um banco. Esse programa pode, por sua vez encaminhar o pedido para o seu próprio programa de banco de dados do cliente que envia uma solicitação para um servidor de banco de dados em outro computador do banco para recuperar as informações da conta. O saldo é devolvido ao cliente de banco de dados do banco, que por sua vez, serve-lhe de volta ao cliente navegador exibindo os resultados para o usuário.

O modelo cliente-servidor, se tornou uma das idéias centrais de computação de rede. Muitos aplicativos de negócios a serem escrito hoje utilizam o modelo cliente-servidor. Em marketing, o termo tem sido utilizado para distinguir a computação distribuída por pequenas dispersas computadores da "computação" monolítica centralizada de computadores mainframe.

Cada instância de software do cliente pode enviar requisições de dados a um ou mais servidores ligados. Por sua vez, os servidores podem aceitar esses pedidos, processá-los e retornar as informações solicitadas para o cliente. Embora este conceito possa ser aplicado para uma variedade de razões para diversos tipos de aplicações, a arquitetura permanece fundamentalmente a mesma.

Características do Cliente
- Sempre inicia pedidos de servidores;
- Espera por respostas;
- Recebe respostas;
- Normalmente, se conecta a um pequeno número de servidores de uma só vez;
- Normalmente, interage diretamente com os usuários finais através de qualquer interface com o usuário , como interface gráfica do usuário.

Características do Servidor
- Sempre esperar por um pedido de um dos clientes;
- Serve os clientes pedidos, em seguida, responde com os dados solicitados aos clientes;
- Um servidor pode se comunicar com outros servidores, a fim de atender uma solicitação do cliente.

Vantagens
-Na maioria dos casos, a arquitetura cliente-servidor permite que os papéis e responsabilidades de um sistema de computação para ser distribuído entre vários computadores independentes que são conhecidos por si só através de uma rede. Isso cria uma vantagem adicional para essa arquitetura: maior facilidade de manutenção. Por exemplo, é possível substituir, reparar, atualizar ou mesmo realocar um servidor de seus clientes, enquanto continuam a ser a consciência e não afetado por essa mudança;
- Todos os dados são armazenados nos servidores, que geralmente possuem controles de segurança muito maior do que a maioria dos clientes. Servidores podem controlar melhor o acesso e recursos, para garantir que apenas os clientes com as permissões adequadas podem acessar e alterar dados;
- Desde o armazenamento de dados é centralizada, as atualizações dos dados são muito mais fáceis de administrar, em comparação com o paradigma P2P, onde uma arquitetura P2P, atualizações de dados podem precisar ser distribuída e aplicada a cada ponto na rede, que é o time-consuming é passível de erro, como pode haver milhares ou mesmo milhões de pares;
- Muitas tecnologias avançadas de cliente-servidor já estão disponíveis, que foram projetadas para garantir a segurança, facilidade de interface do usuário e facilidade de uso;
- Funciona com vários clientes diferentes de capacidades diferentes.

Desvantagens
- Redes de tráfego de bloqueio é um dos problemas relacionados com o modelo cliente-servidor. Como o número de solicitações simultâneas de cliente para um determinado servidor, o servidor pode ficar sobrecarregado;
- O paradigma cliente-servidor não tem a robustez de uma rede P2P. Sob cliente-servidor, se um servidor crítico falhar, os pedidos dos clientes não podem ser cumpridos. Em redes P2P, os recursos são normalmente distribuídos entre vários nós. Mesmo se um ou mais nós partem e abandonam baixar um arquivo, por exemplo, os nós restantes ainda deve ter os dados necessários para completar o download.

Protocolos de transporte e aplicações de rede
Os protocolos do nível de transporte fornecem serviços que garantem uma transferência confiável de dados e aplicativos entre computadores (ou outros equipamentos) remotos. Os programas na camada de aplicação usam os protocolos de transporte para contactar outras aplicações. Para isso, a aplicação interage com o software do protocolo antes de ser feito o contacto. A aplicação que aguarda a conexão informa ao software do protocolo local que está pronta a aceitar mensagem. A aplicação que estabelece a conexão usa os protocolos de transporte e rede para contactar o sistema que aguarda. As mensagens entre as duas aplicações são trocadas através da conexão resultante.

Existem duas formas para que se estabeleça uma ligação cliente-servidor: enquanto uma delas é orientada à conexão, a outra não é. O TCP, por exemplo, é um protocolo de transporte orientado à conexão em que o cliente estabelece uma conexão com o servidor e ambos trocam múltiplas mensagens de tamanhos variados, sendo a aplicação do cliente quem termina a sessão. Já o protocolo UDP não é orientado à conexão, nele o cliente constrói uma mensagem e a envia num pacote UDP para o servidor, que responde sem estabelecer uma conexão permanente com o cliente.

Rede de Computadores

Uma rede de computadores consiste de 2 ou mais computadores e outros dispositivos conectados entre si de modo a poderem compartilhar seus serviços, que podem ser: dados, impressoras, mensagens (e-mails), etc.
A Internet é um amplo sistema de comunicação que conecta muitas redes de computadores. Existem várias formas e recursos de vários equipamentos que podem ser interligados e compartilhados, mediante meios de acesso, protocolos e requisitos de segurança.



Classificação

Segundo a Arquitetura de Rede:
- Arcnet
- Ethernet
- Token ring
- FDDI
- ISDN
- Frame Relay
- ATM
- X25
- DSL

Segundo a extensão geográfica:
- SAN (Storage Area Network)
- LAN (Local Area Network)
- PAN (Personal Area Network)
- MAN (Metropolitan Area Network)
- WAN (Wide Area Network)
- RAN (Regional Area Network)
- CAN (Campus Area Network)

Segundo a topologia:
- Rede em anel (Ring)
- Rede em barramento (Bus)
- Rede em estrela (Star)
- Rede em malha (Mesh)
- Rede em ponto-a-ponto

Segundo o meio de transmissão:
1- Rede por cabo
- Rede de Cabo coaxial
- Rede de Cabo de fibra óptica
- Rede de Cabo de par trançado

2- Rede sem fios
- Rede por infravermelhos
- Rede por microondas
- Rede por rádio


Hardware de Rede
- Elementos de Cablagem:
1- Cabo coaxial
2- Cabo de fibra óptica
3- Cabo de par trançado
4- Repetidor
5- Transceptor
- Estação de trabalho
- Placa de rede
- Concentrador (hub)
- Comutador (switch)
- Roteador (router)
- Modem
- Porta de Ligação (gateway)
- Ponte (bridge)
- Servidor

Modelo OSI
- Nível físico
- Nível de enlace de dados
1- Ethernet
2- PPP
- Nível de Rede
1- IP
2- IPX
- Nível de transporte
1- TCP
2- UDP
- Nível de sessão
1- NetBIOS
2- IPX
3- Appletalk
- Nível de apresentação
- Nível de aplicação
1- SMTP
2- FTP
3- Telnet
4- SSH
5- IRC
6- HTTP
7- POP3
8- VFRAD

Normas
- IEEE 802
- X.25

Técnicas de transmissão
- Banda larga
- Banda base

Modelagem de rede de computadores segundo Tanenbaum
Uma rede pode ser definida por seu tamanho, topologia, meio físico e protocolo utilizado.

- PAN (Personal Area Network, ou rede pessoal). Uma PAN é uma rede de computadores usada para comunicação entre dispositivos de computador (incluindo telefones e assistentes pessoais digitais) perto de uma pessoa.
- LAN (Local Area Network, ou Rede Local). É uma rede onde seu tamanho se limita a apenas uma pequena região física.
- VAN (Vertical Area Network, ou rede de vertical). Uma VAN é usualmente utilizada em redes prediais, vista a necessidade de uma distribuição vertical dos pontos de rede.
- CAN (Campus Area Network, ou rede campus). Uma rede que abrange uma área mais ampla, onde pode-se conter vários prédios dentro de um espaço contínuos ligados em rede.
- MAN (Metropolitan Area Network, ou rede metropolitana). A MAN é uma rede onde temos, por exemplo, uma rede farmácia, em uma cidade, onde todas acessam uma base de dados comum.
- WAN (Wide Area Network, ou rede de longa distância). Uma WAN integra equipamentos em diversas localizações geográficas, envolvendo diversos países e continentes como a Internet.
- SAN (Storage Area Network, ou Rede de armazenamento). Uma SAN serve de conexão de dispositivos de armazenamento remoto de computador para os servidores de forma a que os dispositivos aparecem como locais ligados ao sistema operacional.


Meio físico
O meio mais utilizado hoje é o Ethernet. O padrão Ethernet vem subdividido em: Coax/10base2, UTP (Unshielded Twisted Pair - Par Trançado Não Blindado)/10BaseT e UTP/100baseT e Gigabit ethernet.
Também pode ser conectado por Fibra óptica, um fino filamento contínuo de vidro com uma cobertura de proteção que pode ser usada para conectar longas distâncias.
E ainda há as redes sem fios, que se subdividem em diversas tecnologias: Wi-fi, bluetooth, wimax e outras.

Protocolo
Hoje, o protocolo mais usado é o TCP/IP, versão IPv4 , e espera-se que passemos a utilizar o IPv6.

Tecnologia Dual Channel

A memória é um dos componentes que tem maior influência no desempenho do computador. Ela é responsável por armazenar os dados temporariamente enquanto o processador calcula e realiza as tarefas ordenadas pelo usuário. O grande problema das memórias consiste na baixa velocidade em que elas trabalham, fator que limita muito o processador, que deve esperar pela transferência de dados.

Na maioria das vezes, as memórias apenas tinham sua frequência (clock) e algumas temporizações alteradas, contudo, nem sempre isso influenciava muito no desempenho. Pensando nisso, o mercado de hardware teve que encontrar outra solução: colocar as memórias para trabalhar em conjunto.

A velocidade aumenta quando utilizamos memórias aos pares
Ao perceber que os computadores estavam ficando um pouco lentos e que somente aumentar a frequência não seria suficiente, a solução foi alterar o controlador de memória das placas-mãe, ou até mesmo, dos processadores. As memórias precisam trabalhar em “duplas” para poder utilizar a tecnologia Dual Channel (duplo canal), ou seja, é necessário instalar dois pentes de memória na placa-mãe.

Um conceito técnico
Dual Channel é o recurso que permite ao chipset ou ao processador efetuar uma comunicação com dois canais de memória simultaneamente. As memórias trabalham simultaneamente e fornecem o dobro da largura de dados do barramento. O comum das memórias DDR é trabalhar com 64 bits, mas com o recurso Dual Channel, este valor “dobra” e fica em 128 bits.

O que preciso para habilitar a tecnologia Dual Channel?
Como já citado, a tecnologia de duplo canal só funciona quando se utiliza memórias aos pares. Portanto, você precisará comprar dois módulos de memória, ou quatro. Vale frisar que para ativar o recurso é necessário memórias com frequências, tamanho e temporizações idênticas, de preferência até da mesma marca (assim você evita muitos problemas). Ou seja, para habilitar 4 GB de memória em Dual Channel, você deverá comprar dois módulos de 2 GB ou então, quatro módulos de 1 GB.

Além das memórias, é preciso atentar para o modelo da sua placa-mãe. O chipset (nas placas-mãe para processadores Intel) é o responsável por trabalhar com a tecnologia Dual Channel, e caso ele não suporte este recurso, nem adianta você investir em vários módulos de memória. Usuários que utilizavam processadores Intel, devem consultar o manual da placa-mãe para saber se o chipset suporta o Dual Channel. Já quem possui um processador AMD, pode se despreocupar, porque os processadores com soquete 939, 940, AM2 e AM2+ são totalmente compatíveis com a tecnologia, independendo da placa-mãe e do chipset.

Como habilitar o Dual Channel?
Tudo depende muito da configuração do seu computador. Antes de habilitar, é necessário verificar se a memória já não está operando em Dual Channel. Para verificar é simples, basta baixar um programa, como o CPU-Z (ou outro de sua preferência), e observar se na especificação das memórias, consta o termo “Dual Channel”.

Se a sua memória ainda não está trabalhando em Dual Channel, é simples de solucionar o problema. Habilitar o modo de operação Dual Channel depende apenas da maneira com que você instalou os módulos de memória. O grande problema consiste no seguinte: grande parte dos fabricantes não utiliza o padrão para ajudar o usuário, mas para a felicidade da nação, nos manuais das placas-mãe, sempre vêm descrito em quais soquetes você deve conectar os módulos, para que o Dual Channel seja ativado.

Placas-mãe com somente dois espaços para memória RAM não possuem segredos, apenas instale o par de memórias nos dois slots. Já as placas-mãe mais robustas trazem quatro slots de memória, fator que confunde muito o usuário. Além disso, as fabricantes adotam cores para “facilitar” a instalação das memórias.

Diferença entre bit e byte

Os computadores "entendem" impulsos elétricos, positivos ou negativos, que são representados por 1 ou 0, respectivamente. A cada impulso elétrico, damos o nome de bit (BInary digiT). Um conjunto de 8 bits reunidos como uma única unidade forma um byte.

Nos computadores, representar 256 números binários é suficiente para que possamos lidar a contento com eles. Por isso, os bytes possuem 8 bits. É só fazer os cálculos: como um bit representa dois tipos de valores (1 ou 0) e um byte representa 8 bits, basta fazer 2 (do bit) elevado a 8 (do byte) que é igual a 256.

Os bytes representam todas as letras (maiúsculas e minúsculas), sinais de pontuação, acentos, caracteres especiais e até informações que não podemos ver, mas que servem para comandar o computador e que podem inclusive ser enviados pelo teclado ou por outro dispositivo de entrada de dados e instruções.

Para que isso aconteça, os computadores utilizam uma tabela que combina números binários com símbolos: a tabela ASCII (American Standard Code for Information Interchange). Nesta tabela, cada byte representa um caractere ou um sinal.

A partir daí, foram criados vários termos para facilitar a compreensão humana da capacidade de armazenamento, processamento e manipulação de dados nos computadores. No que se refere aos bits e bytes, tem-se as seguintes medidas:

1 Byte = 8 bits
1 kilobyte (KB ou Kbytes) = 1024 bytes
1 megabyte (MB ou Mbytes) = 1024 kilobytes
1 gigabyte (GB ou Gbytes) = 1024 megabytes
1 terabyte (TB ou Tbytes) = 1024 gigabytes
1 petabyte (PB ou Pbytes) = 1024 terabytes
1 exabyte (EB ou Ebytes) = 1024 petabytes
1 zettabyte (ou Zbytes) = 1024 exabytes
1 yottabyte (ou Ybytes) = 1024 zettabytes

É também através dos bytes que se determina o comprimento da palavra de um computador, ou seja, a quantidade de bits que ele utiliza na composição das instruções internas, como por exemplo:

8 bits - palavra de 1 byte
16 bits - palavra de 2 bytes
32 bits - palavra de 4 bytes
64 bits - palavra de 8 bytes

Na transmissão de dados entre computadores, geralmente usa-se medições relacionadas a bits e não a bytes. Assim, há também os seguintes termos:

1 kilobit (Kb ou Kbit) = 1024 bits
1 megabit (Mb ou Mbit) = 1024 Kilobits
1 gigabit (Gb ou Gbit) = 1024 Megabits
1 terabit (Ou Tbit) = 1024 Megabits

E assim por diante. Você já deve ter percebido que, quando a medição é baseada em bytes, a letra 'b' da sigla é maiúscula (como em GB). Quando a medição é feita em bits, o 'b' da sigla fica em minúsculo (como em Gb).

Como já dito, a utilização de medições em bits é comum para indicar o volume de dados em transmissões. Geralmente, indica-se a quantidade de bits transmitidos por segundo. Assim, quando queremos dizer que um determinado dispositivo é capaz de enviar, por exemplo, 54 megabits por segundo, usa-se a expressão 54 Mbps (54 Megabits per second - 54 megabits por segundo):

1 Kbps = 1 kilobit por segundo
1 Mbps = 1 megabit por segundo
1 Gbps = 1 gigabit por segundo
E assim por diante.

Kibibit, kibibyte e afins
Se você adquirir, por exemplo, um HD de 500 GB, vai perceber que o sistema operacional do computador mostrará uma capacidade menor que essa em relação ao dispositivo. Isso porque os sistemas operacionais, de modo geral, consideram 1 kilobyte como sendo equivalente a 1024 bytes, e assim se segue com megabytes, gigabytes, terabytes e etc, tal como explicado anteriormente. No entanto, para os fabricantes de discos rígidos, 1 kilobyte corresponde a 1000 bytes, e assim por diante. Afinal, o que é correto, 1000 bytes ou 1024 bytes? Há organizações que defendem tanto um quanto o outro.

Uma possível solução para esse impasse estaria nas terminologias e abreviações que a International Electrotechnical Commission (IEC) criou para indicar as medições baseadas em 1024 bytes, que são as seguintes:

1 kibibyte (ou KiB) = 1024 bytes
1 mebibyte (ou MiB) = 1024 kibibytes
1 gibibyte (ou GiB) = 1024 mebibytes
1 tebibyte (ou TiB) = 1024 gibibytes
1 pebibyte (ou PiB) = 1024 tebibytes
1 exbibyte (ou EiB) = 1024 pebibytes
1 zebibyte (ou ZiB) = 1024 exbibytes
1 yobibyte (ou YiB) = 1024 zebibytes

Os mesmo prefixos dos nomes acima são empregados também nas medições baseadas em bits: kibibit, mebibit, gibibit, tebibit e assim por diante.

O sistema de medidas elaborado pela IEC é tido como o correto, deixando os prefixos quilo, mega, giga, tera, peta, exa, zetta e yotta (que são oriundos do Sistema Internacional de Unidades) representando 1000 bytes e seus múltiplos (isto é, potências de 10). Assim, as denominações da IEC equivalem às representações de 1024 bytes e seus múltiplos (potências de 2). Em resumo, essas medições ficam assim:

1 Kilobyte = 1000 bytes 1 kibibyte = 1024 bytes
1 Megabyte = 1000 kilobytes 1 mebibyte = 1024 kibibytes
1 Gigabyte = 1000 megabytes 1 gibibyte = 1024 mebibytes
1 Terabyte = 1000 gigabytes 1 tebibyte = 1024 gibibytes
1 Petabyte = 1000 terabytes 1 pebibyte = 1024 tebibytes
1 Exabyte = 1000 petabytes 1 exbibyte = 1024 pebibytes
1 Zettabyte = 1000 exabytes 1 zebibyte = 1024 exbibytes
1 Yottabyte = 1000 zettabytes 1 yobibyte = 1024 zebibytes

Processo de Inicialização do Computador (Boot)

Boot é o termo em inglês para o processo de iniciação do computador que carrega o sistema operacional quando a máquina é ligada.

Dispositivos de iniciação do BIOS
Um dispositivo de iniciação é qualquer dispositivo que deve ser iniciado antes da carga do sistema operacional. Isto inclui os dispositivos de entrada como o teclado, dispositivos de saída como o Monitor e os dispositivos de armazenamento como pen drive, disco rígido, CD-ROM, etc.

Um caso especial de dispositivo de iniciação são os que podem carregar o sistema operacional (Em antigas máquinas PC, o drive de disquete e o disco rígido).

Em uma BIOS moderna, o usuário pode selecionar vários dispositivos para fazer a iniciação, por exemplo, Disco Rígido, SCSI, Cdrom, Zip drive, ou USB (USB-FDD, USB-ZIP, USB-CDROM, USB-HDD).

Por exemplo, podemos instalar o Microsoft Windows no primeiro disco rígido e o Linux no segundo. Alterando os parâmetros da BIOS, podemos modificar qual sistema operacional a carregar.


Primeiro estágio do sistema de iniciação
Muitos computadores podem executar apenas códigos existentes na memória de trabalho (ROM ou RAM); os sistemas operacionais modernos são normalmente armazenados em disco rígido, CD-ROM ou outros dispositivos de armazenamento. Logo que o computador é ligado, ele não tem um sistema operacional na memória. O hardware do computador não pode fazer as ações do sistema operacional, como carregar um programa do disco; assim um aparente insolúvel paradoxo é criado: para carregar o sistema operacional na memória, precisamos de um sistema operacional já carregado.

A solução para o paradoxo está na utilização de um pequeno e especial programa, chamado sistema de iniciação, boot loader ou bootstrap. Este programa não tem a completa funcionalidade de um sistema operacional, mas é especialmente construído para que seja capaz de carregar um outro programa para permitir a iniciação do sistema operacional. Freqüentemente, boot loaders de múltiplos estágios são usados, neste caso vários pequenos programas se complementam em seqüência, até que o último deles carregue o sistema operacional.

Os primeiros computadores programáveis tinham chaves no painel frontal para permitir ao operador colocar o sistema de iniciação na memória antes de iniciar a CPU. Este poderia então ler o sistema operacional de um meio de armazenamento externo como uma fita de papel.

Nos computadores modernos o processo de iniciação começa com a execução pela CPU de um programa contido na memória ROM (o BIOS do IBM PC) em um endereço predefinido (a CPU é programada para executar este programa depois de um reset automaticamente). Este programa contém funcionalidades rudimentares para procurar por dispositivos que podem conter um sistema operacional e que são, portanto, passíveis de participar de um boot. Definido o dispositivo é carregado um pequeno programa de uma seção especial deste.


Segundo estágio do sistema de iniciação
O pequeno programa normalmente não é o sistema operacional, mas apenas um segundo estágio do sistema de inicialização, assim como o Lilo ou o Grub. Ele será então capaz de carregar o sistema operacional apropriado e finalmente transferir a execução para ele. O sistema irá inicializar, e deve carregar drivers de dispositivos (device drivers) e outros programas que são necessários para a operação normal de um sistema operacional.

O processo de inicialização é considerado completo quando o computador está pronto para ser operado pelo usuário. Computadores pessoais modernos tipicamente levam cerca de um minuto para executar o processo de inicialização (deste tempo, cerca de 15 segundos são devidos a cada chamada do processo de inicialização, e o restante para carregar o sistema operacional). No entanto, sistemas mais complexos como servidores podem levar vários minutos para terminar o processo de inicialização e carregar todos os serviços. Para garantir maior disponibilidade, estes iniciam certos serviços preferencialmente antes de outros.

Muitos sistemas embutidos, ou embedded systems, podem iniciar instantaneamente - por exemplo, esperar um minuto para uma televisão ligar é inaceitável. Assim, estes sistemas têm seu sistema operacional inteiro na ROM ou na memória flash, podendo executá-lo diretamente.

Sequência de iniciação no PC
Ao iniciar o processo de iniciação, a CPU do computador pessoal executa a instrução localizada no registrador de memória FFFFFFFF0h do BIOS. Este registrador de memória corresponde a última posição de memória da BIOS. Ele contém uma instrução que faz com que a execução seja desviada para o local no BIOS onde começa o programa inicial.

Este programa executa um auto-teste (POST), que é um teste para verificar o funcionamento de diversos dispositivos no computador. Então, o BIOS busca em uma lista de dispositivos pré-configurados até encontrar um que pode ser o dispositivo de iniciação. Se não encontra este dispositivo, um erro é apresentado e o processo de iniciação termina. Se o dispositivo de iniciação é encontrado, o BIOS carrega e executa o MBR (Registro mestre de iniciação).

Em muitos casos, o MBR verifica a tabela de partições em busca de uma partição ativa. Se uma partição ativa é encontrada, o MBR carrega e executa o setor de iniciação da partição. O setor de iniciação é específico do sistema operacional, entretanto em muitos sistemas sua principal função é carregar e executar o núcleo.

segunda-feira, 24 de maio de 2010

Sistema de 32 e 64 bits

A diferença básica entre um sistema de 32 bits e um de 64 bits é o valor máximo de instruções que eles podem trabalhar.

Uma operação de 32 bits consegue manipular até 4.294.967.296 dados de instruções por vez, ou (2^32), enquanto uma operação de 64 bits consegue manipular até 18.446.744.073.709.600.000, ou (2^64). Viram a diferença?
Então, um programa que executa muitos cálculos matemáticos, será executado mais rápido, se estiver em uma plataforma de 64 bits.

Os programas de uma plataforma de 64 bits são feitos de forma diferenciada, porque não adianta ter o processador de 64 bits e o programa em 32 bits, pois é desperdício de recurso.
Alguns processadores de 64 bits conseguem processar operações em 32 bits, mas nem todos. Os de 32 bits não conseguem processar operações em 64bits.

Alguns programas não precisam ser de 64 bits, como por exemplo, o notepad, então não executará cálculo maior que 32 bits, desta forma, não faz diferença se a plataforma é de 32 ou 64 bits.

Os sistemas operacionais em 32 bits não executam operações em 64 bits, porque mesmo que o processador possua tal tecnologia, o kernel do sistema não saberá interpretar as instruções. Portanto, mesmo que não se utilize programas de 64 bits, como por exemplo, um navegador Web é bom ter um sistema de 64 bits, porque querendo ou não, o kernel do sistema operacional executará instruções e cálculos que podem passar dos 32 bits e você pode ganhar um pouco em relação ao desempenho.

Para notar a real diferença, seria necessário que fossem postos dois computadores, lado a lado, com configuração similar e executando os mesmos programas, um em 32 bits e o outro em 64 bits.

Hardware X Software

O computador é formado, basicamente, por dois segmentos distintos, mas que trabalham em regime de estreita relação: o Hardware e o Software.

Hardware
É a parte física do computador, ou seja, tudo aquilo que podemos tocar. São exemplos de Hardware: gabinete, monitor, teclado, mouse, memórias, processadores, gabinetes, disco rígido, impressora, scanner, caixa de som, microfone, webcam, entre outros. Também são chamados de periféricos.
O termo "hardware" não se refere apenas aos computadores pessoais, mas também aos equipamentos embarcados em produtos que necessitam de processamento computacional, como os dispositivos encontrados em equipamentos hospitalares, automóveis, aparelhos celulares, dentre outros.

Software
É a parte lógica, ou seja, o que não se pode tocar. É o conjunto de instruções e dados que é processado pelos circuitos eletrônicos do hardware.

Resumindo: Hardware é o que o usuário chuta e Software, o que ele xinga!!!

Conheçendo os componentes do computador

Processador
O processador é o "cérebro" do computador. É responsável pelos cálculos, execução de tarefas e processamento de dados.
A Unidade Lógica Aritmética (ULA) é a unidade central do processador.
Existem atualmente processadores com mais de um núcleo. Mas existe uma diferença básica nesse conceito de mais de um núcleo, a tecnologia Hyper-Threading.
Ela simula em um único processador físico dois processadores lógicos. Cada processador lógico recebe seu próprio controlador de interrupção programável (APIC) e conjunto de registradores. Os outros recursos do processador físico, como por exemplo cache de memória, unidade de execução, unidade lógica e aritmética, unidade de ponto flutuante e barramentos, são compartilhados entre os processadores lógicos. Em termos de software, significa que o sistema operacional pode enviar tarefas para os processadores lógicos como se estivesse enviando para processadores físicos em um sistema de multiprocessamento.

Cooler
Todo processador deve ter um cooler. Essa peça é a responsável por manter a temperatura em níveis aceitáveis. Mas ele não é o "ventilador" e sim o conjunto formado por esse ventilador (FAN) e o dissipador. Quanto menor for a temperatura, melhor o processador trabalhará. A temperatura sugerida para cada processador muda de acordo com o fabricante, com o mecanismo e com o desempenho. Existem diversos modelos e tecnologias.

Placa-mãe
Essa peça também pode ser interpretada como a "espinha dorsal" do computador, afinal é ela quem interliga todos os dispositivos do equipamento. Elas podem ser On-board (com outras placas já acopladas a ela ou Off-board, onde você encaixa todas as outras nela - o que é muito melhor, porque além de ficar mais rápido, você pode configurar cada detalhe na montagem do micro). Para isso, a placa-mãe (ou motherboard) possui vários tipos de conectores. O processador é instalado em seu socket, o HD é ligado nas portas IDE ou SATA, a placa de vídeo pode ser conectada nos slots AGP, PCI ou PCI-Express e as outras placas (placa de som, placa de rede, etc.) podem ser encaixadas nos slots PCI. Ainda há o conector da fonte, os encaixes das memórias, enfim.
Todas as placas-mãe possuem BIOS (Basic Input Output System). Trata-se de um pequeno software de controle, armazenado em um chip de memória ROM, que guarda configurações do hardware e informações referentes à data e hora. Para manter as configurações da BIOS, uma bateria de níquel-cádmio ou lítio é usada. Dessa forma, mesmo com o computador desligado, é possível manter o relógio do sistema ativo, assim como as configurações de hardware.
Um detalhe que tenho que citar é em relação ao chipset da placa-mãe, que é um conjunto de circuitos eletrônicos responsáveis pelas suas características de funcionamento e pelo seu desempenho. O chipset controla o tráfego de informações dentro de uma placa-mãe e conseqüentemente, dentro do computador. Assim, ao escolhermos uma placa-mãe, a primeira coisa que devemos verificar é seu chipset. Se uma placa tem um bom chipset, provavelmente, será uma boa placa-mãe.

Memória RAM
RAM significa Random Access Memory (memória de acesso randômico). É volátil, ou seja, os dados se perdem quando o computador é desligado ou reiniciado.
Algumas pessoas fazem uma analogia errada sobre as memórias. Elas não guardam os seus arquivos (fotos, textos, músicas, etc.). O responsável por essa tarefa é o Hard Disk (HD). Os módulos de memória permitem que o seu computador trabalhe com as informações enquanto a máquina está ligada. O processador busca as informações do HD e coloca na memória para que possa trabalhar com elas de forma mais rápida.
Existem vários tipos de memória RAM. Cada um tem uma forma de encapsulamento e tecnologia. Temos por exemplo as DIMM, DDR, DDR2, entre outras.

Disco Rígido
O Disco Rígido, cujo nome em inglês é Hard Disk (HD), serve para armazenar dados permanentemente. Também podem ser chamados de "Winchester", porém esta é uma antiga denominação. Fisicamente, os HDs são constituídos por discos. Estes são divididos em trilhas e estas são formadas por setores. Um agrupamento de setores em relação a outros discos é chamado de cilindros. Os HDs podem armazenar até centenas de terabytes. A velocidade de acesso às informações dos discos depende da velocidade em que estes giram. Os padrões mais comuns são de 5.400 rpm (rotações por minuto), 7.200 rpm e 10.000 rpm. Para serem usados pelo computador, os HDs precisam de uma interface de controle. As existentes são a IDE (Intergrated Drive Electronics), SCSI (Small Computer System Interface) e SATA (Serial ATA).
Existem novos HDs baseados na tecnologia de memória Flash NAND, chamados de SSD (Solid State Disk) ou disco de estado sólido. Eles apresentam um consumo de energia de apenas cinco por cento dos discos rígidos atuais, pesam menos da metade de um HD do mesmo tamanho e como não possuem partes móveis, não apresentam ruído e aquecem muito pouco. Além disso, são mais rápidos, pois apresentam taxas de leitura de 57 MB por segundo e taxas de escrita de 32 MB por segundo. Isto é cerca de cento e cinquenta por cento mais rápido do que os melhores HDs disponíveis.

Placa de vídeo
Outra placa importante em um computador. Cabe a ela gerar tudo o que vai aparecer no monitor, como imagens de jogos, de aplicações e etc. Hoje, tem-se uma imensa variedade de placas, porém, as marcas mais conhecidas desse segmento são a ATI e a nVidia. Na verdade, ambas produzem o chip gráfico (uma espécie de processador responsável pela geração de imagens, principalmente em aplicações 3D). Quem produz as placas são outras empresas, como MSI, Powercolor, Gigabyte, Asus, etc.
É possível encontrar no mercado placas-mãe que possuem placas de vídeo onboard, isto é, o vídeo já vem integrado junto à motherboard. Isso permite economia de gastos, porém afeta o desempenho do computador, já que o processador passa a fazer o trabalho que é executado pelo chip gráfico em placas normais. As placas de vídeo antigas usavam o slot PCI. As atuais usam o slot AGP, que já está perdendo espaço para o slot PCI Express (PCI-E).

Driver de CD /DVD
O drive de CD-ROM é, basicamente, o dispositivo que lê CDs. Apesar de ainda ser muito utilizado, o CD-ROM, aos poucos, começa a perder espaço para o DVD e para outras tecnologias de armazenamento. A seguir, uma lista dos diferentes tipos de drives de CD-ROM existentes:
CD-ROM: Mencionado acima, serve apenas para ler CD;
CD-RW (gravador): Serve para ler e gravar CD-Rs e CD-RWs;
CD-RW + DVD (combo): Serve como leitor de CD-ROM e de DVD, além de gravador de CDs;
DVD-RW (gravador): É um dos mais completos, pois lê e gravas CDs, assim como lê e grava DVDs.

Placas adicionais
Neste grupo estão as placas que adicionam funcionalidades ao computador, como por exemplo: placas de som, placas de rede, modem, etc. As placas atuais são encaixáveis em slots PCI e, brevemente, nos slots PCI Express.

Monitor
Semelhante a uma TV, é responsável por transmitir informações visuais a você. A tecnologia mais usada nos monitores é o LCD (Liquid Crystal Display), que estão se tornando o padrão. Os monitores CRT, mais antigos, apresentavam uma tela com certo encurvamento, porém, já existem modelos CRT com tela plana que proporcionam maior conforto visual. Os monitores mais comuns encontrados no mercado, oferecem telas nos tamanhos de 14", 15", 17" e 19" (lê-se o símbolo " como polegadas). Hoje em dia, é muito mais vantajoso ter um monitor com pelo menos 17", uma vez que a diferença de preços em relação a modelos menores é pequena.

Gabinete
O gabinete é uma caixa metálica, vertical ou horizontal, que guarda todos os componentes do computador (placas, HD, processador, etc). Cada vez mais surgem modelos que possuem algum tipo de arte, que adicionam cores, luzes e outros elementos chamativos ao gabinete. Normalmente, são os próprios usuários que fazem esses enfeites no computador. É o chamado casemod.
No gabinete, fica localizada também a fonte de alimentação, caixa metálica fechada e independente, aparafusada no gabinete, que serve para converter corrente alternada em corrente contínua para alimentar os componentes do computador. Assim, a placa-mãe, os drives, o HD entre outros, devem ser ligados à fonte. As placas conectadas nos slots da placa-mãe, recebem energia por ela, de modo que dificilmente precisam de um alimentador exclusivo. Gabinetes, fontes e placas-mãe precisam ser de um mesmo padrão, do contrário, acaba sendo praticamente impossível conectá-los. Os padrões em uso atualmente são o AT (descontinuado, mas ainda utilizado) e o ATX (mais difundido - oferece maior amplitude, favorece a circulação do ar e simplifica a conexão dos periféricos com suas respectivas interfaces. Os gabinetes verticais podem ser encontrados em 3 tipos básicos:
Mini Tower: pequeno, possui apenas 3 baias;
Mid Tower: médio, possui 4 baias
Full Tower: grande, com mais de 4 baias.
As baias são aquelas "gavetinhas", localizadas na parte frontal do gabinete. Nos espaços das baias é que drives de CD, DVD e outros são encaixados. Nos gabinetes, ainda é possível encontrar os seguintes itens:
Botão TURBO (apenas em gabinetes antigos);
Botão RESET (para reiniciar o micro);
Botão ou chave para ligar o computador (POWER);
LED de POWER ON (sinaliza que o micro está ligado);
LED indicador de modo turbo (apenas em gabinetes antigos);
LED indicador de acesso ao disco rígido (indica que o disco rígido está sendo acessado);
Display digital para indicação de clock (apenas em gabinetes antigos).

Periféricos gerais
Falta ainda citar o teclado, o mouse e as caixas de som.
Obviamente, o teclado serve para a digitação, porém, ele também pode ser usado em jogos e em combinações de teclas para acesso rápido a determinados aplicativos. Existem, inclusive, teclados que fogem ao padrão convencional e adicionam recursos extras no acesso à aplicações multimídia.
O mouse, dispositivo que serve para guiar uma seta (cursor) na tela do computador, também é item essencial. Existem, basicamente, dois tipos de mouse: o de "bolinha", que usa uma esfera para movimentar o cursor e o mouse óptico (padrão), que faz a movimentação da seta através de laser, dando, inclusive, mais precisão ao movimento.
Por fim, há a questão das caixas de som. Com o lançamento de jogos cada vez mais realistas e o aumento no uso do computador para aplicações multimídia, vale a pena adquirir caixas de som de qualidade, que fazem uso de 5 ou mais canais de áudio. Com o auxílio de tecnologias como a Surround 3D, é possível obter som de alta qualidade em filmes, jogos ou na execução de músicas. Para aproveitar esses recursos, além das caixas de som, é necessário que a placa de som ofereça tais funcionalidades. Felizmente, quase todos os modelos atuais oferecem essas vantagens.

O que é compudator?

"Computador é uma máquina que executa operações matemáticas e/ou lógicas, em símbolos numéricos, alfanuméricos ou outras formas de informação, e produz resultados compreensíveis pelo homem ou por outras máquinas." (in Collier's Encyclopedia)

Contudo, esta definição não é suficientemente específica, pois nela, pode ser englobado o homem ou uma simples máquina de tricotar. A definição seguinte apresenta outra característica: as instruções.

"Computador é um conjunto de dispositivos eletrônicos, capaz de aceitar dados e instruções, executá-las para processar os dados e apresentar os resultados. (in Academic Press Dictionary of Science Technology)

No entanto, esta definição ou esquema não distingue por exemplo, uma máquina de tricotar eletrônica ou uma calculadora de um computador. Mas será que existe alguma característica capaz de distinguir inequivocamente uma máquina de tricotar ou uma calculadora de um computador? Aparentemente não.
As diferenças não se colocam ao nível conceitual, mas sim no grau (ou intensidade) que cada máquina se coloca nos princípios descritos. Por exemplo, na máquina de tricotar o fio será o dado de entrada, e o objeto tricotado será o resultado. Pelo meio do caminho, ficou o equipamento, mais ou menos complexo e programável, que executa instruções mais ou menos lógicas e complexas. O mesmo se passa com a calculadora, que parecendo que está mais próxima em termos conceituais do termo computador, por ser mais básica que um máquina de tricotar, nos princípios e regras utilizadas.

No início, os computadores eram usados, principalmente para cálculos simples, como adição, subtração, multiplicação, divisão e outras operações muito simples. Hoje em dia, as suas utilizações são infinitas e fundamentais em praticamente todas as áreas da sociedade.
O termo computador generalizou-se e hoje em dia, corresponde a algo de mais complicado e com maiores capacidades de cálculo e de interação com o exterior, do que tais máquinas calculadoras. Contudo, as máquinas que há 10 anos chamávamos de computadores, estão já ultrapassadas em capacidade e performance, por máquinas que hoje em dias chamamos de calculadoras. Quer-se com isso demonstrar que a utilização dos termos computador ou calculadora, associados a uma máquina que efetua cálculos, depende do seu momento de utilização ou da confrontação de características entre eles.

Com a evolução, máquinas que executavam estes cálculos simples tornaram-se comuns e banais, o que deu origem ao termo calculadoras e que genéricamente se distinguem dos computadores, devido ao modo fixo como operam. O termo computador, está hoje em dia associado a máquinas que operam de modo diferente a necessidade e indicações recebidas do exterior, pelo que o computador é um sistema, cujas tarefas diferem ao longo do tempo, em função das necessidades e requisitos de utilização, alterando o componente de software.

domingo, 23 de maio de 2010

OS 15 mandamentos da informática

01 - Não terás vida pessoal, familiar ou sentimental.
02 - Tua sanidade mental será posta em cheque antes que completes cinco anos de trabalho.
03 - Terás gastrite, se tiveres sorte. Se for como os demais, terás úlcera.
04 - A pressa será teu único amigo e as suas refeições principais serão as pizzas, McDonalds e China in Box.
05 - Teus cabelos ficarão brancos antes do resto da população. Se te sobrarem cabelos.
06 - Não terás feriados, fins de semana ou qualquer outro tipo de folga.
07 - Dormir será considerado período de folga, logo, não dormirá e não raro, resolverá problemas de trabalho neste período.
08 - Não aceitarás correções de bugs com evolução do produto.
09 - Happy hours serão excelentes oportunidades de ter algum tipo de contato com outras pessoas na mesma condição.
10 - A máquina de café será tua melhor colega de trabalho, mas a cafeína não te fará mais efeito.
11 - Trabalho será teu assunto preferido. Talvez o único.
12 - As pessoas serão divididas em dois tipos: as que entendem de informática e as que não entendem. E verás graça nisso.
13 - Exibirás olheiras como troféus de guerra.
14 - Terás consciência para perceber que não é possível ter pleno domínio de tudo.
15 - Farás o possível para que a informática seja investimento e não custo.

E inexplicavelmente, gostará de tudo isso!