Transcript
Parte I – Introdução (Informação – Hardware e Software)
SISTEMA DE INFORMAÇÃO
Conjuntos de componentes inter-relacionados que coletam (entrada),
manipulam (processamento) e disseminam (saída) de dados e informação,
proporcionando um mecanismo de feedback para atender a um objetivo.
Todos nós interagimos diariamente com sistemas de informação, usamos
os caixas automáticos dos bancos, os scanners de leitura de preços dos
supermercados que identificam nossas compras usando o código de barras, e,
ainda, obtemos informação em quiosques por meio de telas sensíveis ao
toque.
O CONCEITO DE INFORMÁTICA
Ao longo da história, o homem tem precisado constantemente tratar e
transmitir informações, por isso nunca parou de criar máquinas e métodos
para processá-las. Com esta finalidade, surge a informática, como uma
ciência encarregada do estudo e desenvolvimento dessas máquinas e métodos.
A informática nasceu da idéia de auxiliar o homem nos trabalhos
rotineiros, exaustivos, repetitivos em geral, cálculos e gerenciamento.
Então podemos dizer que INFORMÁTICA (INFORmação autoMÁTICA), é a
ciência que estuda o tratamento automático e racional da informação.
CONCEITOS DE SISTEMAS DE INFORMAÇÃO
Dados
São fatos não trabalhados ainda pelo sistema. É um registro da
informação. Representam as coisas do mundo real.
Ex: o nome de um funcionário, a quantidade de horas trabalhadas,
quantidade de peças em estoque, etc.
Tipos de Dados
"Dados "Representação "
"Alfanuméricos"Letras, números e outros "
" "caracteres "
"Imagens "Imagens gráficas, fotos, "
" "etc. "
"Áudio "Som, ruídos ou tons "
"Vídeo "Imagens em movimento ou "
" "fotos "
Informação
É a matéria-prima com que o computador trabalha. Fornecemos-lhe
informações que possuímos para que ele processe e gera uma nova, com a qual
podemos tomar decisões, tirar conclusões, solucionar problemas, unir as
informações e obter através dele ainda mais dados.
COMPONENTES DE UM SISTEMA DE INFORMAÇÃO
Entrada
É a atividade de reunir e coletar dados brutos (dados não trabalhados)
Processamento
O processamento envolve a conversão e a transformação de dados brutos em
dados úteis.
Saída
A saída envolve a produção de informação útil, geralmente em forma de
documentos e/ou relatórios.
Feedback
É a saída utilizada para promover as mudanças na entrada ou nas
atividades de processamento. Por exemplo os erros ou problemas podem tornar
necessário corrigir dados de entrada ou mesmo modificar um processo. Ou
seja o Feedback é usado para conferir e corrigir a entrada e identificar os
problemas existentes, e consertar antes que ocorra a saída do processo, é
crítico para o sucesso da operação de um sistema.
O QUE É HARDWARE?
É o conjunto de toda a parte física do computador. O sistema pode ser
esquematizado como se segue:
FUNÇÕES DO PROCESSAMENTO DAS INFORMAÇÕES
Tempo de Ciclo de Máquina
Para a execução de uma instrução de máquina, é feita em um ciclo de
máquina. Um ciclo de máquina, que é o tempo no qual um ciclo ocorre é
medido em frações de segundos, desde microssegundos (um milionésimo de
segundo) e picossegundos (um trilionésimo de segundo) para os mais rápidos.
O tempo de ciclo de máquina pode ser medido em termos de quantas instruções
são executadas num segundo. Esta medida, chamada MIPS, representa milhões
de instruções por segundo.
Velocidade do Clock (Relógio)
Cada CPU produz uma série de pulsos eletrônicos numa taxa
predeterminada, denominada velocidade de clock, que afeta o tempo de ciclo
de máquina. A Unidade de Controle, parte integrante da máquina, acompanha
vários estágios do ciclo, seguindo instruções internas predeterminadas
conhecidas como microcódigos.
Ou seja, a Unidade de Controle executa o microcódigo de acordo com o
ciclo eletrônico, ou pulsos do "relógio" da CPU. Cada instrução de
microcódigo leva, no mínimo, a mesma quantidade de tempo entre os pulsos.
Concluindo: quanto menor o intervalo entre os pulsos, mais rápido cada
instrução de microcódigo será executada.
A unidade de medida utilizada para a velocidade de relógio é
megahertz.
Um hertz equivale a um ciclo ou pulso por segundo.
Megahertz (Mhz) milhões de ciclos por segundo
Gigahertz (Ghz) bilhões de ciclos por segundo
Terahertz (Thz) trilhões de ciclos por segundo
MEMÓRIA
É a unidade de armazenamento do sistema computador. Toda e qualquer
informação e/ou instrução do computador deve estar na memória para a
realização de uma tarefa.
A capacidade de memória é quantificada em bytes (já que nos interessa
saber o número de caracteres que podemos guardar). Quando a quantidade é
muito grande, utilizamos os múltiplos de byte.
"Byte "1 unidade "
"Kilobyte (Kbyte) – Kb "1.024 bytes "
"Megabytes (Mbyte) – Mb"1.024 Kbytes"
"Gigabytes (Gbyte) – Gb"1.024 Mbytes"
A memória é dividida em duas partes: a principal e a secundária (ou
auxiliar)
A memória principal é formada por componentes de dois tipos, RAM e
ROM, e é interna ao computador. Já a memória secundária é externa ao
computador, e é utilizada para guardar dados e programas para posterior
reutilização.
a) Memória Principal
RAM
A RAM (Random Access Memory = memória de acesso aleatório) é um tipo
de memória volátil, ou seja, pode ser gravada, lida e alterada via
programa. Seu conteúdo é destruído quando o micro é desligado.
O nome "memória de acesso aleatório" vem do fato de que esta memória
não guarda as informações em seqüência, mas sim em posições (endereços) não
previamente definidas. É a área da memória que se destina as armazenamento
do programa e os dados relativos ao processo que está sendo relativos a
processo que está sendo realizado no momento, ou seja, é a nossa área de
trabalho.
Tipos de RAM
EDO RAM – Extended Data Out = Principal tipo de RAM mais rápida do que
outros tipos de RAM;
SDRAM – RAM Sincrônica Dinâmica = supera a EDO RAM em performance, tem o
vantagem de efetuar mais rapidamente a transferência entre o
microprocessador e a memória.
DRAM – RAM DINÂMICA – os chips de RAM Dinâmica necessitam da aplicação de
altas e baixas voltagens em intervalos regulares – a cada dois
milisegundos (dois milésimos de segundos) – para que não percam a
informação.
ROM
A ROM (Ready Only Memory´= memória apenas de leitura) é um tipo de
circuito de memória, constante, fixa, de acesso seqüencial.
Já vem gravada de fábrica e contém as informações básicas para o
funcionamento do computador (por exemplo: o sistema operacional)
Ativa os dispositivos necessários para a inicialização das tarefas.
Funciona como se fosse um manual de consultas interno do computador.
De acordo com o processo de gravação do qual se vale o fabricante,
existem três tipos de ROM, a saber:
PROM: Programmable Read-Only-Memory = memória programável apenas para
leitura. É um tipo de ROM que só pode ser gravada uma vez, através de
equipamento especial.
EPROM: Eraseble Programmable Read-Only-Memory = memória programável e
apagável apenas para leitura. É uma ROM que pode ser apagada por raios
ultravioletas e posteriormente regravada.
EAROM: Electrically Alterable Read-Only-Memory = memória alterável
eletricamente, para leitura somente. Trata-se de uma ROM, cujo conteúdo
pode ser alterado eletricamente.
FIRMWARE é o nome especial que se dá ao componente que vem gravado de
fábrica por se tratar de software embutido em hardware, ou hardware
programado, também definido por fusão de hardware com software; no caso,
qualquer tipo de ROM é firmware.
Memória Cache
Memória de alta velocidade, onde o processador consegue acessar mais
rapidamente as informações do que as memórias principais. Todos os dados
utilizados freqüentemente no processamento são armazenados na memória
cache, ao invés de serem armazenados na memória RAM que é mais lenta. Como
existem menos dados na memória cache, a CPU pode acessá-los mais
rapidamente do que se estivessem na memória principal.
b) Memória Secundária (Auxiliar)
Como sabemos que a memória que está dentro o computador fica ativa
durante os processamentos, e quando desligamos a máquina ela perde seu
conteúdo, precisamos de recursos para armazenar dados e programas fora do
computador: a memória auxiliar ou secundária.
DISCOS
Os discos, como parte da memória auxiliar, são unidades que permitem
manter as informações intactas fora da memória principal.
Os discos são gravados e lidos magneticamente e não pelo mesmo
processo dos discos de áudio que são comprados em lojas.
Todos os discos são divididos em trilhas, e as trilhas, em setores.
A gravação é feita de modo aleatório (sorteado), de acordo com os
espaços disponíveis.
Já a leitura é feita de modo direto, e para localizar essas
informações, o disco tem uma trilha só com os endereços das informações.
Existem dois tipos principais de discos: rígidos e flexíveis.
a) Discos Rígidos:
o Têm muito maior capacidade de armazenamento;
o Ficam fixos dentro do computador;
o Custam mais caros, mas são seguros;
o Para grande porte chamam-se DISK-PACKs;
o Para micros chamam-se WINCHESTERs ou HDs;
o A capacidade mínima é sempre por volta de 10 Mbyte.
b) Discos Flexíveis:
o São mais baratos e simples de usar;
o Tem por volta de 1,44 Mbyte de capacidade;
o São chamados de disquetes.
Alguns cuidados especiais para com os discos flexíveis:
1. não expô-los ao sol ou altas temperaturas;
2. não tocar nas áreas descobertas;
3. não expô-los à poeira e a fumaça;
4. não molhá-los;
5. não engordurá-los;
6. não escrever sobres eles (escreva na etiqueta e depois cole-a);
7. não amassá-los;
8. não empilhá-los;
9. não guardá-los em locais com objetos eletromagnéticos.
Em cada um destes casos o risco é da perda das informações e/ou do
disquete.
FITAS
As fitas, da mesma forma que os discos, permitem manter as informações
fora o sistema. São revestidas de óxido de ferro. A unidade que lê e grava
fitas é comumente chamada de unidade de fita. Temos três tipos de fitas: as
de rolo (para grande porte), as fitas cassete e os cartuchos (para micros).
Tem acesso seqüencial, ou seja, se o computador está lendo os dados do
centro do carretel de fita, toda a fita antes do ponto desejado precisa ser
lida e passada seqüencialmente. Sendo esta uma desvantagem da fita
magnética.
Discos Magnéticos
São revestidos de óxido de ferro; podem ser pratos finos de aço
(discos rígidos) ou de filme Mylar (disquetes). Os discos representam os
bits em pequenas áreas magnetizadas, sendo um meio de acesso direto, onde
as cabeças de leitura e gravação podem ir diretamente ao dado desejado sem
ter que ler todo o disco.
RAID – Redundant Array of Independent disks – Arranjo redundante de discos
independentes
É uma maneira de se aumentar o desempenho e a confiabilidade do
armazenamento de dados é o uso de conjunto de discos rígidos chamado RAID
(Redundant Array of Independent Disks). Esse arranjo antigamente só era
disponível para discos rígidos SCSI, porem atualmente já existem placas-mãe
que suportam o RAID para discos rígidos IDE bem como você encontrará à
venda placas RAID para discos rígidos IDE. O RAID opera com dois conceitos.
O primeiro é a divisão dos dados (data striping), que tem como objetivo
aumentar o desempenho de isco da máquina. Com o uso do sistema de divisão
de dados o RAID, o arquivo a ser armazenado é dividido m vários fragmentos,
e cada fragmento é armazenado em um disco rígido diferente, ao mesmo tempo.
Por exemplo, em um sistema RAID operando com a divisão de dados em um micro
com quatro discos rígidos, um arquivo de 400 KB seria dividido em quatro
fragmentos de 100 KB.
O segundo conceito por trás do RAID é o espelhamento, que tem como
objetivo aumentar a confiabilidade dos dados armazenados. Através do
espelhamento, os dados armazenados em um disco rígido são imediatamente e
automaticamente armazenados em outro disco rígido. Caso o primeiro disco
falhe, o segundo disco rígido entra imediatamente em ação substituindo, de
forma automática, o disco defeituoso. Utilizando a tecnologia hotswap é
possível trocar o disco defeituoso sem ter a necessidade de se desligar o
equipamento.
Discos Óticos
Equivalem a um disco de plástico, onde os dados são gravados através
de lasers especiais que fisicamente queimam pontos do disco. Os dados são
lidos diretamente do disco por meio de um dispositivo de leitura ótica,
como um aparelho de disco laser estéreo.
CD-ROM
São mídias que gravam informações, somente uma única vez, e não podem
mais ser modificado seu conteúdo. O disco é somente de leitura.
CD-R
São mídias que permitem a gravação de dados, podendo deixar partes do
disco livre para novas gravações futuras, mas não é possível apagar dados
já gravados anteriormente.
CD-RW
São mídias que permitem a gravação e a regravação de dados, podendo
deixar partes do disco livre para novas gravações futuras, podendo se
desejável, apagar dados gravados anteriormente.
Dispositivos de Entrada e Saída
São todos os dispositivos que estiverem ligados à unidade de
processamento. Estes equipamentos são destinados à concretização da
comunicação entre o usuário e a máquina. Estes dispositivos, por sua vez
podem ser classificados da seguinte maneira:
Dispositivos de Entrada
São aqueles que enviam informações do meio externo (dados brutos que
são lançados para dentro da máquina), para a CPU; convertem em informação
utilizável pela máquina.
Mouse e teclado são dispositivos mais comuns para entrar e inserir
dados como caracteres, textos e comandos básicos. Algumas empresas estão
desenvolvendo teclados mais confortáveis, ajustáveis e mais rápidos de
usar.Teclados como da Microsoft, entre outro, que foram projetados para
evitar danos às mãos e os pulsos causados por muitas horas de digitação.
Dispositivos de voz que usam microfones e software especiais para registrar
e converter o som da voz humana em sinais digitais. O reconhecimento de voz
também pode ser utilizado em sistemas de segurança das empresas permitindo
o acesso a áreas restritas somente de pessoal autorizado. Existe também a
biometria, que é um dispositivo de entrada que lê as informações da
impressão digital dos dedos da pessoa, podendo restringir o acesso a
algumas áreas da empresa. As câmeras digitais também são outro tipo de
dispositivo de entrada, elas registram e armazenam imagens e vídeos na
forma digital, bastante parecidas com os modelos convencionais.
Dispositivos de Saída
São dispositivos que recebem as informações da CPU já processadas, a
fim de que sejam mostradas ao usuário. Estes dispositivos fornecem saída
para aos usuários para poderem tomar decisões em todos os níveis de uma
organização, desde a resolução do problema até a capitalização de uma
oportunidade competitiva. Qualquer que seja seu conteúdo ou forma, a função
desses dispositivos compreende o fornecimento da informação certa, para a
pessoa certa, no formato certo e na hora certa. Os monitores semelhantes a
um aparelho de TV exibem estas saídas para o usuário. Existem vários
modelos, marcas e preços sendo que as novas tendências de mercado são os
monitores de cristas líquido, ou telas de LCD, que funcionam através de uma
pistola de elétrons, ditante cerca de 1 pé (30,48cm) da tela, o que os
torna grandes e volumosos. São telas planas que utilizam cristais líquidos,
ou melhor, material orgânico semelhante ao óleo colocado entre dois
polarizadores para formar caracteres e imagens gráficas sobre uma tela
iluminada por trás. Os plotters são também um tipo de dispositivo de saída
são utilizados para a impressão de projetos de arquitetura, engenharia, nas
empresas, para imprimir projetos, esquemas e desenhos de construções ou de
novos produtos em papel acetato ou transparências. A largura padrão é de 24
e 36 polegadas.
O QUE É SOFTWARE?
Você já percebeu uma coisa: um sistema de computação constitui-se de
duas partes, sendo uma física (circuitos) e uma lógica.
Toda a parte lógica do sistema recebe um nome genérico: SOFTWARE.
Fazem parte do Software: o programa, o sistema operacional, os dados,
o compilador, o assembler, o interpretador etc.
Existem três tipos de software: básico (do fabricante), utilitários
(de apoio) e aplicativos (do usuário).
1. Software Básico
É o conjunto dos programas básicos que o fabricante do computador ou
SoftHouse especializada desenvolve para utilizar toda a sua potencialidade.
Exemplos típicos: sistemas operacionais e seus complementos, compiladores e
interpretadores.
2. Software Utilitário
São programas desenvolvidos por empresas ou profissionais liberais
especializados, para auxiliar na execução de tarefas repetitivas e
exaustivas. Existe um infinidade de utilitários, mas podemos agrupá-los em
famílias de acordo com a área de atuação: editores de texto, planilhas
eletrônicas, bases de dados, geradores de gráficos, simuladores,
ferramentas operacionais e integrados.
2.1 Editores de Texto
Tem a função de auxiliar na criação/correção de textos, permitindo
formatar, alterar, duplicar, copiar, concatenar (ligar em seqüência),
imprimir cópias, gravar para depois reutilizar etc.
Dentro do editor, trabalha como se o vídeo fosse uma folha de papel na
máquina de escrever, com a vantagem de que se pode "correr" pela folha com
o cursor e fazer correções, alterações, "salvar" o texto em disco para
utilizar em outra ocasião, além de se contar com um número considerável de
comandos para inserir trechos de outro texto, repetir operações, anular
linhas inteiras ou qualquer outra operação que facilite o trabalho.
Um bom editor de texto permite a elaboração de:
Etiquetas de identificação;
Mala direta;
Correspondências;
Formatação de páginas;
Layout de fichas;
Escrituras;
Livros como este com numeração de páginas, índice, vários tipos de letras
etc.
2.2 Planilhas eletrônicas
Tem a função de manipular tabelas numéricas ou não, com a facilidade
de efetuar cálculos por linhas ou pro colunas. As planilhas geralmente se
apresentam em formato de linhas e colunas, sendo as linhas identificadas
por letras e as colunas por números. Para localizar ou operar com um dado
fornece-se à linha e a coluna onde ele se encontra. Exemplo: para localizar
uma dado na linha B coluna dois, digita-se B2 (chamado de célula).
Com uma planilha eletrônica pode-se elaborar:
Fluxo de caixa;
Controle de conta bancária;
Controle de estoque simples;
Controle de materiais;
Controle de frotas;
Cálculos contábeis;
Cálculos científicos.
2.3 Base de Dados
São gerenciadores de arquivos (coleções de dados), com grandes
recursos de localização, alteração, gravação e consulta de dados.
Também são chamados de Banco de Dados, mas esta denominação é mais
correta para as coleções de dados gerenciados pelo dB.
Podem ser utilizados de forma direta ou programada. São aplicados no
gerenciamento de coleções de dados como:
Carteira de cobrança;
Gerenciamento de clientes;
Controle de crediário;
Controle de turmas de escolas;
Controle de pagamentos;
Fichários diversos, etc...
Podem ser:
Simples = arquivos completos independentes.
Relacionais = arquivos que se completam entre si pela chave de acesso
(Access – chave primária).
Analogia:
Base de dados simples: Toda a família Santos mora neste edifício
Base de dados relacional: Edifícios onde podemos encontrar integrantes da
família Santos
Santos = chave de acesso para encontrar os integrantes. Cada edifício, nos
dois exemplos, representa um arquivo.
2.4 Geradores de gráficos
São utilizados para plotar gráficos e elaborar desenhos e diagramas.
São programas de alta especialização, científicos ou artísticos; ilustram
trabalhos estatísticos, de engenharia e outros. Todos os profissionais que
necessitam gerar, gravar, reutilizar, alterar, imprimir gráficos e desenhos
técnicos ou artísticos em seus trabalhos utilizam-se destas ferramentas.
2.5 Simuladores
São geradores de movimento (animação) ou de som (sintetizador),
simuladores de equipamentos ou similares. Este tipo de software é utilizado
na elaboração de jogos ou no auxílio de tarefas que outros softwares não
estão preparados para realizar.
2.6 Ferramentas operacionais
São utilitários que atuam junto ao sistema operacional, racionalizando
espaços de arquivos, recuperando arquivos destruídos acidentalmente ou não,
pesquisando ocorrência em arquivos, controlando diretórios e subdiretórios,
pesquisando erros em discos, recuperando discos e outras tarefas de
interesse do operador.
2.7 Integrados
Trata-se de grupos de utilitários, reunidos em um só, que geralmente
"conversam" entre si.
Exemplos:
LOUTS 1,2,3 = editor de texto + planilhas + banco de dados
MICROSOFT OFFICE = editor de texto + planilha + banco de dados +
apresentações de slides
3. Software do usuário
São programas dedicados para fins específicos. São desenvolvidos
especialmente para empresas ou particulares que solicitem a um programador
ou SoftHouse.
Cada programa é aplicado para resolver um problema ou para realizar um
determinada tarefa e nada mais. Não são adaptáveis e geralmente são
exclusivos de quem solicitou, devido às particularidades e que atendem.
Podem ser: folhas de pagamentos, contabilidade, faturamento, controle de
estoque, agenda, marcação de consultas, etc.
Conclusão
Tudo o que o computador faz é controlado pela parte lógica do sistema.
A solução de um problema é transformada em programa, escrito em determinada
linguagem. Depois é compilado, interpretado ou montado; um outro programa
equivalente em linguagem de máquina é criado.
Parte II – História, As gerações e Classificação dos Computadores
Prólogo
A história da humanidade já passou por várias fases. Três delas
mudaram completamente a estrutura e o modo de vida da sociedade. Por isso,
ganharam o apelido de "ONDAS", dado por Alvin Tofler.
(Alvin Tofler = é autor de A Terceira Onda, O choque do Futuro e
outras obras.)
A primeira onda foi a Revolução Agropecuária, que há milhares de anos
fixou o homem no campo para produzir os bens de que necessitava e, um pouco
além, para trocar pelo que não conseguia produzir (escambo).
O homem passou a viver em família, e o seu trabalho se voltava para
ela. As poucas indústrias eram manufaturas, voltadas para atender a
população geograficamente, caracterizando a produção para a prestação de
serviços, e não para o consumismo.
No final da Idade Média surgiu a segunda onda, sob a forma da
Revolução Industrial. Os homens se agruparam em torno das fábricas,
formando as cidades. Surgindo a produção para o consumo, e com isto a
propaganda. O homem com sua família vivia em função das fábricas, passando
a maior parte de seu tempo fora do lar, sendo assim à medida que evoluíam
as indústrias, involuía a valorização do eu em prol de projetos de maior
produção, maiores vendas, maior consumo. Vindo então a poluição, desde os
valores humanos até o meio ambiente. O homem estava destruindo seu próprio
universo.
Quase desapercebida entre tudo isso, ia crescendo a terceira onda: a
era da Informação e a ciência que fornecia os métodos de seu tratamento: a
INFORMÁTICA.
Através dos computadores o homem já poderia deixar todo trabalho
exaustivo de classificar, organizar, contabilizar, cadastrar, pesquisar,
rastrear, supervisionar, enfim, tarefas que exigem atenção e muito tempo
para sua concretização. Pois o computador devido a sua rapidez e exatidão,
se incube destes serviços, liberando o homem para voltar às origens
participando mais da vida do lar e dos seus, criar e produzir meios para
levar uma vida mais interessante. Ou seja o homem não vive mais em função
da máquina, mais pensa, cria e a máquina produz.
AS GERAÇÕES DE COMPUTADORES
É inegável que o homem vive cercados de máquinas. Existem máquinas
para transportar, para escrever, para grampear, para comunicar, para manter
a temperatura, para fazer máquinas e para uma infinidade de atividades.
Todas criadas, idealizadas e dominadas pelo homem, auxiliando-o em seu
cotidiano. O computador também é uma criação do homem, como todas as
máquinas, o computador é um sistema, ou seja: é um conjunto de elementos
interligados com a finalidade de atingir um objetivo determinado.
A matéria prima com que o computador trabalha é a informação.
Fornecemos-lhe informações que possuímos para que processe e gere uma nova,
com a qual poderemos tomar decisões, tirar conclusões, solucionar
problemas, unir outras informações e obter através dele ainda mais dados.
A ciência que trata da informação chama-se Informática (INFORmação
autoMÁTICA). Ela engloba o computador (tanto a parte física quanto a
lógica) e os vocábulos próprios, e sua principal característica é sua
dinâmica evolutiva.
HISTÓRIA DOS COMPUTADORES – As Gerações
Primeira geração Os computadores de primeira geração são todos os baseados
em tecnologias de válvulas eletrônicas. Esta geração vai até 1959, mas seu
início é classificado em 1942 e 1951. Os computadores da primeira geração
normalmente quebravam após não muitas horas de uso. Tinham dispositivos de
Entrada/Saída primitivos, calculavam com uma velocidade só de milésimos de
segundo e eram programados em linguagem de máquina. Considerando que só em
1951 surgiram os primeiros computadores produzidos em escala comercial,
pode-se iniciar a primeira geração com o UNIVAC I destacando o EDVAC, o
Whirlwind e o IBM 650 como computadores típicos dessa geração. Não é
difícil de imaginar a confiabilidade, a quantidade de energia consumida e o
calor produzido por 20.000 válvulas de um computador da primeira geração.
Segunda Geração Nos equipamentos de segunda geração, a válvula foi
substituída pelo transistor, tecnologia usada entre 1959 e 1965. O
transistor foi desenvolvido em 1947 no Bell Laboratories e por William
Shockley, J.Brattain. Seu tamanho era 100 vezes menor que o da válvula, não
precisava de tempo para aquecimento, consumia menos energia, era mais
rápido e mais confiável. Os computadores da segunda geração á calculavam em
microssegundos , eram mais confiáveis e o seu representante clássico foi o
IBM 1401 e seu sucessor o IBM 7094, já totalmente transistorizado. Entre os
modelos 1401 e 7094, a IBM vendeu mais de 10.000 computadores.
Terceira geração A terceira geração começa com a substituição dos
transistores pela tecnologia de circuitos integrados - transistores e
outros componentes eletrônicos miniaturizados e montados num único chip -,
que já calculava em nanosegundos (bilionésimos). O evento considerado
precursor da terceira geração é o anúncio em 7 de abril de 1964 da família
criada por Gene Amdahl, chamada System/360, o IBM 360, com seis modelos
básicos e várias opções de expansão que realizava mais de 2 milhões de
adições por segundo e cerca de 500 mil multiplicações. Esse fato tornou
seus antecessores totalmente obsoletos e possibilitou à IBM comercializar
bem mais 30.000 sistemas.
Quarta geração A quarta geração é localizada a partir do ano de 1970 ou
1971 até hoje - considerando a importância de uma maior escala de
integração alcançada pelos CI's de LSI. Finalmente, a outra corrente usa o
mesmo argumento da anterior, mas considerando que a miniaturização de fato
com os VLSI's, definindo a quarta geração de 1975, com o advento dos
microprocessadores e dos microcomputadores.
EVOLUÇÃO DOS COMPUTADORES
Máquina capaz de realizar várias operações matemáticas em curto espaço
de tempo, de acordo com programas preestabelecidos que atendem a
finalidades específicas. Desde o surgimento do primeiro computador
mecânico, em 1880, o objetivo foi desenvolver máquinas cada vez menores e
com maior capacidade. As partes mecânicas iam sendo substituídas por
componentes elétricos e, posteriormente, os relés, as válvulas e os
transistores dando lugar aos chips, que permitiram o avanço dos
microprocessadores, base dos microcomputadores. Em 1880, o americano
Hermann Hollerith (1860-1929) desenvolve o primeiro computador mecânico e
funda a empresa que se tornaria, em 1924, a International Business Machines
(IBM). A partir de 1930 são feitas experiências para substituir as partes
mecânicas por elétricas. A primeira máquina capaz de efetuar cálculos
complexos sem a intermediação humana é o Mark I, que surge em 1944 e tem 15
m por 2,5. Dois anos depois, nos EUA, um grupo conclui o ENIAC (Eletronic
Numerical Integrator and Computer), mil vezes mais rápido que o Mark I. Na
mesma época é estabelecida a arquitetura básica de um computador, empregada
até hoje: memória, unidade central de processamento e dispositivos de
entrada e saída de dados. A invenção do transistor, em 1947, substitui a
válvula e propicia a criação dos primeiros modelos de tamanho reduzido e
preço mais acessível. No final da década de 50, a Texas Instruments anuncia
os resultados de uma pesquisa com circuito integrado, um conjunto de
transistores, resistores e capacitores construídos sobre uma base de
silício (material semicondutor), chamado chip. Com ele, avança a
miniaturização dos equipamentos eletrônicos. A IBM é a primeira a lançar
modelos com a nova tecnologia. No final dos anos 60, a Intel projeta o
microprocessador, dispositivo que reúne num mesmo circuito integrado todas
as funções do processador central. Primeiro PC - Em 1974, o programador
americano Bill Gates (1955) adapta a linguagem Basic dos computadores de
grande porte para o Altair, o primeiro modelo de microcomputador. Gates se
antecipa a uma demanda do mercado por softwares e, em 1975, funda a
Microsoft. O primeiro computador pessoal, o Apple I, é criado em uma
garagem, em 1976, pelos americanos Steven Jobs (1955) e Stephan Wozniak.
Cinco anos depois, a IBM lança o seu PC (Personal Computer) e contrata a
Microsoft para desenvolver o sistema operacional, o MS-DOS. Bill Gates
convence outras companhias, além da IBM, a utilizarem o seu sistema, o que
permite que um mesmo programa funcione em micros de diversos fabricantes.
Em 1983, a IBM lança o PC-XT. A arquitetura é copiada em todo o mundo e os
micros tipo PC passam a ser conhecidos pelos modelos do microprocessador,
cada vez mais potentes: 286, 386SX, 386DX, 486SX, 486DX, Pentium e Pentium
Pró (lançado em 1955). O único micro a fazer frente aos PC's é o Macintosh,
que é lançado em 1984 e revoluciona o mercado promovendo o uso de ícones e
do mouse. O ícone é um símbolo gráfico que indica um comando e o mouse
substitui muitas das funções do teclado. No ano seguinte, a Microsoft lança
o Windows, sistema operacional que utiliza também o ícone e o mouse em PC.
O Windows só alcança a partir de 1990, com a versão 3.0. Em 1995 uma nova
versão vende 7 milhões de cópias em menos de dois meses após o lançamento.
CLASSIFICAÇÃO DOS COMPUTADORES
Existem muitas formas de se classificar os computadores, dependendo de
suas características eles podem ser divididos em vários grupos:
Quanto à característica de operação
Quanto ao porte (tamanho)
Quanto à característica de construção
Outras classificações
Quanto à característica de operação
Analógicos - representam variáveis por meio de analogias físicas.
Trata-se de uma classe de computadores que resolve problemas referentes a
condições físicas, por meio de quantidades mecânicas ou elétricas,
utilizando circuitos equivalentes como analogia ao fenômeno físico. Os
computadores analógicos tem emprego principalmente em laboratórios e para
aplicações científicas e tecnológicas, enquanto os computadores digitais
têm emprego mais generalizado. O computador analógico "mede".
Digitais - processa a informação representando-a por combinação de
dados discretos ou descontínuos. Transforma qualquer informação,
internamente, em números (trabalha com dígitos). O computador digital
"conta".
Quanto ao porte (tamanho)
Os computadores podem ser classificados quanto ao seu porte em:
Mainframes (ou computadores de grande porte)
Manipulam grande quantidade de informações atendendo vários usuários
ao mesmo tempo. Especialmente voltados a aplicações comerciais.
Supercomputadores
Utilização em laboratórios de pesquisa , centros militares e de
inteligência artificial. Muito rápidos. Avalia-se o desempenho dos
supercomputadores em termos de MIPS (milhões de instruções executadas por
segundo), cujas unidades usadas para medir a capacidade de cálculo do
computador (medida de desempenho - performance) são Gigaflops e Teraflops
(respectivamente, milhões e bilhões de operações de ponto flutuante por
segundo). Teraflops: em termos de rapidez equivale a um computador com
capacidade de 1 milhão de PCs trabalhando juntos ao mesmo tempo.
Seymour Roger Cray "Pai dos Supercomputadores"
Cray I – 80 MIPS
Cray II- 480 MIPS
Cray III - 8.000 MIPS
Cray IV - 160 GIGAFLOPS
* Ponto flutuante: representação de dados numéricos usando posição móvel do
ponto flutuante do ponto decimal através da mantissa e do expoente.
* Mantissa: parte fracionária de um valor numérico.
Minicomputadores
Panorama atual da Informática: classe de computadores em extinção
(desaparecendo do mercado) em função da diminuição dos preços dos
mainframes e o aumento da potência dos supermicros.
Supermicros
Plataforma de ambiente multiusuário e multitarefa (redes).
Microcomputadores
Década de 70, marco importante na história da Informática, surgimento
dos primeiros microcomputadores em escala comercial. Indústria dos
microcomputadores: Aplle (Lisa e Macintosh), IBM (IBM-PC), Compaq (micros
portáteis).
1. Baixo custo
2. Complexidade tecnológica transparente ao usuário: desenvolvimento maciço
de ferramentas e programas (crescente capacidade e potencial de
aplicações), total interação com o usuário através da facilidade de
operação (softwares amigáveis) e recursos visuais.
3. Obsolência: vida útil física e principalmente vida útil tecnológica do
equipamento, provocada pela velocidade do desenvolvimento tecnológico.
Frente à capacidade e aplicação dos microcomputadores no mercado atual da
informática, pode-se ressaltar a tendência ao desuso progressivo dos
demais tipos de equipamentos em função do uso generalizado da tecnologia
de microinformática.
Quanto à característica de construção
Quanto à característica de construção os computadores são agrupados em
gerações. A mudança de uma geração à outra se dá pela alteração da
tecnologia utilizada na construção dos computadores. Neste ponto alguns
autores discordam quando ao início exato de cada período.
"Gerações "Primeira "Segunda "Terceira "Quarta "Quinta "
"Época "1957-1959 "1959-196"1965-1975 "1975 "199? "
" " "5 " " " "
"Exemplos "ENLAC "IBM 1401"IBM 360 "IBM 3090 "Pentium "
"Típicos "UNIVAC I " "IBM370 "CRAY " "
" "EDVAC "IBM 7094"DECPDP-8 "Micros " "
" "WHIRLWIND " " "(evolução do" "
" "IBM 650 "CDC6600 " "computador " "
" " " " "digital) " "
"Tecnologia "Válvula "Transist"Circuito "CI - VLSI "CI - ULSI "
"Básica " "or "Integrado " " "
"(Componentes" " "(CI) " " "
") " " " " " "
"Memória "2K "32K "128K ">1 M "M e G "
"MIPS "0.01 "0.1 "1K "> 10 "> 100 ou "
" " " " " "gigaflops (1 "
" " " " " "bilhão de "
" " " " " "operações por"
" " " " " "segundo) "
1ª Geração (1946-1954) - (1951 - 1959)
Principal exemplo desse período é o UNIVAC I, produzido em escala
comercial (15 unidades foram vendidas) tinha pouco mais que 20m2. A seguir
tem-se as principais características dessa geração.
circuitos eletrônicos a válvulas;
operações internas em milissegundos;
esquentavam muito;
grande consumo de energia;
centenas de operações por segundo;
quebravam com muita freqüência;
programação em linguagem de máquina;
dispositivos de entrada/saída primitivos.
2ª Geração (1955-1964) - (1959 -1965)
Computadores com transistores. Um transistor era 100 vezes menor que
uma válvula o que permitiu a redução do tamanho dos computadores.
Características dessa geração:
circuitos eletrônicos transistorizados;
Operações internas em microssegundos;
Consumiam pouca energia que os anteriores;
Eram menores;
Eram mais rápidos;
Milhares de operações por segundo;
Linguagens simbólicas (ASSEMBLY).
3ª Geração (1965-1974) - (1965 - 1975)
A principal característica dessa geração é a utilização de circuitos
integrados (miniaturização dos transistores e outros componentes
eletrônicos).
muito mais confiáveis (não há peças móveis);
muito menores;
baixíssimo consumo de energia;
custo menor;
escala de integração crescente (cada vez mais componentes num mesmo chip,
através de processos mais precisos de miniaturização de componentes).
Quantos circuitos eletrônicos podem-se colocar num único chip:
SSI (Small Scale of Integration) - Dezenas de CIs
Aproximadamente 10 circuitos - Início da década de 60
MSI (Medium Scale of Integration) - Centenas de CIs
Aproximadamente 100 circuitos - Final da década de 60
LSI (Large Scale of Integration) - Milhares de CIs
Aproximadamente 1.000 circuitos - Década de 70
VLSI (Very Large Scale of Integration) - Centenas de milhares de CIs
Aproximadamente 10.000 circuitos - Década de 80
ULSI (Ultra Large Scale of Integration) - Milhões de CIs
Aproximadamente 100.000 circuitos a 1.000.000 de circuitos - Década de
90 operações internas em nanosegundos. Alguns autores consideram que a
terceira geração vai até os dias de hoje. Outros consideram que a partir da
tecnologia LSI e até mesmo VLSI são o marco para o início da quarta geração
de computadores.
4ª Geração (1974 - hoje) - (1975)
LSI (Large Scale of Integration) e VLSI (Very Large Scale of Integration)
Microprocessador (levou a criação dos microcomputadores). Este é o
principal marco dessa geração o que permitiu que a informática realmente
realizasse o seu processo de difusão, pois a partir desse ponto começou a
tornar-se acessível a qualquer pessoa a compra de um computador de uso
pessoal.
5ª Geração - projeto japonês: sistemas de computação envolvendo
inteligência artificial, sistemas especialistas e linguagem natural.
Há autores que consideram uma quinta geração de computadores que surge
a partir do desenvolvimento de máquinas de processamento paralelo,
arquitetura Risc, computadores com inteligência artificial (sistemas
especialistas) e desenvolvimento de linguagens naturais.
Outras Classificações
Os computadores podem ser classificados conforme número de
processadores, o número de usuários e a interligação entre os computadores.
Sistema monoprocessado e multiprocessado: um processador X vários
processadores.
Sistema monousuário e multiusuário: um usuário X vários usuários.
Sistema centralizado e distribuído: processamento concentrado em um ponto
X processamento distribuído em vários pontos.
Redes:
Peer-to-peer (ponto a ponto): todas as estações tem o mesmo "status".
Baseado em servidor: alguns computadores (servidores) fornecem recursos
para as demais estações da rede. Uma rede é um conjunto de computadores
interligados (iguais ou diferentes) que compartilham recursos e trocam
informações.
O QUE FAZ UM COMPUTADOR?
O computador realiza tarefas de acordo com instruções que lhes são
fornecidas por um programa.
Programa
A seqüência lógica de instruções que determina ao computador o que ele
deve fazer é chamada de PROGRAMA. Não devemos confundir programa com dados:
enquanto o programa define o modo de trabalho do computador, os dados são
elementos que serão manipulados.
O programa é uma estrutura estática com uma função específica. O ato
de executar as instruções chama-se PROCESSO, que é uma estrutura dinâmica.
PROGRAMA = seqüência de instruções
PROCESSO = seqüências de ações
Estrutura de um programa
De modo geral, um programa consiste numa seqüência de instruções que
tratam um conjunto de dados com o objetivo de obter certos resultados de
saída a partir de certos dados iniciais ou dados de entrada.
Do ponto de vista de funcionalidade, uma programa é estruturado nas
seguintes partes:
1. Entrada de dados = Formada por todas as instruções que obtêm os dados
utilizados pelo programa de um dispositivo externo, armazenando-os na
memória principal do computador. Aqui se incluem as instruções que fazem
a depuração ou validação dos dados.
2. Processamento = Conjunto de instruções que resolvem o problema a partir
dos dados introduzidos, deixando os resultados na memória central. O
dispositivo físico carregado de efetuar essa tarefa recebe o nome de
processador.
3. Saída de resultado = É constituída pelas instruções que fazem com que os
dados resultantes do processo sejam enviados para fora através de algum
dispositivo externo.
Uma classificação muito comum das linguagens de programação do ponto
de vista das aplicações, é a que mostramos no seguinte esquema:
COMO É ESTRUTURADA A PROGRAMAÇÃO?
Devemos primeiro definir o PROBLEMA a ser TRATADO através do uso de um
computador. Devemos formular um problema até obtermos um algoritmo de
resolução implementado no computador, pronto para o uso, mas para isto
algumas etapas rigorosas deve ser seguida para que assegure a validade e a
qualidade do programa obtido.
Estes processo consiste em várias fases, que são elas:
1. Análise do problema
Fase de análise = consiste no estudo detalhado do problema a fim de
se obter uma série de documentos (especificação) em que se defina o
processo a ser seguido na automação. Está dividido em:
Análise preliminar
Análise funcional
Análise de projeto
Fase de programação = Não se implementa o algoritmo que pode estar
representado através de um fluxograma ou alguma das outras notações
intermediárias.
Fase de codificação = Descrição em linguagem de programação de alto nível
do algoritmo obtido na fase anterior. Para isso, são utilizados os
formulários de codificação.
2. Instalação e depuração
Fase de edição = Nesta fase o programa é transcrito para o computador,
geralmente através de um editor de programas ou processador de textos,
obtendo-se o que se chama de programa-fonte.
Fase de compilação = Consiste em obter o programa – objeto a partir do
programa-fonte, através do compilador da linguagem. O compilador além de
efetuar a tradução, faz uma análise sintática do programa.
Fase de montagem (linkagem) = Nessa fase são incluídas algumas rotinas
internas da linguagem e, se o método de programar utilizado for modular,
são ligados os diversos módulos existentes. O resultado final dessa fase
é o programa executável.
Fase de testes = O programa obtido através da fase de montagem é
submetido a um conjunto de testes com diversas amostras de entrada.
Para que um computador possa executar um programa, é necessário que
consiga entendê-lo, e isto só ocorrerá quando as instruções deste programa
seguirem uma série de normas e estruturas bem definidas.
A escrita de acordo com um conjunto de normas e estruturas
preestabelecidas é chamada de LINGUAGEM.
LINGUAGEM
É uma maneira de comunicação que segue uma forma e uma estrutura com
significado interpretável. Portanto, linguagem de programação é um conjunto
finito de palavras, comandos e instruções, escrito com o objetivo de
orientar a realização de uma tarefa pelo computador.
A linguagem do computador é completamente diferente da que estamos
acostumados a usar em nosso dia-a-dia. A máquina só trabalha com códigos
numéricos (linguagem de máquina), baseados nos números 0 e 1, que
representam impulsos elétricos, ausente e presente. Chamado de sistema
binário.
Linguagem de Alto Nível = linguagem natural do homem (muito clara, porém
lenta)
Linguagem de Baixo Nível = linguagem de máquina (mais semelhantes com a
máquina)
Para que haja a tradução de linguagem de alto nível para a linguagem
de baixo nível existe três tipos de meios: Compilador e Interpretador –
para linguagem de alto nível; Assembler (montador) – para linguagem de
baixo nível.
Compilador
É um programa interno do computador que traduz nosso programa escrito
em linguagem de alto nível (chamado programa-fonte, pois ele é a origem do
processo) para um programa equivalente escrito em linguagem de máquina
(chamado de programa objeto).
Interpretador
É um programa residente de alguns computadores (neste caso já vem
gravado de fábrica), também encontrado em disco. Transforma cada comando de
um programa escrito em linguagem de alto nível para o computador executar
em linguagem de máquina.
A diferença entre compilador e interpretador está na maneira de
traduzir:
O compilador = traduz o programa todo para depois executar apenas o
traduzido, então torna a execução mais rápida.
O interpretador = traduz e envia para execução, instrução por
instrução e o programa permanece na forma fonte.
Sintaxe da Linguagem
A sintaxe da linguagem estabelece como os símbolos devem ser
combinados em declarações que forneçam significativas para a CPU.
Uma regra do tipo "nomes das variáveis precisam iniciar com uma letra"
constitui exemplo de um padrão, onde uma variável equivale a um item que
pode tomar diferentes valores.
Seguindo os padrões de linguagem de programação, as organizações podem
focar menos na escrita do código e concentrar mais esforços para empregar
as linguagens de programação na solução de problemas empresariais com mais
eficácia.
Dividimos a evolução das linguagens de programação em cinco gerações:
1. Linguagens de 1ª Geração
A 1ª geração forma as linguagens de máquina. Muito complexas, pois
exigia o uso de muitos símbolos binários para a execução de uma simples
instrução. É considerada uma linguagem de baixo nível. A linguagem de
máquina é a linguagem lida pela CPU.
2. Linguagem de 2ª Geração
Nesta fase os desenvolvedores de linguagem de programação,
substituíram os dígitos binários por símbolos de fácil entendimento para os
programadores.
Foi quando surgiu a linguagem Assembly, e os programas usados para
traduzi-las em código de máquina são chamados Assemblers.
Os softwares básicos, como sistemas operacionais, são freqüentemente
escritos em linguagem Assembly.
3. Linguagem de 3ª Geração
Estas linguagens mantiveram a tendência em direção ao maior uso de
símbolos para instruir o computador como completar uma operação.
São mais fáceis de aprender e de usar, porque sua sintaxe é mais
parecida com a forma de expressão do ser humano.
São linguagens de alto nível que precisam ser convertidas por um
software básico, para um código binário.
Ex.: Fortran, Cobol, C, C++
4. Linguagens de 4ª Geração
É menos orientada a procedimentos e mais parecida com o inglês do que
as linguagens de 3ª geração.
Algumas características dessas linguagens incluem a capacidade de
consultas e de manipulação de Banco de Dados, capacidade de geração de
código executável e funcionalidades gráficas.
Ex.: Visual C++, Delphi, Visual Basic, SQL (Linguagem de consulta
estruturada).
5. Linguagens de 5ª Geração
As ferramentas com linguagens de 5ª geração apareceram em meados de
1998.
Elas combinam geração de código baseado em regras, gerenciamento de
componentes, técnicas de programação visual. São as linguagens orientadas a
objeto.
Ex.: Java, C++.
Linguagens de Alto Nível
As linguagens de alto nível, também denominadas de linguagens
avançadas, são aquelas que visam se aproximar da linguagem humana, para que
o programa possa ser escrito e lido de uma maneira mais simples, eliminando
muitas possibilidades de cometerem erros, que eram muito freqüentes nas
linguagens de máquina, pois utilizavam-se de diversos símbolos para
representar os caracteres.
Algumas linguagens de alto nível:
ALGOL (Algorithmic Oriented Language) – Voltada à expressão de
algoritmos, portanto de característica científica. É pouco difundida em
face do alto custo do compilador que requer.
APL (A Programming Language) – Destinada a terminais com aplicações
interativas.
BASIC – É à base de um repertório de instruções simples e poderosas, com
capacidade de grande desenvolvimento, inclusive no trato de funções
matemáticas. Tornou-se a linguagem de programação mais popular do mundo.
CLIPPER – Voltada à gerência de arquivos em microcomputadores, é a
continuação da família dBase. O dBase foi o gerenciador de arquivos que
mais se popularizou. A versão dBaseIV inclui um SQL (Structured Query
Language) para consultas a banco de dados.
C – Linguagem estruturada que constituí em ótima ferramenta para
codificação de software básico, com vistas a facilitar o trabalho de
programadores experientes. Sua versão avançada é o C++, que é uma
linguagem de programação orientada a objetos.
COBOL (Commom Bussiness Oriented Language) – Resultado de esforço para
estabelecer uma linguagem padrão de programação no processamento
comercial, usuário e fabricantes de computadores. A versão mais recente
incorpora preceitos de programação orientada a objetos e estruturada.
FORTRAN (Formula Translation) – Com objetivo de atender às necessidades
de tratamento de cálculos sobre fórmulas matemáticas, logo depois cedeu
espaço para linguagens mais simples e estruturadas.
PASCAL – Desenvolvida por Nicklaus Whirth em 1971, é uma linguagem
estruturada e de uso geral.
VISUAL BASIC – Linguagem orientada a eventos, projetadas para funcionar
sob interfaces gráficas (GUI – Graphical User Interface), permitindo o
programador, determinar com facilidade a representação dos objetos
através de ícones que irão interagir com as aplicações.
DELPHI – Linguagem orientada a objeto, originária da linguagem Pascal.
JAVA – Linguagem orientada a objeto, originária da linguagem C.
Parte III – O Perfil do Profissional de Informática
QUEM TRABALHA COM O COMPUTADOR?
Existem várias áreas onde um profissional de informática pode atuar
são elas:
Gerente de CPD
É um profissional com formação superior, responsável pelo pessoal e
pelo material utilizado nos processamentos. Deve ter noções técnicas e
comerciais de toas as possíveis operações que são feitas num processamento.
Nível salarial = R$ 2.209,00 a R$ 2.970,00
Analista de Sistemas
Com formação superior, é responsável pelo desenvolvimento, implantação
e manutenção de todos os programas que compõem os sistemas utilizados no
CPD.
Esse profissional recorre a técnicas especiais para definir um
sistema, elaborando um projeto inicial, com previsão de custos e tempo, que
depois de aprovado serve de ponto de partida para um projeto final.
Deve conhecer linguagens, pois geralmente também programa. Define as
normas de documentação do desenvolvimento do sistema para que a manutenção
seja feita de forma adequada e supervisiona o trabalho dos programadores.
Nível salarial = R$ 3.584,00 a R$ 4.987,00
Analista de Suporte
De nível superior. Faz a instalação, configuração e manutenção de
software e hardware relacionados aos serviços de infra-estrutura de TI;
portanto é uma função mais abrangente que a de Administrador de Redes,
estendendo suporte as áreas relacionadas à instalação de hardware e suporte
de primeiro nível ao usuário final. Atua principalmente: Pesquisa das
soluções de tecnologia existentes no mercado; Suporte à área de
desenvolvimento de aplicações; Suporte de último nível para as equipes de
apoio ao usuário; Configuração e manutenção da segurança de rede; Suporte
ao usuário para instalação de aplicações Desktop (ambiente usuário);
Projeto da rede interna; Consulta aos fabricantes em busca de soluções de
manutenção e otimização da rede. Possui alguns pré-requisitos: Sistemas
operacionais de servidores; Sistemas operacionais de clientes; Uso de
analisador de protocolos TCP/IP; Uso de software de Backup; Uso de software
Anti-Vírus; Uso de ferramentas de gerenciamento/inventário de rede.
Nível salarial = R$ 5.753,00 a R$ 7.893,00
Analista de Segurança
De nível superior, nem sempre, embora recomendável, trabalha com
projeto e manutenção do esquema de segurança da rede, incluindo a segurança
de equipamentos (acesso físico) dos dados (acesso não-autorizado) e de
sistemas operacionais de clientes e servidores; este profissional propõe,
implementa e monitora a política de segurança quanto ao uso de recursos
computacionais.
Atua principalmente: Configuração e manutenção da segurança da rede;
Monitoramento constante de aspectos novos relacionados à segurança (novas
técnicas de invasão, novos bugs de segurança encontrados em produtos na
rede, etc). Possui alguns pré-requisitos: Profundo conhecimento do
protocolo TCP/IP e dos sistemas operacionais da clientes e de servidores
existentes na empresa; Em algumas empresas, exige-se que o Analista de
Segurança também conheça as linguagens de programação utilizadas pela
empresa, este profissional é bem mais raro de se encontrar no mercado e seu
salário é proporcionalmente maior; Profundo conhecimento de configuração e
"atualização de regras" em firewalls; Conhecimento de protocolos típicos de
inter-redes (Frame Relay, X25, ATM, etc.); Uso de ferramentas de
monitoramento de tráfego de rede, incluindo sniffers.
Nível salarial = R$ 3.501,00 a R$ 6.329,00
Programador
De nível superior, nem sempre, embora recomendável, trabalha no
desenvolvimento e manutenção de aplicações Desktop (front-end) e de
servidores (back-end). Atua principalmente: Suporte ao usuário final para
as aplicações desenvolvidas pelo programador.Possui alguns pré-requisitos:
Domínio da linguagem de programação predominante na empresa; Domínio da
ferramenta de desenvolvimento adotada pela empresa (exemplo: Microsoft
Visual Studio); Conhecimento de gerenciadores de banco de dados;
Conhecimento de recursos existentes para a melhoria do desempenho e
portabilidade de banco de dados: índices, tiggers e stored procedures.
Nível salarial = R$ 2.581,00 a R$ 3.381,00
Programador WEB
De nível superior, nem sempre, embora recomendável, trabalha no
desenvolvimento e manutenção de aplicações Web para intranet e/ou Internet.
Atua principalmente:Verificação de desempenho do Web Site; Verificação de
problemas no Web Site através de uso de logs; Verificação junto ao Analista
de Suporte, sobre riscos de segurança existentes.Possui alguns pré-
requisitos: Domínio do ambiente de scripting predominante na empresa;
Domínio da linguagem de programação Web do lado do cliente; Domínio da
linguagem de programação Web do lado do servidor predominante na empresa;
Domínio da ferramenta de desenvolvimento adotada pela empresa; Conhecimento
dos gerenciadores de banco de dados.
Nível salarial = R$ 2.520,00 a R$ 4.220,00
Webdesigner
Este profissional é o responsável em aliar um visual bonito e atraente
à facilidade de leitura de um site, desenvolvendo toda à parte de
comunicação visual do site (design). Para realizar bem essa tarefa, o que
fala alto mesmo é a criatividade, além de ser necessário ter conhecimentos
básicos de Windows e Internet. Geralmente este profissional tem formação
acadêmica em Publicidade, Desenho Industrial ou Artes Plásticas.
Nível salarial = R$ 3.299,00 a R$ 4.722,00
WEB developer
Profissional que irá desenvolver e aplicar sistemas específicos de
Internet para possibilitar e qualificar a navegação. Pode ser um
profissional formado em Análise de Sistemas, Ciências da Computação ou até
mesmo um autodidata.
Nível salarial = R$ 2.520,00 a R$ 3.123,00
WEB Master
Profissional que cuida de toda a estrutura do site. É o responsável
pelo site todo, respondendo por itens como contas de e-mail, links e
programação visual. Por isso precisa ser um profundo conhecedor de Internet
e ter uma boa visão de negócio. A formação nesse caso varia muito, mas é
fundamental que o profissional tenha espírito de liderança, seja criativo,
ousado e pró-ativo.
Nível salarial = R$ 2.823,00 a R$ 3.856,00
Designer "Instrucional"
Profissional que converte conteúdo educacional para a WEB. Irá colocar
interatividade e cores, porém com visão pedagógica, para que a informação e
os ensinamentos não se percam entre tantos recursos. A demanda pelo cargo
hoje é grande, mas os profissionais bem preparados ainda são raros. É
importante que o profissional tenha bons conhecimentos de pedagogia e dos
recursos que a Internet oferece.
Nível salarial = R$ 2.525,00 a R$ 3.987,00
Produtor de WEB
Embora muitas pessoas ainda utilizem essa nomenclatura, está em
desuso, pois não é específica. O produtor pode produzir design, imagem,
conteúdo e tudo mais.
Nível salarial = R$ 1.989,00 a R$ 2.987,00
Gerente de Tecnologia WEB
Precisa ser um conhecedor de tecnologia, principalmente daquelas eu
envolvam a Internet. Não precisa necessariamente saber executar, mas tem
que saber quais ferramentas e de que tipo de profissional ele irá precisar
para desenvolver determinado produto ou solução.
Nível salarial = R$ 3.558,00 a R$ 3.982,00
WEB Writer
Profissional que prepara todos os textos do site (pode ou não incluir
textos jornalísticos), geralmente institucionais. O profissional pode ser
formado em Publicidade e Propaganda, Jornalismo ou Letras.
Nível salarial = R$ 1.150,00 a R$ 2.210,00
Editor de WEB
Tem a função de editar, revisar a publicação (isso mesmo, um site é
uma publicação, assim com um canal de distribuição e venda) e deixar tudo
nos padrões do site.
Nível salarial = R$ 1.750,00 a R$ 2.100,00
Gerente de WEB Marketing
Esse profissional faz a ponte entre o site, o cliente e o público.
Gerencia visitação, opinião do Internauta, retorno que o cliente tem ao
anunciar ou participar de algum serviço do site e tudo aquilo que for medir
aceitação e satisfação com relação ao site. Isso porque, será ele o
responsável por vender o site. Formação em Administração e ou Marketing é a
mais procurada para o cargo.
Nível salarial = R$ 2.500,00 a R$ 3.982,00
Net Sufer
O trabalho desse profissional é o de navegar o dia todo pela Internet.
Vai verificar e analisar o que a concorrência está fazendo, qual o
desempenho dos concorrentes, buscar idéias para agregar valor ao site e
checar se não há outras empresas utilizando produtos do site (direitos
autorais).
Nível salarial = R$ 2.000,00 a R$ 3.500,00
Profissional de TI
Este profissional de informática deve trabalhar diretamente ligado as
áreas de negócios das empresas, pois é responsável pelo planejamento e
gerenciamento dos bancos de dados, com objetivo de desenvolver novas formas
de tratamento da informação.
Ao otimizar o fluxo e informações, o administrador transforma o
ambiente empresarial, já que contribui para a rapidez na tomada de decisões
e para a minimização de riscos dentro da empresa.
Nível salarial = R$ 1.000,00 a R$ 2.500,00
Administrador de Banco de Dados (DBA)
Profissional em geral com nível superior em Ciências da Computação,
trabalha na manutenção e otimização dos bancos de dados das empresas. Atua
principalmente: Suporte á área de desenvolvimento de aplicações; Suporte de
último nível para as equipes de apoio aos usuários. Possui alguns pré-
requisitos: Conhecimento de sistemas gerenciadores de banco de dados;
Domínio dos recursos existentes para a melhoria do desempenho e
portabilidade de banco de dados: índices, triggers e stored procedures;
Domínio da linguagem de programação predominante na empresa e conhecimentos
de técnicas de programação que melhorem o desempenho do banco de dados;
Conhecimento de Data Warehouse e sistemas OLAP.
Nível salarial = R$ 2.000,00 a R$ 4.200,00
Administrador de Redes
Profissional de nível superior, nem sempre, embora recomendável.
Trabalha na instalação, configuração e manutenção dos sistemas operacionais
e de serviços de infra-estrutura de TI. Atua principalmente: Pesquisas das
soluções de tecnologia existentes no mercado; Suporte à área de
desenvolvimento de aplicações; Suporte de último nível para as equipes de
apoio aos usuários; Configuração e manutenção da segurança de rede. Possui
alguns pré-requisitos: Sistemas operacionais de servidores; Sistemas
operacionais de clientes; Uso de analisador de protocolos TCP/IP; Usos de
software de Backup; Uso de software Anti-Vírus; Uso de ferramentas de
gerenciamento / inventário de rede.
Nível salarial = R$ 1.980,00 a R$ 3.700,00.
Curiosidades sobre Carreiras – Empregos de Futuro
Analista de CRM
Para se relacionar bem com os clientes, as empresas têm investido
altas cifras na implementação e na manutenção de software CRM. E demandado
mão-de-obra especializada, como a analista de CRM. Os consultores de
carreira recomendam ao profissional que quer brilhar nessa área mesclar
conhecimentos técnicos e de marketing. "Apesar de a sigla já ter caído no
lugar-comum, essa demanda ainda não foi totalmente atendida nas empresas",
diz André Rapoport, diretor de recursos humanos na Oracle no Brasil.
Nível salarial = R$ 1.800,00 a R$ 3.000,00
E-Bussiness Strategist
Esse profissional gerencia, coordena e controla projetos de comércio
eletrônico. Isso envolve produtos da empresa, sistemas de cobrança on-line
e logística. O e-bussiness strategist também organiza a prospecção de novos
produtos a serem oferecidos virtualmente. Geralmente, é um consultor
externo que trabalha a custo/hora de 150 reais. Se você ficou traumatizado
com o quebra-quebra das lojas on-line na euforia pontocom e não quer nem
ouvir falar em comércio eletrônico, é bom abrir a cabeça. Hoje, a maior
parte das boas oportunidades está no B2B. "O comércio eletrônico bussiness-
to-bussiness vai continuar sendo importante e uma ferramenta muito
utilizada pelas empresas", afirma Paulo Feldmann, diretor da consultoria
BearingPoint.
Nível salarial = R$ 4.000,00 a R$ 9.093,00
Engenheiro de Rede Linux
Não há com resistir: os analistas de sistemas precisam estar atentos à
tendência do software livre. Não que exista uma regra – siga este ou aquele
caminho -, mas conhecer o sistema operacional Linux, as linguagens de
desenvolvimento que gravitam em torno do software aberto e os bancos de
dados que requerem gastos apenas no desenvolvimento e manutenção são bons
caminhos neste momento. Tem sido muito procurado por turmas de Linux, mas
também a demanda por profissionais especializados na linguagem PHP, que é
multiplataforma e trabalha muito bem junto com o Linux.
Nível salarial = R$ 2.000,00 a R$ 5.000,00
Chief Security Officer (CSO)
Hackers, vírus, cavalos-de-tróia, ataques híbridos.
O profissional de segurança não sai de moda – ao contrário, é cada vez
mais requisitado nas grandes empresas e principalmente nos bancos. "É uma
área que tende a crescer e se tornar padrão dentro das companhias. O
potencial é grande, pois muitas ainda não têm um projeto de política de
segurança estruturado", afirma Vanderlei Gaido, diretor comercial da
Proteus. O comandante da área é o CSO (Chief Security Officer). Autodidata,
ele costuma se manter atualizado em eventos de segurança, congressos e
palestras. A carreira ganhou o mundo empresarial, deixando de se restringir
ao departamento de tecnologia. "O CSO precisa ter trânsito livre por todos
os departamentos para implantar procedimentos de segurança em todas as
rotinas da empresa".
Nível salarial = R$ 4.000,00 a R$ 10.000,00
Especialista em Administração de Banco de Dados
Os bancos de dados podem ter perdido o glamour de alguns anos atrás,
mas não a importância dentro das empresas. Fundamental na administração do
crescente volume de dados corporativos, o administrador de banco de dados
precisa conhecer lógica de programação visual, conceitos de banco de dados,
análise e modelagem de dados PostgreSQL, DB2, Oracle, SQL Server, mySQL,
entre outros. O velho DBA (Database Administrator) continua em alta. "A
função de DBA exige dos profissionais a ampliação de seus conhecimentos.
Para se diferenciar, eles devem abranger outras ares além daquelas
relativas aos antigos conceitos de administração de banco de dados", afirma
Cezar dos Santos, consultor DBA do TIC, o data Center da Telefônica.
Nível salarial = R$ 1.800,00 a R$ 5.590,00; como autônomo pode ganhar
mais de R$ 7.000,00 por mês.
Desenvolvedor JAVA E.NET
A área de desenvolvimento é sempre promissora, mas algumas linguagens
têm se destacado. Hoje, o quente é Java e.Net. "Dentro dessas plataformas,
há boas oportunidades principalmente para o desenvolvedor de aplicações
voltados á dispositivos móveis", afirma Paulino Michelazzo, coordenador da
faculdade de Informática e Administração Paulista (Fiap) e desenvolvedor
para Internet.
Nível salarial = R$ 2.800,00 a R$ 10.000,00
Digital Vídeo Maker
Com a queda livre nos preços das câmeras digitais, placas de captura
de vídeo e softwares de edição, as próprias empresas estão desenvolvendo
seus vídeos e apresentações. A tendência abre mais uma porta no mercado de
trabalho, já que com a banda larga devem proliferar aplicações de vídeos
para Internet. Mas que profissional deve se sair bem nesta área? Aquele que
dominar edição não linear de vídeo, Primiere, Photoshop, After Effects e
VRWorx. Os salários de um Digital Vídeo Maker, entretanto, são atrativos
apenas para profissionais em início de carreira.
Nível salarial = R$ 1.200,00 a R$ 2.500,00.
Gerente de Tecnologia de Informação
Algumas vezes confundido com o CIO, que está num degrau muito mais
alto da hierarquia das empresas, gerente de TI se envolve na elaboração de
projetos de implantação, racionalização e redesenho de processos e ainda
responde pelo dia-a-dia da manutenção dos sistemas, se essa atividade não é
terceirizada. Não é tarefa fácil, principalmente neste período de baixo
recursos e de corte custos elevados em TI. Além de graduação e de pós, o
profissional que quer se destacar deve ter vasto conhecimento sobre PDI
(Plano Diretor de Informática), Gerência de Projetos e Sistemas, Análise de
Modelagem de Dados, Análise e Projeto de Sistemas, UML (Unified Modeling
Language) em controle de problemas e mudanças.
Nível salarial = R$ 7.961,00 a R$ 13.283,00
Coordenador de Projetos de Informática
Empregar deve ser o principal verbo na vida de um gerente de projeto.
Ele precisa entregar o projeto no tempo certo e de acordo com a solicitação
do cliente, seja ele interno ou terceirizado. Deve dirigir, coordenar as
atividades das equipes de análise quanto às necessidades de sistemas
informatizados a serem implantados. Ele também coordena a aplicação dos
recursos destinados aos projetos e controla decisões técnicas e
administrativas relativas aos projetos de informática.
Nível salarial = R$ 4.629,00 a R$ 7.500,00.
DOENÇAS DA ÁREA DE INFORMÁTICA
Com a vida moderna (utilização de muitas máquinas) surgiu um novo tipo
de doença denominada "LER". Esta é uma sigla que significa "Lesões por
Esforços Repetitivos".
Na realidade a LER é uma soma de doenças oriundas da repetição de
movimentos.
Quais são essas doenças?
a) Tenossinovite
Esta é uma doença que pode acontecer para as pessoas que trabalham com
teclado.
A digitação faz com que sejam repetidos milhares de vezes os mesmos
movimentos e isto pode causar a inflamação "interna" dos dedos.
b) Tendinite
Também acontece para quem trabalha com teclado e também inflama os
dedos.
c) Sinovite
Uma outra doença que pode acontecer com o uso do teclado. É uma
inflamação das mãos.
d) Miosite
Inflamação da cintura e das costas.
e) Capsulite
Inflamação do antebraço.
f) Epicondilite
Inflamação do cotovelo.
Como que essas doenças se manifestam?
Elas podem demorar meses ou mesmo anos até aparecer. E os sintomas
aparecem lentamente. Existem 4 fases no desenvolvimento da LER.
1ª Fase: no início a dor é leve, existe mais uma sensação de peso e
desconforto na parte afetada. Ocasionalmente podem aparecer pontadas
durante o período de trabalho. Porém, as tarefas podem ser desempenhadas
normalmente.
Quando que os sintomas desaparecem nesta fase?
Normalmente eles somem após um repouso.
2ª Fase: a dor é mais intensa e demorada. A pessoa começa a sentir
dormência, formigamento, queimação, choques, fisgadas, inchaço, etc.
Inclusive estes sintomas podem aparecer ao serem feitas tarefas rotineiras,
como por exemplo, as domésticas.
Quando que os sintomas desaparecem nesta fase?
Nesta segunda fase, para que os sintomas desapareçam, o tempo de repouso
precisa ser maior do que na fase anterior.
3ª Fase: a dor é forte e bem mais persistente. Os sintomas pioram com as
mudanças de temperatura. O sono é inconstante. Dormindo, podem surgir
cãibras. Outros sintomas são: fraqueza, fadiga, palidez e suor nas mãos.
Nem todas as tarefas rotineiras podem ser executadas.
Quando que os sintomas desaparecem nesta fase?
A partir desta fase, o local afetado permanece levemente dolorido.
4ª Fase: dor é forte e contínua mesmo quando a parte afetada está
imobilizada. A pessoa sente-se muito fraca. Tem dificuldade de concentrar-
se. Tem insônia. Passa a ser agressiva, sente medo, depressão e angústia. O
local afetado começa a apresentar deformidades. A pessoa não pode executar
mais nenhuma tarefa.
Quando que os sintomas desaparecem nesta fase?
Os sintomas não desaparecem e a dor fica insuportável.
Quem pode ser afetado pela LER?
Todas as pessoas e em qualquer faixa etária.
Quais são as posturas que podem levar a LER?
Veja a seguir as posturas incorretas e que você deve evitar.
a) Ficar com os pés sem apoio.
b) Sentar-se na ponta da cadeira.
c) Ficar com os braços e as costas sem apoio (curvar-se para digitar).
e) Permanecer muito tempo sentado (a) com as pernas cruzadas.
f) Andar curvado.
g) Segurar o telefone com o ombro e a cabeça.
h) Deixar o monitor distante dos seus olhos. A distância correta do monitor
está entre 50 a 70 centímetros dos seus olhos.
Quais são as posturas que evitam a LER?
a) Ajuste corretamente a sua cadeira, de tal forma que você possa trabalhar
com os antebraços apoiados na mesa.
b) Apoie suas costas totalmente no encosto da cadeira.
c) A inclinação do encosto deve ficar de tal forma que o seu tronco forme
um ângulo reto com as suas coxas. Isto irá diminuir a rigidez dos músculos,
conseqüentemente você irá digitar com maior rapidez e exatidão, reduzindo
assim a fadiga.
d) Sempre apoie os seus pés.
e) Não coloque o monitor de vídeo fora da linha de visão. Ajuste-o de tal
forma que a parte superior nunca fique acima dos seus olhos.
g) Nunca permita reflexos no monitor
Quais são os exercícios que ajudam a previnir a LER?
Os exercícios abaixo devem ser executados da seguinte forma:
- relaxe o corpo para executar os exercícios;
- comece os exercícios de forma lenta;
- exercite-se de forma a não sentir dor;
- respire normalmente;
- faça os exercícios de uma a duas vezes por dia
Exercícios para as mãos e braços
1) Enconste o dedo polegar e o dedo mínimo. Mantenha-os encostados por 5
segundos. Repita o exercício 5 vezes.
2) Flexione o dedo polegar e o mantenha por 5 segundos. Volte à posição
inicial de extensão. Repita o exercício 5 vezes.
3) Separe e estenda os dedos. Mantenha-os assim por 5 segundos.
4) Estique os braços para cima, entrelace os dedos de forma que as palmas
das mãos fiquem para cima. Mantenha o alongamento por 10 segundos. Repita o
exercício 5 vezes.
5) Coloque os braços para frente, mantendo-os na altura dos ombros.
Entrelace as mãos e empurre os braços para frente com os cotovelos
esticados. Mantenha o alongamento por 10 segundos. Repita o exercício 5
vezes.
6) Solte os braços, mantenha os dedos e punhos totalmente relaxados, agora
sacuda as mãos. Mantenha o exercício durante 10 segundos e repita-o 5
vezes.
7) Abra os braços lateralmente na altura dos ombros, dobre os punhos com as
mãos para baixo. Mantenha este alongamento por 10 segundos. Solte o ar pela
boca enquanto você realiza o alongamento. Repita o exercício 5 vezes.
8) Abra os braços lateralmente na altura dos ombros, com as palmas das mãos
voltadas para fora e mantendo os dedos esticados. Dobre os punhos e volte
às mãos para baixo. Mantenha o alongamento por 10 segundos. Repita o
exercício 5 vezes.
9) Junte as mãos entrelaçando os dedos, gire os punhos para a esquerda e
depois para a direita. Repita o exercício 5 vezes para cada lado.
10) Una a ponta dos dedos de uma mão contra as da outra. Deixe o punho
flexível de tal forma a permitir a pressão dos dedos. Pressione e separe as
palmas das mãos. Mantenha a pressão por 10 segundos. Repita o exercício 5
vezes.
11) Estique os braços para cima, entrelace os dedos de forma que as palmas
das mãos fiquem para cima. Mantenha o alongamento por 10 segundos. Repita o
exercício 5 vezes.
Exercícios para as costas e região lombar
1) Sente-se com as costas apoiadas no assento da cadeira, as mão sobre as
coxas e os pés encostados no chão. Deixe cair os ombros. Lentamente, puxe o
ar pelo nariz e solte-o pela boca. Exercite por 10 segundos.
2) Coloque as mãos atrás da cabeça, cotovelos bem abertos e tronco ereto,
puxe os cotovelos para trás. Permaneça assim por 10 segundos. Repita 5
vezes o ato de puxar os cotovelos para trás.
3) Deixe cair à cabeça e os braços para alongar as costas e aliviar a
pressão na coluna. Permaneça nesta posição por 20 segundos. Para voltar à
posição ereta, apoie as mãos nas coxas
Exercícios para o pescoço
1) Apoie bem a coluna no encosto da cadeira. Incline lentamente a cabeça
para frente. Depois volte a posição inicial. (observação: não leve a cabeça
para trás). Repita o exercício 5 vezes.
2) Coloque as duas mãos atrás, da cabeça, forçando o queixo na direção do
tórax (permaneça com a cabeça ali, por 10 segundos). Enquanto você realiza
o esforço, solte o ar pela boca, empurrando a barriga para fora. Repita o
exercício 5 vezes.
3) Incline a cabeça para o lado direito, de tal forma a praticamente
encostar a orelha ao ombro, depois de voltar à posição inicial, faça o
mesmo para o lado esquerdo. Mantenha o alongamento por 10 segundos. Repita
o exercício 5 vezes.
4) Incline a cabeça para o lado direito, de tal forma a praticamente
encostar a orelha ao ombro, porém agora forçando com a mão direita. Faça o
mesmo para o lado esquerdo com a mão esquerda. Mantenha o alongamento por
10 segundos. Repita o exercício 5 vezes.
Exercícios para ombros e braços
1) Eleve o ombro direito, girando-o para trás e depois para frente. Faça o
mesmo com o ombro esquerdo. Repita 5 vezes cada movimento.
2) Eleve os ombros, enchendo o peito de ar que deve ser puxado pelo nariz.
Em seguida expire pela boca e soltando também os ombros. Repita o exercício
5 vezes.
3) Coloque a mão direita sobre o ombro esquerdo e com a mão esquerda
empurre o cotovelo direito para trás Mantenha esta posição por 10 segundos.
Em seguida faça o mesmo com a mão esquerda sobre o ombro direito. Repita o
exercício 5 para cada lado.
4) Coloque os braços para trás da cadeira, entrelace as mão e com os braços
esticados, empurre-os para cima contraindo os músculos abdominais. Mantenha
o alongamento por 10 segundos. Repita o exercício 5 vezes.
5) Coloque a mão direita nas costas e o antebraço por trás da cabeça. Com a
mão esquerda empurre o cotovelo direito para baixo. Mantenha o alongamento
por 10 segundos. Faça o mesmo com a mão esquerda. Repita cada exercício 5
vezes.
Exercícios para os membros inferiores e braços
1) Apoie-se em uma parede, segure o pé direito com a mão esquerda e puxe o
calcanhar em direção as nádegas. Inverta a posição utilizando agora a mão
direita. Mantenha a posição por 20 segundos em cada perna.
2) Apoie-se em uma parede, conforme indica a figura abaixo. Dobre a perna
da frente e mantenha a perna de trás estendida sem tirar o calcanhar do
chão. Mantenha esta posição por 20 segundos e depois inverta a posição das
pernas.
Exercícios para os olhos
1) Faça uma concha com as duas mãos. Apoie a base de cada mão na respectiva
maçã do rosto, colocando os dedos sobre a testa. Permaneça nesta posição
por 20 segundos, puxando lentamente o ar pelo nariz e soltando-o pela boca
também de forma lenta.
2) Feche os olhos contraindo-os por uns 7 segundos e depois abra-os de
maneira arregalada.
Observação: não esfregue os olhos quando estes estiverem cansados, isto
piora a situação.
3) De tempos em tempos, procure olhar pela janela e focalizar objetos que
estejam a uma distância maior do que 6 metros. Isto para que os músculos
dos seus olhos se movam, se expandam e descansem.
Exercício para relaxar
De hora em hora procure parar o que você estiver fazendo. Relaxe.
Solte a concentração. Faça uma atividade diferente por 10 minutos (de dia,
o ideal é caminhar e de preferência por um jardim). Mentalmente você estará
mais bem preparado para a próxima hora.
SISTEMAS DE REPRESENTAÇÃO
Uma empresa pode sr representada tanto pelo seu nome como pelo seu
logotipo ou por um funcionário.
Não importa qual deles eu veja: estarei identificando a empresa.
Da mesma forma, uma informação a ser tratada por um sistema de
computação pode ser representada de várias maneiras. Afinal, o símbolo
computação "7" representa o valor "sete" apenas por conversão. Por isso,
quando vejo o número 7, automaticamente associo a ele o valor de sete
unidades.
Devido à casualidade de termos dez dedos para contar, estamos
acostumado a representar as informações numéricas pelo sistema decimal.
Este sistema não o mais simples, uma vez que o modo mais objetivo de
transmitir informações é o velho SIM/NÃO. O SIM/NÃO serve sempre que o
problema for, convenientemente transformado em perguntas.
Sistema Binário de Numeração
Em informática, trocamos o SIM/NÃO por 1 e 0, chamado de Sistema
Binário, para representarmos uma quantidade neste sistema, devemos utilizar
o mesmo princípio de formação do sistema decimal.
"DECIMAL "BINÁRIO "
"0 "001 "
"1 "010 "
"2 "011 "
"3 "100 "
"4 "101 "
"5 "110 "
"... "... "
Conversão do Sistema Binário para o Decimal
Utilizamos um número decimal como exemplo: 510
5x100 + 1x10 + 0x1 = 510
centena dezena unidade
5x102 + 1x101 + 0x100 = 510
Podemos notar que cada algarismo possui um valor absoluto e outro
relativo, que decorre de sua posição. Cada posição corresponde a uma
potência de 10, que é o sistema decimal comumente usado.
A base do sistema binário é o número 2 (dois). Tomemos então como
exemplo o número binário 110, e utilizando o conceito de formação de
números:
1x20 + 1x21 + 0x22 = 1x1 + 1x2 + 0x4 = 3
Logo 110 na base 2 é igual ao número 3 na base decimal. Então 310=1102
Conversão de Sistema Decimal em sistema Binário
Como exemplo tomemos o número 5610.
56/2 = 28 resto 0, 28/2 = 14 resto 0, 14/2 = 7 resto 0, 7/2 = 3 resto 1
5610 = 10002
Conversão do Sistema Binário para o Decimal
Da base 2 para a base 10: Multiplicamos os algarismos, da direita para
a esquerda, pelas sucessivas potências de 2, e somamos essas parcelas.
Ex. 11001001
1x20 + 1x21 + 1x22 + 1x23 + 1x24 + 1x25 + 1x26 + 1x27 =
1x1 + 1x2 + 0x4 + 0x8 + 1x16 + 0x32 + 0x64 + 1x128 =
1+2+0+0+16+0+0+128 = 147
Sistema Octal de Numeração
O sistema octal de numeração é o sistema no qual existem 8 (oito)
algarismos que são: 0,1,2,3,4,5,6 e 7.
"DECIMAL "
"Pesquisa "Consultam-se os registros seqüencialmente ou (caso o "
"(Acesso) "dispositivo seja de acesso direto) pela pesquisa binária "
"Inclusão "Copia-se o arquivo até o registro de ordem n (enésimo na "
" "ordenação); grava-se o registro que se quer incluir naquela "
" "posição (isto é, respeitando-se a seqüência); copia-se o "
" "restante do arquivo anterior; renomeia-se o arquivo novo. "
"Exclusão "Arquivo em disco: apaga-se o registro; compacta-se o "
" "arquivo. "
"Atualização "Através do balance-line "
Arquivo Seqüencial – Indexado
Nessa modalidade de organização, cada registro é acessado de modo
direto; logo, a organização não se presta a veículos de gravação/leitura
seqüencial.
Quando se cria um arquivo seqüencial-indexado, ficam reservadas três
ares no veículo de gravação: uma área denominada principal, onde são
gravados os registros propriamente ditos, escalonados pela chave em
subáreas; uma área destinada a um índice, que indica a subárea da área
principal onde determinado grupos de registros se encontra gravado; e a
terceira área, denominada área de overflow, onde se encontram os registros
que não foram alojados na área principal.
A área principal é definida quando o arquivo é gerado. Ela é ampliada
(caso mais comum) ou reduzida toda vez que o arquivo é reorganizado.
Por ocasião de cada reorganização, que é uma operação periodicamente
realizada, os registros são mantidos ordenados seqüencialmente segundo a
chave de classificação, mas totalmente contidos na área principal,
esvaziando-se a área de overflow. Por ocasião das inclusões subseqüentes,
novos registros são gravados na área de overflow; esses registros são
mantidos em listas subordinadas às diversas subáreas da área principal.
Cada registro é, pois, acessado através de um diretório chave-endereço
(índice). Cada subárea de área principal os registros estão logicamente
ligados em seqüência pelas chaves.
"Resumo dos Procedimentos em Arquivos Seqüenciais-Indexados "
"Pesquisa "Normalmente é realizada através da facilidade do diretório "
"(Acesso) "chave-endereço (a partir de uma preliminar consulta à área "
" "de índices). Em casos em que seja mais prático; a pesquisa "
" "também pode ser feita seqüencialmente (ordem continua das "
" "chaves); nesse caso, o sistema acessa diretamente a área de "
" "dados (endereços), isto é, sem acessar inicialmente a área "
" "de índices "
"Inclusão "Grava-se o registro, o sistema atualizará os ponteiros: o "
" "registro anterior apontará para o incluído, e o registro "
" "incluído apontará para o anteriormente apontado. Se for o "
" "caso, o sistema atualizará a área de índices. "
"Exclusão "Apaga-se o registro; compacta-se o arquivo. O sistema "
" "reorganizará os ponteiros e, se for o caso, a área de "
" "índices. "
"Atualização "Lê-se todo o arquivo, inclusive a área de overflow; "
" "ordena-se e grava-se o arquivo. O sistema reorganizará a "
" "área de índices; a área de overflow ficará vazia. "
Arquivo Aleatório
Essa é também uma organização de aceso direto aos registros. Aqui o
acesso é mais imediato ainda, uma vez que é feito através de um
relacionamento entre a chave e o endereço do registro.
Dessa forma, os registros são armazenados com base em uma relação de
endereços previamente estabelecidos, onde esses endereços são criados em
função de todas as possibilidades de variação da chave. Assim, os registros
são armazenados em preocupação de ordenação.
Quando um registro é gravado, apagado, alterado ou, simplesmente,
pesquisado, seu endereço "reservado" é utilizado.
A grande vantagem desse tipo de organização é a rapidez de aceso a um
determinado registro. Há, porém, a desvantagem da maior ocupação de
memória.
Entre as variações desse tipo de organização, destacam-se os arquivos
aleatórios de acesso direto e os arquivos aleatórios de acesso calculado.
1. Arquivo aleatório de acesso direto
Reserva-se um endereço (espaço na memória auxiliar) para cada
registro. A chave deve ser numérica, pois ela será usada diretamente para a
construção desse endereçamento.
A grande vantagem dessa organização é a rapidez no trato de cada
registro isolado. Tem, no entanto, a desvantagem de poder apresentar grande
quantidade de memória reservada e não utilizada.
2. Arquivo aleatório de acesso calculado (ou de endereçamento indireto)
Visando a não tornar crítico o problema de não utilização de memória
reservada, apresentado no modelo anterior, utiliza-se com freqüência, a
organização com acesso calculado: nessa, o domínio das chaves é comprimido
de modo a se apresentar concentrado e, em conseqüência, estar próximo á
necessidade real, em função dos registros realmente presentes no arquivo.
Parte V – Sistemas Operacionais
INTRODUÇÃO
Sistema Operacional é um grupo integrado de programas que permitem a
comunicação entre o computador e o usuário. Um SO tem 3 funções principais:
ajudar a criar e manipular um sistema de arquivos; executar programas; usar
os dispositivos conectados a seu computador.
Podemos falar destas funções de uma outra maneira:
a) Apresentar ao usuário uma máquina mais flexível e adequada para
programar do que aquela que o hardware nu apresenta . Ele torna a
comunicação do homem com a máquina mais natural e inteligível;
b) Possibilitar o uso eficiente e controlado dos vários componentes de
hardware que constituem um sistema como um todo: processador, memória
principal e secundária, canais de E/S, controladores, periféricos, etc.;
c) Possibilitar a diversos usuários o uso compartilhado e protegido dos
diversos componentes de hardware e software do sistema de modo que o
sistema seja utilizado de maneira mais eficiente e que usuários possam se
beneficiar do trabalho de outros e cooperar entre si na execução de
projetos complexos.
A linguagem de comunicação do usuário com o SO é chamado de "linguagem
de controle". Ela tem em geral uma declaração ou um comando simples por
linha dirigindo o SO a executar uma ação específica como gravar um conjunto
de dados em disco, compilar um programa, executar um programa, consignar
periféricos, abrir ou fechar arquivos, etc.
CONCEITOS BÁSICOS
Sistemas Operacionais (ou monitor, executivo, supervisor, controlador,
etc.)
Por mais complexo que possa parecer, um SO é apenas um conjunto de
rotinas executado pelo processador, da mesma forma que qualquer outro
programa. Sua principal função é controlar o funcionamento d computador,
como um gerente dos diversos recursos disponíveis no sistema.
As funções do SO são:
Facilidade de acesso aos recursos do sistema: é devido ao SO que,
quando utilizamos os componente de um computador, como terminais,
impressoras, discos e fitas, não nos preocupamos com a maneira como é
realizada esta comunicação e os inúmeros detalhes envolvidos.
O SO, então, serve de interface entre o usuário e os recursos
disponíveis no sistema, tornando esta comunicação transparente e permitindo
ao usuário um trabalho mais eficiente e com menores chances de erros.
Este conceito de ambiente simulado, criado pelo SO, é denominado
máquina virtual e está presente, de alguma forma, na maioria dos sistemas
atuais.
Compartilhamento de recursos de forma organizada e protegida
Quando pensamos em sistemas multiusuários, onde vários usuários podem
estar compartilhando os mesmos recursos, como, por ex., memória e discos, é
necessário que todos tenham oportunidade de Ter acesso a esses recursos, de
forma que um usuário não interfira no trabalho do outro. O SO é responsável
por permitir o acesso concorrente a recursos do computador, de forma
organizada e protegida, dando ao usuário a impressão de ser o único a
utilizá-los.
O compartilhamento de recursos permite, também, a diminuição de
custos, na medida em que mais de um usuário possa utilizar as mesmas
facilidades concorrentemente, como discos, impressoras, linhas de
comunicação etc.
O SO também é responsável pelo controle do uso de diversas tarefas
concorrentemente.
Máquina de Níveis
Um computador, visto somente como um gabinete composto de circuitos
eletrônicos, cabos e fontes de alimentação (hardware), não tem nenhuma
utilidade. É através de programas (software) que o computador consegue
armazenar dados em discos, imprimir relatórios, gerar gráficos, realizar
cálculos, entre outras funções. O hardware é o responsável pela execução
das instruções de um programa, com a finalidade de se realizar alguma
tarefa.
Uma operação efetuada pelo software pode ser implementada em hardware,
enquanto uma instrução executada pelo hardware pode ser simulada via
software. Esta decisão fica a cargo do projetista do computador em função
de aspectos como custo, confiabilidade e desempenho. Tanto hardware quanto
o software são logicamente equivalentes, interagindo de uma forma única
para o usuário.
Nos primeiros computadores, a programação era realizada em painéis,
através de fios, exigindo um grande conhecimento do hardware e de sua
linguagem de máquina. Isso era uma grande dificuldade para os programadores
da época.
A solução para esse problema foi o surgimento do SO, que tornou a
interação entre usuário e computador mais simples, confiável e eficiente. A
partir desse acontecimento, não existia mais a necessidade de o programador
se envolver com a complexidade do hardware para poder trabalhar; ou seja, a
parte física do computador tornou-se transparente para o usuário.
Partindo desse princípio, podemos considerar o computador como uma
máquina de níveis ou camadas, onde inicialmente existem dois níveis: o
nível 0 (hardware) e o nível 1 (SO).
"Sistema Operacional"
"Hardware "
Desta forma, o usuário pode enxergar a máquina como sendo apenas o SO,
ou seja, como se o hardware não existisse. Esta visão modular e abstrata é
chamada máquina virtual.
Na realidade, um computador não possui apenas dois níveis, e sim
tantos níveis quantos forem necessários para adequar o usuário às suas
diversas aplicações. Quando o usuário está trabalhando em um desses níveis,
não necessita saber da existência das outras camadas, acima ou abaixo de
sua máquina virtual.
Atualmente, a maioria dos computadores possui a estrutura mostrada
abaixo, podendo conter mais ou menos camadas. A linguagem utilizada em cada
um desses níveis é diferente, variando da mais elementar (baixo nível) a
mais sofisticada (alto nível).
"Aplicativos " "
"Utilitários " "
"Sistema Operacional" "
"Linguagem de " "
"Máquina " "
"Microprogramação "Hardware"
"Dispositivos " "
"Físicos " "
TIPOS DE SISTEMAS OPERACIONAIS
I. Sistemas Monoprogramáveis / Monotarefa;
II. Sistemas Multiprogramáveis / Multitarefa;
III. Sistemas com Múltiplos Processadores.
I. Monoprogramáveis (é monousuário): Se caracterizam por permitir que o
processador, a memória e os periféricos permaneçam exclusivamente
dedicados à execução de um único programa, ou seja, todos os recursos do
sistema fiquem exclusivamente dedicados a uma única tarefa. Qualquer
outro programa, para ser executado, deveria aguardar o término do
programa corrente;
II. Multiprogramáveis (é multiusuário): Se caracterizam por permitir que
vários programas compartilhem diversos recursos. O SO se preocupa em
gerenciar o acesso concorrente aos seus diversos recursos, como memória,
processador e periféricos, de forma ordenada e protegida, entre os
programas. Com o compartilhamento de recursos, tem-se um aumento na
produtividade e a redução de custos. Estes sistemas podem ser classificados
em: a)batch; b) de tempo compartilhado; c) de tempo real.
Um SO pode suportar um ou mais desses tipos de processamento.
a) Sistemas batch (lote): Caracterizam-se por terem seus programas
armazenados em disco ou fita, onde esperam para ser executados
seqüencialmente. Alguns exemplos de aplicações originalmente processadas
em batch são compilações, linkedições, sorts, backups e todas aquelas
onde não é necessária à interação com o usuário. Esses sistemas, quando
bem projetados, podem ser bastantes eficientes, devido à melhor
utilização do processador. Entretanto, podem oferecer tempos de resposta
longos, em face do processamento puramente seqüencial e com uma variação
alta dos seus tempos de execução.
b) Sistemas de tempo compartilhamento (time-sharing): O usuário pode
interagir diretamente com o sistema em cada fase do desenvolvimento de
suas aplicações e, se preciso, modificá-las imediatamente. Devido a esse
tipo de interação, estes sistemas também são conhecidos com on-line.
Esses sistemas possuem uma linguagem de controle que permite ao usuário
comunicar-se diretamente com o SO para obter informações, como por ex.,
verificar os arquivos que possui armazenados em disco. O sistema,
normalmente, responde em poucos segundos à maioria desses comandos. Para
cada usuário, o SO aloca uma fatia de tempo (time-slice) do processador.
Caso o programa do usuário não esteja concluído nesse intervalo de tempo,
ele é substituído por um de outro usuário, e fica esperando por uma nova
fatia de tempo.
c) Sistemas de tempo real (real time): São semelhantes em implementação aos
sistemas de tempo compartilhado. A maior diferença é o tempo de resposta
exigido no processamento das aplicações. Enquanto em sistemas de tempo
compartilhado o tempo de resposta pode variar sem comprometer as
aplicações em execução, nos sistemas de tempo real os tempos de resposta
devem estar dentro de limites rígidos, que devem ser obedecidos, caso
contrários poderão ocorrer problemas irreversíveis. Nos sistemas de tempo
real não existe a idéia de fatia de tempo, utilizada pelos sistemas de
tempo compartilhado. Um programa detém o processador o tempo que for
necessário, ou até que apareça outro prioritário em função de sua
importância no sistema. Esta importância ou prioridade de execução é
controlada pela própria aplicação e não pelo SO, como nos sistemas de
tempo compartilhado. Esses sistemas estão pressentes nas aplicações onde
o tempo de resposta é fator fundamental.
III. Sistemas com Múltiplos Processadores: Caracterizam-se por possuir duas
ou mais UCPs interligadas, trabalhando em conjunto. Um fator-chave no
desenvolvimento de SOs com múltiplos processadores é a forma de comunicação
entre as UCPs e o grau de compartilhamento da memória e dos dispositivos de
entrada e saída. Sistemas com múltiplos processadores possibilitam aumentar
a capacidade computacional com menor custo (escalabilidade), além de
permitir a reconfiguração e o balanceamento do sistema.
Em função desses fatores, podemos classificar os sistemas em: a)fortemente
acoplados ou b)fracamente acoplados.
Sistemas fortemente acoplados: nestes sistemas existem vários
processadores compartilhando uma única memória e gerenciados por apenas um
sistema operacional. Múltiplos processadores permitem que vários programas
sejam executados ao mesmo tempo, ou que um programa seja dividido em
subprogramas, para execução simultânea em mais de um processador. Dessa
forma, é possível ampliar a capacidade de computação de um sistema,
adicionado-se apenas novos processadores, com custo inferior à aquisição de
outros computadores. Com o multiprocessamento, novos problemas de
concorrência foram introduzidos, pois vários processadores podem estar
acessando podem estar às mesmas áreas de memória. Além disso, existe o
problema de organizar de forma eficiente os processadores, a memória e os
periféricos. Os sistemas fortemente acoplados podem ser divididos conforme
a simetria existente entre seus processadores, ou seja, se todos os
processadores podem executar ou não as mesmas funções.
a.1 – Sistemas Assimétricos: caracterizam-se por possuir um processador
primário, responsável pelo controle dos demais processadores (secundários)
e pela execução do sistema operacional. Os processadores secundários apenas
processam programas de usuários e, sempre que necessitam de um serviço do
sistema, solicitam ao processador primário. Uma conseqüência dessa
organização é que, se o processador mestre falhar, todo o sistema ficará
incapaz de continuar o processamento. Neste caso, o sistema deve ser
reconfigurado, fazendo um dos processadores escravos assumir o papel de
mestre. Mesmo sendo uma organização simples de implementar e quase uma
extensão dos sistemas multiprogramáveis, esse tipo de sistema não utiliza
eficientemente o hardware, devido à assimetria dos processadores, que não
realizam as mesmas funções.
a.2 – Sistemas Simétricos: ao contrário da organização mestre/escravo,
implementa a simetria dos processadores, ou seja, todos os processadores
realizam as mesmas funções. Apenas algumas poucas funções ficam a cargo de
um único processador, como, por exemplo, a inicialização (boot) do sistema.
Como vários processadores estão utilizando, independentemente, a mesma
memória e o mesmo sistema operacional, é natural a ocorrência de acessos
simultâneos às mesmas áreas de memória. A solução desses conflitos fica a
cargo do hardware e do sistema operacional.
No processamento simétrico, um programa pode ser executado por qualquer
processador, inclusive por vários processadores ao mesmo tempo
(paralelismo). Além disso, quando um processador falha, o sistema continua
em funcionamento sem nenhuma interferência manual, porém com menor
capacidade de computação. Os sistemas simétricos são mais poderosos que os
assimétricos, permitindo um melhor balanceamento do processamento e das
operações de entrada/saída, apesar de sua implementação ser bastante
complexa.
SISTEMAS MULTIPROGRAMÁVEIS
Os sistemas multiprogramáveis surgiram de um problema existente nos
sistemas monoprogramáveis, que é a baixa utilização de recursos do sistema,
com processador, memória e periféricos. A possibilidade de periféricos e
dispositivos funcionarem simultaneamente entre si, juntamente com a UCP,
permitiu a execução de tarefas concorrentes, que é o princípio básico para
projeto e implementação de sistemas multiprogramáveis. Sistemas
operacionais podem ser vistos como um conjunto de rotinas que executam
concorrentemente de uma forma ordenada.
Nos sistemas monoprogramáveis, somente um programa pode estar
residente em memória, e a UCP permanece dedicada, exclusivamente, à
execução desse programa. Podemos observar que, nesse tipo de sistema,
ocorre um desperdício na utilização da UCP, pois enquanto o programa está
realizando, por exemplo, uma leitura em disco, o processador permanece sem
realizar nenhuma tarefa. O tempo de espera é consideravelmente grande, já
que as operações com dispositivos de entrada e saída são muito lentas se
comparadas com a velocidade da UCP.
Outro aspecto que podemos considerar é a subutilização da memória. Um
programa que não ocupe totalmente a memória principal ocasiona a existência
de áreas livres, sem utilização.
Nos sistemas multiprogramáveis, vários programas podem estar
residentes em memória, concorrendo pela utilização da UCP. Dessa forma,
quando um programa solicita uma operação de entrada/saída, outros programas
poderão estar disponíveis para utilizar o processador. Nesse caso, a UCP
permanece menos tempo ociosa e a memória principal é utilizada de forma
mais eficiente, pois existem vários programas residentes se revezando na
utilização do processador.
A utilização concorrente da UCP deve ser implementada de maneira que,
quando um programa perde o uso do processador e depois retorna para
continuar o processamento, seu estado dever ser idêntico ao do momento em
que foi interrompido. O programa deverá continuar sua execução exatamente
na instrução seguinte àquela em que havia parado, aparentando ao usuário
que nada aconteceu. Em sistemas de tempo compartilhado, existe a impressão
de que o computador está inteiramente dedicado ao usuário, ficando todo
esse mecanismo transparente para ele.
No caso de periféricos, é comum termos, em sistemas monoprogramáveis,
impressoras paradas por um grande período de tempo e discos com acesso
restrito a um único usuário. Esses problemas são solucionados em sistemas
multiprogramáveis, onde é possível compartilhar impressoras entre vários
usuários e realizar acesso concorrente a discos por diversos programas.
A eficiência proporcionada por um sistema multiprogramável resulta em
maior complexidade do sistema operacional, já que alguns problemas surgem
com esse tipo de implementação. Se considerarmos que vários programas estão
simultaneamente ocupando diversas partes da memória, um programa não pode
destruir dados ou código de outro programa. Este e outros problemas, como
quais são os programas que deverão estar residentes em memória, ou em qual
ordem os programa utilizarão a UCP, são resolvidos pelo sistema
operacional.
Interrupção e Exceção – Durante a execução de um programa, alguns
eventos podem ocorrer durante seu processamento, obrigando a intervenção do
SO. Este tipo de intervenção é denominado interrupção ou exceção e pode ser
resultado da execução de instruções do próprio programa, gerado pelo SO ou
por algum dispositivo de hardware. Nestas situações o fluxo de execução do
programa é desviado para uma rotina especial de tratamento. O que
diferencia uma interrupção de uma exceção é o tipo de evento que gera esta
condição.
Uma interrupção é gerada pelo SO ou por algum dispositivo e, neste
caso, independe do programa que está sendo executado. Um exemplo é quando
um periférico avisa a UCP que está pronto para transmitir algum dado. Neste
caso, a UCP deve interromper o programa para atender a solicitação do
dispositivo.
No momento em que a unidade de controle detecta a ocorrência de algum
tipo de interrupção, o programa em execução é interrompido, e o controle é
desviado para uma rotina responsável pelo tratamento da interrupção (rotina
de tratamento da interrupção). Muitas vezes, após a execução dessa rotina,
o controle deve voltar ao programa que, anteriormente, estava sendo
processado. Para isso acontecer, é necessário que, no momento da
interrupção, um conjunto de informações sobre a execução do programa seja
preservado. Essas informações consistem no conteúdo de alguns
registradores, que deverão ser restaurados posteriormente para a
continuação do programa.
Mecanismo de Interrupção:
Não existe apenas um único tipo de interrupção e sim diferentes tipos
que devem ser atendidos por diversa rotinas de tratamento. No momento que
uma interrupção acontece, a UCP deve saber para qual rotina de tratamento
deverá ser desviado o fluxo de execução. Essa informação está em uma
estrutura do sistema chamada de vetor de interrupção, que contém a relação
de todas as rotinas de tratamento existentes, associadas a cada tipo de
interrupção.
Todo procedimento para detectar a interrupção, salvar o contexto do
programa e desviar para uma rotina de tratamento é denominado mecanismo de
interrupção. Este mecanismo é realizado, na maioria das vezes, pelo
hardware dos computadores, e foi implementado pelos projetistas para criar
uma maneira de sinalizar ao processador eventos assíncronos que possam
ocorrer no sistema.
As interrupções podem ser classificadas como mascaráveis e não
mascaráveis. As mascaráveis podem ser desabilitadas pelo processador. Neste
caso, na ocorrência de tais interrupções, elas serão ignoradas, ou seja,
não receberão tratamento. No caso das interrupções não mascaráveis, isto
não é possível de se implementar, sendo o tratamento obrigatório.
No caso de múltiplas interrupções ocorrerem, o processador deve saber
qual interrupção terá de atender primeiro. Para isso, as interrupções
deverão possuir prioridades, em função da necessidade de atendimento de
cada uma. Normalmente, o hardware dos computadores possui um dispositivo
denominado controlador de pedidos de interrupção, responsável por avaliar
as interrupções geradas e suas prioridades de atendimento.
A interrupção é o mecanismo que tornou possível a implementação da
concorrência nos computadores, sendo o fundamento básico dos sistemas
multiprogramáveis. É em função desse mecanismo que o sistema operacional
sincroniza a execução de todas as suas rotinas e dos programas dos
usuários, além de controlar os periféricos e dispositivos do sistema.
Inicialmente os SOs apenas implementavam o mecanismo de interrupção.
Com a evolução dos sistemas foi introduzido o conceito de exceção. Uma
exceção é resultado direto da execução de uma instrução do próprio
programa. Situações como a divisão de um número por zero ou a ocorrência de
um overflow caracterizavam essa situação.
O mecanismo de tratamento de exceções é semelhante ao de interrupções,
porém, muitas vezes, podem ser escritas pelo próprio programador. Dessa
forma, é possível evitar que um programa seja encerrado no caso de ocorrer,
por ex., um overflow. Em sistemas mais primitivos, não existia a
possibilidade de o programador implementar rotinas de tratamento. Com isso,
na ocorrência de tais eventos, o sistema poderia parar ou o operador teria
que intervir para solucionar o problema.
A diferença fundamental entre exceção e interrupção é que a exceção é
gerada por um evento síncrono (quando é resultado direto da execução do
programa corrente), e a interrupção é gerada por eventos assíncronos
(quando ocorre independentemente da execução do programa corrente).
Operações de Entrada/Saída – Em sistemas mais primitivos, a
comunicação entre a UCP e os periféricos era controlada por um conjunto de
instruções especiais, denominadas instruções de entrada/saída, executadas
pela própria UCP. Essas instruções continham detalhes específicos de cada
periférico, como quais trilhas e setores de um disco deveriam ser lidos ou
gravados em determinado bloco de dados. Esse tipo de instrução limitava a
comunicação do processador a um grupo particular de dispositivos.
A implementação de um dispositivo chamado controlador ou interface
permitiu a UCP agir de maneira independente dos dispositivos de E/S. Com
esse novo elemento, a UCP não se comunicava mais diretamente com os
periféricos, mas sim através do controlador. Isso simplificou as instruções
de E/S, por não ser mais preciso especificar detalhes de operação dos
periféricos, tarefa esta realizada pelo controlador.
Outra forma derivada da anterior, porém mais inteligente, era permitir
que, após o início da transferência dos dados, a UCP ficasse livre para se
ocupar de outras tarefas. Assim, em determinados intervalos de tempo, o
sistema operacional deveria realizar um teste para saber do término ou não
da operação de E/S em casa dispositivo (pooling). Esse tipo de operação
introduziu certo grau de paralelismo de operações, visto que um programa
poderia ser processado, enquanto outro esperava pelo término de uma
operação de E/S. Isso permitiu o surgimento dos primeiros sistemas
multiprogramáveis, onde vários programas poderiam executar
concorrentemente, já que o tempo para execução de uma operação de E/S é
relativamente grande. O problema dessa implementação é que, no caso de
existir um grande número de periféricos, o sistema tem que freqüentemente
interromper o processamento dos programas para testar os diversos
periféricos, já que é difícil determinar o momento exato do término das
operações de E/S em andamento.
Com a implementação do mecanismo de interrupção no hardware dos
computadores, as operações de E/S puderam ser realizadas de uma forma mais
eficiente. Em vez de os sistema periodicamente verificar o estado de uma
operação pendente, o próprio controlador interrompia a UCP para avisar do
término da operação. Com esse mecanismo, denominado E/S controlada por
interrupção, a UCP, após a execução de um comando de leitura ou gravação,
fica livre para o processamento de outras tarefas. O controlador por sua
vez, ao receber, por ex., um sinal de leitura, fica encarregado de ler os
blocos do disco e armazená-los em memória ou registradores próprios. Em
seguida, o controlador, através de uma linha de controle, sinaliza uma
interrupção ao processador. Quando a UCP atende a interrupção, a rotina
responsável pelo tratamento desse tipo de interrupção transfere os dados
dos registradores do controlador para memória principal. Ao término da
transferência, a UCP volta a executar o programa interrompido e o
controlador fica novamente disponível para outra operação.
A operação de E/S controlada por interrupção é muito mais eficiente
que a operação de E/S controlada por programa, já que elimina a necessidade
de a UCP esperar pelo término da operação, além de permitir que várias
operações de E/S sejam executadas simultaneamente. Apesar disso, essa
implementação ainda sobrecarregava a UCP, uma vez que toda transferência de
dados entre memória e periféricos exigia a intervenção da UCP. A solução
para esse problema foi à implementação, por parte do controlador, de uma
técnica de transferência de dados denominada DMA (Direct Memory Access).
A técnica de DMA permite que um bloco de dados seja transferido entre
memória e periféricos, sem a intervenção da UCP, exceto no início e no
final da transferência. Quando o sistema deseja ler ou gravar um bloco de
dados, são passadas da UCP para o controlador informações como: onde o dado
está localizado, qual o dispositivo de E/S envolvido na operação, posição
inicial da memória de onde os dados serão lidos ou gravados e o tamanho do
bloco de dados. Com estas informações, o controlador realiza a
transferência entre o periférico e a memória principal, e a UCP é somente
interrompida no final da operação. A área de memória utilizada pelo
controlador na técnica de DMA é chamada buffer, sendo reservada
exclusivamente para este propósito.
No momento em a transferência de DMA é realizada, o controlador deve
assumir, momentaneamente, o controle do barramento. Como a utilização do
barramento é exclusiva de um dispositivo, a UCP deve suspender o acesso ao
bus, temporariamente, durante a operação de transferência. Este
procedimento não gera uma interrupção, e a UCP pode realizar tarefas, desde
que sem a utilização do barramento, como, por ex., um acesso à memória
cache.
A extensão do conceito DMA possibilitou o surgimento dos canais de
E/S, ou somente canais, introduzidos pela IBM no Sistema 7094. O canal de
E/S é um processador com capacidade de executar programas de E/S,
permitindo o controle total sobre operações de entrada e saída. As
instruções de E/S são armazenadas na memória principal pela UCP, porém o
canal é responsável pela sua execução. Assim, a UCP realiza uma operação de
E/S, instruindo o canal para executar um programa localizado na memória
(programa de canal). Este programa especifica os dispositivos para
transferência, buffers e ações a serem tomadas em caso de erros. O canal de
E/S realiza a transferência e, ao final, gera uma interrupção, avisando do
término da operação.
Um canal de E/S pode controlar múltiplos dispositivos através de
diversos controladores. Cada dispositivo, ou conjunto de dispositivos, é
manipulado por um único controlador. O canal atua como um elo de ligação
entre a UCP e o controlador.
A evolução do canal permitiu que este possuísse sua própria memória,
eliminando a necessidade de os programas de E/S serem carregados para a
memória principal. Com essa nova arquitetura, várias funções de E/S puderam
ser controladas com mínima intervenção da UCP. Este último estágio do canal
é também denominado de processador de E/S, embora seja comum encontrarmos
os dois termos empregados indistintamente.
Buffering – O buffering é outra implementação para minimizar o
problema da disparidade da velocidade de processamento existente entre a
UCP e os dispositivos de E/S. O objetivo do buffering é manter, na maior
parte do tempo, UCP e dispositivos ocupados.
Esta técnica consiste na utilização de uma área de memória para a
transferência entre os periféricos e a memória principal denominada buffer.
O buffering veio permitir que, quando um dados fosse transferido para o
buffer após uma operação de leitura, o dispositivo de entrada pudesse
iniciar uma nova leitura. Neste caso, enquanto a UCP manipula o dado
localizado no buffer, o dispositivo realiza outra operação de leitura no
mesmo instante. O mesmo raciocínio pode ser aplicado para operações de
gravação, onde a UCP coloca o dado no buffer para um dispositivo de saída
manipular.
A unidade de transferência usada no mecanismo de buffering é o
registro. O tamanho do registro pode ser especificado em função da natureza
do dispositivo (como uma linha gerada por uma impressora ou um caracter de
um teclado) ou da aplicação (como um registro lógico definido em um
arquivo).
O buffer deve possuir a capacidade de armazenar diversos registros, de
forma a permitir que existam dados lidos no buffer, mas ainda não
processados (operação de leitura), ou processados, mas ainda não gravados
(operação de gravação). Desta forma, o dispositivo de entrada poderá ler
diversos registros antes que a UCP os processe, ou a UCP poderá processar
diversos registros antes de o dispositivo de saída realizar a gravação.
Isso é extremamente eficiente, pois, dessa maneira, é possível
compatibilizar a diferença existente entre o tempo em que a UCP processa os
dados e o tempo em que o dispositivo de E/S realiza as operações de leitura
e gravação.
Spooling – A técnica de spooling (simultâneos peripheral operation on-
line) foi introduzida no final dos anos 50 para aumentar a produtividade e
a eficiência dos SOs.
Naquela época, os programas dos usuários eram submetidos um a um para
processamento pelo operador. Como a velocidade de operação dos dispositivos
de entrada/saída é muito lenta se comparada à do processador, era comum que
a UCP ficasse ociosa à espera de programas e dados de entrada ou pelo
término de uma impressão.
A solução foi armazenar os vários programas e seus dados, também
chamados de jobs, em uma fita magnética e, em seguida submetê-los a
processamento. Desta forma, a UCP poderia processar seqüencialmente cada
job, diminuindo o tempo de execução dos jobs e o tempo de transição entre
eles. Da mesma forma, em vez de um job gravar suas saídas diretamente na
impressora, poderia direcioná-las para uma outra fita, que depois seria
impressa integralmente. Esta forma de processamento é chamada de spooling e
foi à base dos sistemas batch.
A utilização de fitas magnéticas obrigava o processamento a ser
estritamente seqüencial, ou seja, o primeiro job a ser gravado na fita era
o primeiro a ser processado. Assim, se um job que levasse várias horas
antecedesse pequenos jobs, seus tempos de resposta ficariam seriamente
comprometidos. Com o surgimento de dispositivos de acesso direto, como
discos, foi possível tornar o spooling muito mais eficiente e,
principalmente, permitir a eliminação do processamento estritamente
seqüencial, com a atribuição de prioridades aos jobs.
A técnica de buffering permite que um job utilize um buffer
concorrentemente com um dispositivo de E/S. O spooling, basicamente,
utiliza os disco como um grande buffer, permitindo que dados sejam lidos e
gravados em disco, enquanto outros jobs são processados.
Um exemplo dessa técnica está pressente quando impressoras são
utilizadas. No momento em que um comando de impressão é executado por um
programa, as informações que serão impressas são gravadas em um arquivo em
disco (arquivo de spool), para ser impresso posteriormente pelo sistema.
Dessa forma, situações como a de um programa reservar a impressora,
imprimir uma linha e ficar horas para continuar a impressão não
acontecerão. Essa implementação permite maior grau de compartilhamento na
utilização de impressoras.
Atualmente, a técnica de spooling é implementada na maioria dos SOs,
fazendo com que tanto a UCP quanto os dispositivos de E/S sejam
aproveitados de forma mais eficiente.
Reentrância – É comum, em sistemas multiprogramáveis, vários usuários
executarem os mesmos utilitários do SO simultaneamente, como, por exemplo,
um editor de textos. Se cada usuário que utilizasse o editor trouxesse o
código do utilitário para a memória, haveria diversas cópias de um mesmo
programa na memória principal, o que ocasionaria um desperdício de espaço.
Reentrância é a capacidade de um código de programa (código
reentrante) poder ser compartilhado por diversos usuários, exigindo que
apenas uma cópia do programa esteja na memória. Uma característica da
reentrância é que o código não pode ser modificado por nenhum usuário no
momento em que está sendo executado.
A reentrância permite que cada usuário possa estar em um ponto
diferente do código reentrante, manipulando dados próprios, exclusivos de
cada usuário.
Os utilitários do sistema, como editores de texto, compiladores e
linkers, são exemplos de código reentrante, que proporciona grande economia
de espaço em memória e aumento na performance do sistema. Em alguns
sistemas existe a possibilidade de utilizar o conceito de reentrância para
aplicações de usuários.
Proteção do Sistema – Nos sistemas multiprogramáveis, onde diversos
usuários compartilham os mesmos recursos, deve existir uma preocupação, por
parte do SO, de garantir a integridade dos dados pertencentes a cada
usuário. Problemas como um programa acessar (acidentalmente ou não) a área
de memória pertencente a outro programa ou ao próprio SO tornariam o
sistema pouco confiável. Para isso, todo sistema implementa algum tipo de
proteção aos diversos recursos que são compartilhados, como memória,
dispositivos de E/S e UCP.
Como vários programas ocupam a memória simultaneamente e cada usuário
possui uma área onde dados e código são armazenados, o SO deve possuir
mecanismos de proteção à memória, de forma a preservar as informações. Caso
um programa tente acessar uma posição de memória fora de sua área, um erro
do tipo violação de acesso ocorre e o programa é encerrado. O mecanismo
para o controle de acesso à memória varia em função do tipo de gerência de
memória implementado pelo sistema.
Há outro problema quando um programa reserva um periférico para
realizar alguma operação. Nesta situação, como, por exemplo, na utilização
de uma impressora, nenhum outro programa deve interferir até que o primeiro
programa a libere. Compartilhamento de dispositivos de E/S deve ser
controlado de forma centralizada pelo SO.
O compartilhamento de arquivos em disco permite que dois ou mais
usuários acessem um mesmo arquivo simultaneamente e caso o acesso não seja
controlado pelo SO, podem ocorrer problemas de inconsistência. Suponhamos
que um usuário consulte, interativamente, o preço de um determinado produto
em um arquivo de preços. Se, no mesmo instante um outro usuário estiver
atualizando todos os preços do arquivo, o primeiro usuário poderá ler o
preço desatualizado. Geralmente, os sistemas multiprogramáveis implementam
o esquiem de lock (bloqueio) de arquivo que permite o controle pelo sistema
do acesso concorrentemente aos arquivos.
Um programa mal escrito, ao ganhar a UCP, pode possuir no seu código
um loop infinito, de forma a alocar o processamento por tempo
indeterminado. Para evitar este tipo de problema, a UCP possui um mecanismo
denominado timer, que interromperá o processamento em determinados
intervalos de tempo. Desta forma, o SO controla a utilização da UCP entre
os diversos programas, e, no caso da detecção do loop infinito, o programa
deverá ser interrompido. A UCP é o principal recurso compartilhado pelo
sistema, e sua utilização deve ser controlada de maneira rígida.
Para solucionar esses diversos problemas, o SO deve implementar
mecanismos de proteção que controlem o acesso concorrente aos diversos
recursos do sistema. Esse mecanismo de proteção, implementado na maioria
dos sistemas multiprogramáveis, é denominado modos de acesso.
ESTRUTURA DO SISTEMA OPERACIONAL
Existe uma grande dificuldade em compreender a estrutura e o
funcionamento de um SO, pois ele não é executado como uma aplicação
tipicamente seqüencial, com início, meio e fim. As rotinas do sistema são
executadas sem uma ordem predefinida, baseada em eventos dissociados do
tempo (eventos assíncronos). Muitos desses eventos estão relacionados ao
hardware e a tarefas internas do próprio SO.
O SO é formado por um conjunto de rotinas (procedimentos) que oferecem
serviços aos usuários do sistema e suas aplicações, bem como a outras
rotinas do próprio sistema. Esse conjunto de rotinas é chamado núcleo do
sistema ou kernel (cérebro). As principais funções do núcleo são:
Tratamento de interrupções;
Criação e eliminação de processos;
Sincronização e comunicação entre processos;
Escalonamento e controle dos processos;
Gerência de memória;
Gerência do sistema de arquivos;
Operações de entrada e saída;
Contabilização e segurança do sistema.
A estrutura do SO, ou seja, a maneira como o código do sistema é
organizado e o inter-relacionamento entre seus diversos componentes, pode
variar conforme a concepção do projeto. Existem basicamente três abordagens
no desenvolvimento de SOs, mas inicialmente estudaremos o que são as system
calls e o mecanismo de modos de acesso.
System Calls – Uma preocupação que surge na grande maioria dos
projetos de SOs é a implementação de mecanismos de proteção ao núcleo do
sistema e de acesso aos seus serviços. Caso uma aplicação, que tenha acesso
ao núcleo, realize uma operação que o danifique, todo o sistema poderá
ficar comprometido e inoperante.
O usuário (ou aplicação), quando deseja solicitar algum serviço do
sistema, realiza uma chamada a uma de suas rotinas (ou serviços) através de
system calls (chamadas ao sistema), que são a porta de entrada para se ter
acesso ao núcleo do SO. Para cada serviço existe uma system call associada
e cada SO tem o seu próprio conjunto (biblioteca) de chamadas, com nomes,
parâmetros e formas de ativação específicos.
" " " " "
"4 "Programas de " " "
" "usuário " " "
"3 "Entrada / Saída" "Supervisor"
"2 "Comunicação " " "
"1 "Gerência de " "Executivo "
" "Memória " " "
"0 "Multiprogramaçã" " "
" "o " " "
" " "Kernel "
"Sistema MULTICS " "Sistema "
" " "VMS "
Sistemas Cliente-Servidor – Uma tendência dos SOs modernos é tornar o
núcleo do SO o menor e mais simples possível. Para implementar esta idéia,
sistema é dividido em processos, sendo cada um responsável por oferecer um
conjunto de serviços, como serviços de arquivo, serviços de criação de
processos, serviços de memória, serviços de escalonamento, etc.
Sempre que uma aplicação deseja algum serviço, ela solicita ao
processo responsável. Neste caso, a aplicação que solicita um serviço é
chamada de cliente, enquanto o processo que responde à solicitação é
chamado de servidor. Um cliente, que pode ser uma aplicação de um usuário
ou um outro componente do SO, solicita um serviço enviando uma mensagem
para o servidor. O servidor reponde ao cliente através de uma outra
mensagem. É função do núcleo do sistema realizar a comunicação, ou seja, a
troca de mensagens entre o cliente e o servidor.
A utilização deste modelo permite que os servidores executem em modo
usuário, ou seja, não tenham acesso direto a certos componentes do sistema.
Apenas o núcleo do sistema, responsável pela comunicação entre clientes e
servidores, executa no modo kernel. Como conseqüência, se um erro ocorrer
em um servidor, este servidor pode parar, mas o sistema não ficará
inteiramente comprometido. Além disso, a implementação de sistemas cliente-
servidor permite isolar as funções do SO por diversos processos
(servidores) pequenos e dedicados a serviços específicos. Como
conseqüência, SO passa a ser de mais fácil manutenção.
Como os servidores se comunicam através de trocas de mensagens, não
importa se os clientes e servidores estão sendo processados em um sistema
com um único processador, com múltiplos processadores (fortemente acoplado)
ou ainda em um ambiente de sistema distribuído (fracamente acoplado). A
implementação de sistemas cliente-servidor em um ambiente distribuído
permite que um cliente solicite um serviço e a resposta seja processada
remotamente.
Apesar de todas as vantagens deste modelo, sua implementação, na
prática, é muito difícil devido a certas funções do SO exigirem acesso
direto ao hardware, como operações de entrada e saída. Na realidade, o que
é implementado mais usualmente é uma combinação do modelo de camadas com o
modelo cliente-servidor. O núcleo do sistema, além de ser responsável pela
comunicação entre cliente e servidor, passa incorporar outras funções
críticas do sistema, com escalonamento e gerência de memória, além das
funções dos device drives.
REFERÊNCIAS BIBLIOGRÁFICAS
1. Apostila de Sistema de Informação – Professora Sônia Reni, 2005.
2. Introdução à Informática – Autores: Ângela J. Nascimento e Jorge L.
Heller, editora Makron Books.
3. Redes de Computadores – Curso Completo – Gabriel Torres, editora Axcel
Books.
4. Revista Info Exame – Guia de Carreiras em TI – Outubro de 2003, editora
Abril.
5. Lísias Rapid – Lísias Software – Copyright 1997, Versão 1.1.
6. Arquitetura de Sistemas Operacionais - Machado, Francis Berenger, 2.ed.
– 1997 – 232p
7. Internet – http://www.lanlink.com.br
-----------------------
Resultado
Compilador
Programa
Fonte
Ling.
Alto
Nível
Programa
Objeto
Ling.
Baixo
Nível
1
Gerenciamento
Científicos
Uso geral
Específicos
Alto
Nível
Baixo nível (Linguagem de máquina)
Intermediárias (Linguagem Assembly)
Linguagens
de
Programação
Família Santos
Família Santos
Dados
O processo de transformação (aplicando conhecimento pela seleção,
organização e manipulação dos dados)
Informação
Entrada
Processamento
Saída
Feedback
2
2
0
2
89NPœBDEPQ
2
2
46
23
11
5
2
1
0
1
0
1
1
2
2
2
2
2
0
500
250
125
62
31
15
0
0
1
0
1
3
14
7
2
2
2
3
1
1
1
1
-----------------------