quarta-feira, 2 de dezembro de 2009

Sistema operativo

Sistema operativo

Um sistema operativo (português europeu) ou sistema operacional (português brasileiro) é um programa ou um conjunto de programas cuja função é servir de interface entre um computador e o usuário.

Segundo alguns autores (Silberschatz et al, 2005; Stallings, 2004; Tanenbaum, 1999), existem dois modos distintos de conceituar um sistema operacional:
-Pela perspectiva do usuário ou programador (visão top-down): é uma abstracção do hardware, fazendo o papel de intermediário entre o aplicativo (programa) e os componentes físicos do computador (hardware); ou
-Numa visão bottom-up, de baixo para cima: é um gerenciador de recursos, i.e., controla quais aplicações (processos) podem ser executadas, quando, que recursos (memória, disco, periféricos) podem ser utilizados.

Linguagem de programação

Linguagem de programação
Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto de regras sintácticas e semânticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai actuar, como estes dados serão armazenados ou transmitidos e quais acções devem ser tomadas sob várias circunstâncias.
O conjunto de palavras (tokens), compostos de acordo com essas regras, constitui o código fonte de um software. Esse código fonte é depois traduzido para código de máquina, que é executado pelo processador.
Uma das principais metas das linguagens de programação é permitir que programadores tenham uma maior produtividade, permitindo expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (código de máquina). Assim, linguagens de programação são projectadas para adoptar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programação são ferramentas importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez.
Linguagens de programação também tornam os programas menos dependentes de computadores ou ambientes computacionais específicos (propriedade chamada de portabilidade). Isto acontece porque programas escritos em linguagens de programação são traduzidos para o código de máquina do computador no qual será executado em vez de ser diretamente executado. Uma meta ambiciosa do Fortran, uma das primeiras linguagens de programação, era esta independência da máquina onde seria executada.

terça-feira, 1 de dezembro de 2009

PERIFÉRICOS DE ENTRADA E DE SAÍDA

Periférico
Periféricos são aparelhos ou placas que enviam ou recebem informações do computador. Na informática, o termo "periférico" aplica-se a qualquer equipamento acessório que seja ligado à CPU (unidade central de processamento), ou, num sentido mais amplo, ao computador. São exemplos de periféricos: impressoras, digitalizadores, leitores e ou gravadores de CDs e DVDs, leitores de cartões e disquetes, mouses, teclados, câmeras de vídeo, entre outros.
Cada periférico tem a sua função definida, desempenhada ao enviar tarefas ao computador, de acordo com sua função.
Existem vários tipos de periféricos:
De entrada: basicamente enviam informação para o computador (teclado, mouse, joystick, digitalizador);
De saída: transmitem informação do computador para o utilizador (monitor, impressora, caixa de som);
De processamento: processam a informação que a CPU (unidade central de processamento) enviou;
De entrada e saída: enviam/recebem informação para/do computador (monitor touchscreen, drive de DVD, modem). Muitos destes periféricos dependem de uma placa específica: no caso das caixas de som, a placa de som.
De armazenamento: armazenam informações do computador e para o mesmo (pen drive, disco rígido, cartão de memória, etc).
Externos: equipamentos que são adicionados a um computador, equipamentos a parte que enviam e/ou recebem dados, acessórios que se conectam ao computador.
Outros recursos são adicionados ao computador através de placas próprias: é o caso da Internet, com placa de rede ou modem; televisão, através de uma placa de captura de vídeo, etc.

COMPONENTES INSTALADOS NA PLACA PRINCIPAL

Componentes


Vamos destacar os mais importantes componentes de uma placa mãe:
Processador (conectado ao soquete)
Memória RAM
Bios (memória ROM)
Bateria
Chipset (norte e sul)
Conectores
Slots de expansão (PCI, ISA, AGP...)
Conector IDE
Conector SATA
Conector Mouse(br)/Rato(pt)
Conector Teclado
Conector Impressora (porta paralela)
Conector USB
Processador
O processador fica encaixado no soquete devendo observar que uma placa-mãe não aceita qualquer tipo de processador, pois é desenvolvida para soquetes específicos. Cada tipo de processador tem características que o diferenciam de outros modelos, a quantidade de pinos, por exemplo, ou o barramento da ponte norte. Assim sendo, a placa-mãe deve ser desenvolvida para aceitar determinados processadores.
Memória RAM
As placas-mãe mais antigas trabalhavam com tecnologia conhecida com SDR SDRAM e a DDR, atualmente o padrão mais usado é o DDR2, mas em breve se tornarão obsoletas, dando lugar as memórias DDR3.
Com relação à capacidade de instalação de memória RAM nas placas-mãe mais antigas chegavam a 32 MiB ou 64 MiB, entretanto hoje não é dificil achar micros com módulos de memória com 1 GiB ou 2 GiB, podendo chegar em algumas placas para servidor a 128 GiB (embora essas placas sejam muito raras, a possibilidade existe).
BIOS
BIOS (Basic Input Output System) é um tipo de chip (Flash-ROM) que contém um pequeno software responsável por controlar o uso dos dispositivos e mantém informações de data e hora. O BIOS trabalha junto com o POST (Power On Self Test), um software que testa os componentes do micro em busca de eventuais erros. Podemos alterar as configurações de hardware através do Setup, uma interface também presente na Flash-ROM.
Bateria
A bateria interna do tipo Lítio(bateria de lítio) CR2032 tem a função de manter as informações da Flash-ROM (EEPROM) armazenadas enquanto o computador está desligado (somente em placas-mãe antigas, nas atuais sua principal função é manter o relógio interno funcionando).
Chipset
Chipset é um chip (ou conjunto de chips) responsável pelo controle de diversos dispositivos de entrada e saída como o barramento de comunicação do processador, o acesso à memória, o acesso ao HD, periféricos on-board e off-board, comunicação do processador com a memória RAM e entre outros componentes da placa-mãe. Geralmente, é dividido em southbridge e northbridge.
O northbridge faz a comunicação do processador com as memórias, através do barramento de comunicação externa do processador, e com os barramentos de alta velocidade AGP e PCI Express. Como ele faz o trabalho mais pesado, geralmente requer um dissipador de calor devido ao seu aquecimento elevado.
O southbridge geralmente é responsável pelo controle de dispositivos de entrada ou saída (I/O) como as interfaces IDE que ligam os HDs, os drives de CD-ROM, drives de DVD-ROM ao processador. Controlam também as interfaces Serial ATA. Geralmente cuidam também do controle de dispositivos on-board como o som.
Slots de expansão


Algumas tecnologias foram desenvolvidas para dar maior flexibilidade aos computadores pessoais uma vez que cada cliente pretende utiliza-lo para um fim específico.
O barramento PCI ou (Peripheral Component Interconnect) é uma tecnologia para conectar diferentes periféricos na Placa-mãe. Veja maiores detalhes no artigo Peripheral Component Interconnect.
As placas-mãe mais antigas dispunham de outras tecnologias leia os artigos para saber mais: barramento ISA, barramento EISA, barramento VESA.
O barramento AGP ou (Accelerated Graphics Port) é uma tecnologia de barramento usada principalmente por placas de vídeo. As placas AGP excedem um pouco em tamanho as placas PCI. A tecnologia AGP já está sendo substituída pelo barramento PCI Express. A tecnologia PCI Express conta com um recurso que permite o uso de uma ou mais conexões seriais. Veja mais no artigo PCI Express.

TIPOS DE MEMÓRIAS

A memória cache surgiu quando percebeu-se que as memórias não eram mais capazes de acompanhar o processador em velocidade, fazendo com que muitas vezes ele tivesse que ficar “esperando” os dados serem liberados pela memória RAM para poder concluir suas tarefas, perdendo muito em desempenho. Se na época do 386 a velocidade das memórias já era um fator limitante, imagine o quanto este problema não atrapalharia o desempenho dos processadores que temos atualmente. Para solucionar este problema, começou a ser usada a memória cache, um tipo ultra-rápido de memória que serve para armazenar os dados mais frequentemente usados pelo processador, evitando na maioria das vezes que ele tenha que recorrer à comparativamente lenta memória RAM. Sem ela, o desempenho do sistema ficará limitado à velocidade da memória, podendo cair em até 95%!. São usados dois tipos de cache, chamados de cache primário, ou cache L1 (level 1), e cache secundário, ou cache L2 (level 2). O cache primário é embutido no próprio processador e é rápido o bastante para acompanhá-lo em velocidade. Sempre que um novo processador é desenvolvido, é preciso desenvolver também um tipo mais rápido de memória cache para acompanhá-lo. Como este tipo de memória é extremamente caro (chega a ser algumas centenas de vezes mais cara que a memória RAM convencional) usamos apenas uma pequena quantidade dela. Para complementar, usamos também um tipo um pouco mais lento de memória cache na forma do cache secundário, que por ser muito mais barato, permite que seja usada uma quantidade muito maior.


Memória RAM


Diferentes tipos de RAM. A partir do alto: DIP, SIPP, SIMM 30 pin, SIMM 72 pin, DIMM (168-pin), DDR DIMM (184-pin)
Memória de acesso aleatório (do inglês Random Access Memory, frequentemente abreviado para RAM) é um tipo de memória que permite a leitura e a escrita, utilizada como memória primária em sistemas eletrônicos digitais.
O termo acesso aleatório identifica a capacidade de acesso a qualquer posição em qualquer momento, por oposição ao acesso sequencial, imposto por alguns dispositivos de armazenamento, como fitas magnéticas.
O nome não é verdadeiramente apropriado, já que outros tipos de memória (como a ROM) também permitem o acesso aleatório a seu conteúdo. O nome mais apropriado seria Memória de Leitura e Escrita.
Apesar do conceito de memória de acesso aleatório ser bastante amplo, atualmente o termo é usado apenas para definir um dispositivo eletrônico que o implementa, basicamente um tipo específico de chip. Nesse caso, também fica implícito que é uma memória volátil, isto é, todo o seu conteúdo é perdido quando a alimentação da memória é desligada.
Algumas memórias RAM necessitam que os seus dados sejam frequentemente refrescados (atualizados), podendo então ser designadas por DRAM (Dynamic RAM) ou RAM Dinâmica. Por oposição, aquelas que não necessitam de refrescamento são normalmente designadas por SRAM (Static RAM) ou RAM Estática.
Do ponto de vista da sua forma física, uma RAM pode ser constituída por um circuito integrado DIP ou por um módulo SIMM, DIMM, SO-DIMM, etc. Para computadores pessoais elas são normalmente adquiridas em módulos de memória (popularmente conhecido como pente, pelo fato de que seus contatos se parecem com os dentes de um pente de cabelo), que são placas de circuito impresso que já contém várias memórias já montadas e configuradas de acordo com a arquitetura usada na máquina.
A capacidade de uma memória é medida em Bytes, kilobytes (1 KB = 1024 ou 210 Bytes), megabytes (1 MB = 1024 KB ou 220 Bytes) ou gigabytes (1 GB = 1024 MB ou 230 Bytes).
A velocidade de funcionamento de uma memória é medida em Hz ou MHz. Este valor está relacionado com a quantidade de blocos de dados que podem ser transferidos durante um segundo. Existem no entanto algumas memórias RAM que podem efetuar duas transferências de dados no mesmo ciclo de clock, duplicando a taxa de transferência de informação para a mesma frequência de trabalho. Além disso, a colocação das memórias em paralelo (propriedade da arquitetura de certos sistemas) permite multiplicar a velocidade aparente da memória.
A memória principal de um computador baseado na Arquitetura de Von-Neumann é constituída por RAM. É nesta memória que são carregados os programas em execução e os respectivos dados do utilizador. Uma vez que se trata de memória volátil, os seus dados são perdidos quando o computador é desligado. Para evitar perdas de dados, é necessário salvar a informação para suporte não volátil (por ex. disco rígido), ou memória secundária.
Há também quem diga que uma memória volátil pode ser "burlada" ou "congelada" com hidrogênio liquido, ou seja, mesmo a memória sendo desligada, ela não perderia seus dados.

Memória ROM


EEPROM da Intel de 1971
A memória ROM (acrónimo para a expressão inglesa Read-Only Memory) é um tipo de memória que permite apenas a leitura, ou seja, as suas informações são gravadas pelo fabricante uma única vez e após isso não podem ser alteradas ou apagadas, somente acessadas. São memórias cujo conteúdo é gravado permanentemente.
Uma memória ROM propriamente dita vem com seu conteúdo gravado durante a fabricação. Atualmente, o termo Memória ROM é usado informalmente para indicar uma gama de tipos de memória que são usadas apenas para a leitura na operação principal de dispositivos eletrônicos digitais, mas possivelmente podem ser escritas por meio de mecanismos especiais. Entre esses tipos encontramos as PROM, as EPROM, as EEPROM e as memórias flash. Ainda de forma mais ampla, e de certa forma imprópria, dispositivos de memória terciária, como CD-ROMs, DVD-ROMs, etc., também são algumas vezes citados como memória ROM.
Apesar do nome memória ROM ser usado algumas vezes em contraposição com o nome memória RAM, deve ficar claro que ambos os tipos de memória são de acesso aleatório.

UNIDADES QUE COMPÕEM O CPU

Componentes
O processador é composto por alguns componentes, cada um tendo uma função específica no processamento dos programas.
Unidade lógica e aritmética
A Unidade lógica e aritmética (ULA) é a responsável por executar efectivamente as instruções dos programas, como instruções lógicas, matemáticas, desvio, etc.
Unidade de controle
A Unidade de controle (UC) é responsável pela tarefa de controle das acções a serem realizadas pelo computador, comandando todos os outros componentes.
Registadores
Os registradores são pequenas memórias velozes que armazenam comandos ou valores que são utilizados no controle e processamento de cada instrução. Os registadores mais importantes são:
Contador de Programa (PC) – Sinaliza para a próxima instrução a ser executada;
Registador de Instrução (IR) – Regista a execução da instrução;
Memory management unit
A MMU (em inglês: Memory Management Unit) é um dispositivo de hardware que transforma endereços virtuais em endereços físicos e administra a memória principal do computador.
Unidade de ponto flutuante
Nos processadores actuais são implementadas unidades de cálculo de números reais. Tais unidades são mais complexas que ULAs e trabalham com operandos maiores, com tamanhos típicos variando entre 64 e 128 bits

REPRESENTAÇÃO INTERNA DE DADOS

Representação de Dados Interna:
A representação interna de dados dentro da máquina de computador deve ser aceitável pela máquina e ajustar os conceitos eletrônicos. Isto levou ao desenvolvimento da língua de máquina separada que está na forma binária, conseqüentemente os dados a ser processados também devem estar na forma binária. os métodos diferentes de representar símbolos de língua naturais e números decimais na forma binária dentro da máquina constituem, representação de dados interna.
Os carateres e os números são alimentados à máquina de computador e os resultados produzidos da máquina, deve estar em uma forma que é usável e compreensível ao mundo externo; independente de representação de dados interna. A entrada externa ao computador e a produção externa do computador serão normalmente símbolos de língua naturais e carateres, números na forma decimal.