Arquitetura vs Organização de Computadores

facebooktwittergoogle_plusby feather

Qual a diferença entre Arquitetura e Organização de Computadores ?

Segundo Stallings,

Arquitetura de computadores refere-se aos atributos de um sistema visíveis a um programador ou, em outras palavras, aqueles atributos que possuem um impacto direto sobre a execução lógica de um programa.

Organização de computador refere-se às unidades operacionais e suas interconexões que realizam as especificações arquiteturais.

 

facebooktwittergoogle_plusby feather

Backup – Tipos e Estratégias

facebooktwittergoogle_plusby feather

backup

Tipos de Backup

Normal (ou global):  copia todos os arquivos selecionados e marca o arquivo como tendo sofrido o backup (o atributo de arquivamento é desmarcado). Não importa se o arquivo está com o atributo marcado ou não. No backup normal, ele copia todos os arquivos que foram selecionados.

Incremental:  copia os arquivos criados ou alterados desde o último backup (normal ou incremental). Ou seja, somente aqueles que têm o atributo de arquivamento marcado.  Após o backup, os arquivos são marcados como tendo passado pelo backup, ou seja, tem o atributo de arquivamento desmarcado.

Diferencial:  copia os arquivos criados ou alterados desde o último backup (normal ou diferencial). Ou seja, somente aqueles que têm o atributo de arquivamento marcado. A diferença em relação ao incremental, é que os arquivos não são marcados como tendo passo por backup, ou seja, o atributo de arquivamento permanece marcado.

Diário:  copia os arquivos que foram criados ou alterados no mesmo dia de execução do backup diário. Não importa se estavam marcados ou não. Após o backup, o atributo de arquivamento dos arquivos permanece da mesma forma. Quem estava marcado permanece marcado, quem não estava também continua desmarcado.

Cópia:  copia todos os arquivos selecionados (marcados ou não) e não mexe no atributo de arquivamento dos arquivos. Ou seja, quem estava marcado permanece marcado e quem estava desmarcado permanece desmarcado, após um backup de cópia.

Estratégias de Backup

Normal + lncremental:  Primeiro é realizado um backup normal. Os próximos backups serão incrementais. O backup normal copia todos os arquivos e marca como tendo sofrido backup. Os próximos incrementais copiam os arquivos criados e alterados desde o último backup normal ou incremental e também marca como tendo sofrido backup. Assim, a cada backup incremental arquivos novos e arquivos antigos (em novas versões) serão copiados. Para recuperar precisamos do backup normal e de todas as fitas de backups incrementais.

Normal + Diferencial:  Primeiro é realizado um backup normal. Os próximos serão diferenciais. O backup normal copia todos os arquivos e marca como tendo sofrido backup. O diferencial copia todos os arquivos desde o último backup normal ou diferencial, contudo não marca como tendo sofrido backup. Assim, a cada diferencial todos os arquivos são copiados desde o backup normal. Assim, com passar do tempo, o backup diferencial gasta mais e mais espaço. A vantagem é que para recuperação basta o backup normal e a último backup diferencial.

facebooktwittergoogle_plusby feather

Redes de Difusão

facebooktwittergoogle_plusby feather

rede de difusão

Nas redes de difusão, o canal de comunicação (link) é compartilhado por toda a rede. Ou seja, todos os computadores da rede recebem todas as mensagens enviadas pelo canal. Esse fato provoca um problema: Quem deve ler a mensagem? Ou seja, quem é o destinatário ?

Para identificar o destino das mensagens, é necessário um campo endereço nas mensagens. A máquina que possui o endereço que está na mensagem (máquina destino) lê a mensagem e toma alguma ação, as demais máquinas da rede devem simplesmente ignorar a mensagem.

Nesse tipo de rede, é comum existir um endereço para envio de mensagens para todas as máquinas da rede. Esse endereço é chamado de endereço de broadcast (ou de difusão).

Algumas redes permitem o uso de endereços que representam um subconjunto da rede. Quando um endereço desse tipo é utilizado, as mensagens são destinadas para para um determinado grupo de máquinas. Esse esquema de endereçamento é chamado de multicasting (ou multidifusão).

É importante notar que o endereçamento é abstração. É apenas uma solução lógica para direcionar as mensagens para uma ou mais máquinas da rede. Isso porque fisicamente o canal é compartilhado por todas as máquinas. Assim, é possível que uma máquina capture todas as mensagem enviadas através do canal. Quando isso acontece dizemos que a máquina está em “modo promíscuo”.

facebooktwittergoogle_plusby feather

Redes ponto a ponto

facebooktwittergoogle_plusby feather

rede ponto a ponto

Nas redes ponto a ponto, existe um canal de comunicação dedicado entre as máquinas. Isso não quer dizer que entre quaisquer duas máquinas da rede existe um link (canal de comunicação dedicado). Por isso, pode ser necessário que uma mensagem atravesse um ou mais nós (máquinas) da rede para chegar a máquina destino (nó destino).

O caminho que uma mensagem percorre de um nó ao outro é chamado de rota. Como em cada link estão envolvidos apenas duas máquinas, essa transmissão é chamada de unicast.

facebooktwittergoogle_plusby feather

Como funciona a máquina de xerox ?

facebooktwittergoogle_plusby feather

Xerox

Princípio de Funcionamento da Máquina de Xerox

As máquinas fotocopiadoras funcionam baseadas no princípio físico que cargas de mesmo sinal se repelem e cargas de sinais opostos se atraem. O módulo desta força é dada pela lei de Coulomb. Segundo esta lei quanto maior a quantidade de cargas maior será a força de atração. Além disso, quanto maior a distância entre as cargas menor a força. Continue reading “Como funciona a máquina de xerox ?”

facebooktwittergoogle_plusby feather

Diferença entre Redes e Sistemas Distribuídos

facebooktwittergoogle_plusby feather

Redes

Rede de Computadores

Segundo Tanenbaum,

Um rede de computadores é um conjunto de computadores autônomos interconectados por uma única tecnologia

Sem muito mistério, uma rede de computadores nada mais é do que um conjunto de dispositivos conectados através de canais de comunicação. Os dispositivos que formam uma rede de computadores também são comumente chamados de nós e os canais de comunicação também são conhecidos como links de comunicação (ou simplesmente links).

Note que apesar do nome “rede de computadores”, um nó de uma rede não precisa ser um computador propriamente dito. Pode ser, por exemplo, uma impressora ou qualquer dispositivo que tenha capacidade de enviar e receber dados através da rede.

Uma das vantagens de termos computadores em rede é a possibilidade de trocar dados e compartilhar recursos. Um exemplo comum que ocorre no dia a dia de das organizações é o compartilhamento de arquivos e impressoras entre os usuários da rede.

É importante notar que em sentido estrito, a rede é apenas a infraestrutura que permite a troca de informações e o compartilhamento dos recursos. Nesse sentido, ela não se confunde com as camadas de software que rodam sobre essa infraestrutura. Essa camada de software é o que chamamos de sistemas distribuídos.

Sistema distribuído

A maioria das redes utiliza processamento distribuído, o qual consiste em dividir uma tarefa entre vários computadores. Um sistema distribuído é visto pelo usuário como um único sistema coerente, tipicamente é uma camada de software que faz uso da rede (aqui entendida como a infraestrutura). Um exemplo de sistema distribuído é a World Wide Web (famoso WWW, ou simplesmente, Web). Note que na Web, tudo tem a aparência de um documento (uma página da Web), você não sabe em que computador físico está armazenada efetivamente a página web.

Quando falamos em redes em sentido estrito, os usuários estão diante de máquinas reais, ou seja, não existe uma abstração fornecida por camada de software (sistema distribuído). Assim, se as máquinas tiverem hardware e/ou sistemas operacionais diferentes é assim que serão vistos pelos usuários (Tanenbaum)

facebooktwittergoogle_plusby feather

O que é Java ?

facebooktwittergoogle_plusby feather

Java como Linguagem de Programação

Java é uma linguagem de programação orientada a objetos que gera códigos para uma máquina virtual chamada de Java Virtual Machine (JVM). Esse máquina virtual tem sua própria linguagem de máquina formada pelos bytecodes.

Em um linguagem tradicional, o compilador transforma o código fonte em um código executável para um determinado sistema operacional. Assim, por exemplo, um programa em C precisa ser compilado para cada sistema operacional que se deseja utilizar o programa. Nesse caso, existe um código executável para Windows e outro para Linux, por exemplo.

No Java as coisas são um pouco diferentes. O compilador Java (javac) traduz um arquivo fonte java (.java) para um arquivo .class. Esse arquivo compilado é formado pelo chamados bytecodes que podem ser executados pela  JVM. Essa abordagem permite que um mesmo arquivo .class rodem em diferentes sistemas operacionais sem a necessidade de recompilação. Evidentemente, para que isso ocorra é necessário que exista uma JVM para cada sistema operacional alvo. Ou seja, Java permite a portabilidade do código compilado. Devido a esse fato, era comum ouvir-se o seguinte slogan relacionado ao Java: “Escreva uma vez, rode em qualquer lugar”.

Java Programa JVM

É importante perceber que a linguagem Java não está necessariamente ligada a JVM. É perfeitamente possível criar um compilador que a partir da linguagem Java gere código executável para um máquina real ou para outra máquina virtual. Tanto que existe a Dalvik Virtual Machine cujos bytecodes são gerados a partir de um arquivo .java.

Plataforma Java

O termo Java também está associado a plataforma Java. Essa plataforma é formada pelo JVM e pela Java API  (Application Programming Interface). A JVM é uma camada de software que roda acima do hardware da máquina física. O programa Java não tem acesso ao hardware real e sim ao hardware da máquina virtual. Por sua vez, API é um conjunto de classes java já prontas que podem ser utilizadas pelo pelos programadores. Essas bibliotecas de classes Java são chamadas de  packages.

Java JVM

facebooktwittergoogle_plusby feather