Você está na página 1de 51

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.

O processo de transformação
(aplicando conhecimento pela seleção,
Dados organização e manipulação dos dados) Informação
COMPONENTES DE UM SISTEMA DE INFORMAÇÃO

Feedback

Entrada Processamento Saída

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:

AR

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

Família Santos
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-1965 1965-1975 1975 199?
Exemplos TípicosENLAC IBM 1401 IBM 360 IBM 3090 Pentium
UNIVAC I CRAY
EDVAC IBM 7094 IBM370 Micros (evolução
WHIRLWIND CDC6600 DECPDP-8 do computador
IBM 650 digital)
Tecnologia Circuito
Básica Válvula Transistor Integrado CI - VLSI CI - ULSI
(Componentes) (CI)
Memória 2K 32K 128K >1 M MeG
> 100 ou gigaflops
(1 bilhão de
MIPS 0.01 0.1 1K > 10
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:
Baixo nível (Linguagem de máquina)
Intermediárias (Linguagem Assembly)
Linguagens
de
Programação Gerenciamento
Alto Científicos
Nível Uso geral
Específicos

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.

Programa Programa
Fonte Objeto

Compilador Resultado
Ling. Ling.
Alto Baixo
Nível 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 0 1 2 3 4 5 6 7 8 9
OCTAL 0 1 2 3 4 5 6 7 10 11

Conversão do Sistema Octal para Decimal

Vamos tomar como exemplo, e vamos converter o número 1118 para decimal

82 81 80
1 1 1
1x82 + 1x81 + 1x80 = 64+8+1 = 7310

Conversão do Sistema Octal para Binário

Utilizemos como exemplo o mesmo número acima 7310, vamos separá-lo a partir da direita
indicando abaixo destes os seus valores em binário.
7 3
111 011
Esta conversão irá resultar em 1110112

Conversão do Sistema Binário para Octal

Vamos utilizar como exemplo o número 1110112. Para transformarmos esse número em
octal, vamos separá-lo em grupo de três algarismos a partir da direita.

111 011
7 3
Esta conversão irá resultar no número 738.

Conversão do Sistema Decimal para o Octal

Existem 2 métodos para efetuarmos esta conversão.

Primeiro Segundo

92 2 92 2
4 11 2 0 46 2
3 1 0 23 2
1 11 2
1 5 2
1 2 2
0 1
9210 = 1348

9210 = 10111002 = 1348

Sistema Hexadecimal de Numeração

É o sistema que possui 16 algarismos.

DECIMAL 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
HEXADECIMAL 0 1 2 3 4 5 6 7 8 9 A B C D E F ...

Conversão do Sistema Hexadecimal para o Decimal

Utilizaremos como exemplo o número 3F16

161 160
3 F 3x161 + 15x160 = 6310

Conversão do Sistema Hexadecimal para Binário

Peguemos como exemplo o número C1316

C 1 3
1100 0001 0011

Esta conversão irá resultar em C1316 = 1100000100112

Conversão de sistema Binário em Hexadecimal

Neste caso agrupamos o número binário de quatro em quatro algarismos, e usaremos com
exemplo o número acima: 1100000100112
1100 0001 0011
12 1 3

Esta conversão irá resultar em 121310

Conversão de Decimal para Hexadecimal

Existem duas maneiras de fazer esta conversão:

Primeiro Segundo

1000 16 1000 2
8 62 16 0 500 2
14 3 0 250 2
0 125 2
Como 1410 = E 1 62 2
100010 = 3E816
0 31 2
1 15 2
1 7 2
1 3 2
100010 = 3E816
1 1

Parte IV – Arquivos

De um modo geral os dados estão organizados em arquivos. Por isso, e esquematização das
soluções de problemas prevê a organização de um ou mais desses arquivos. Define-se pois arquivo
como um conjunto de informações referentes a um determinado problema, podendo essas
informações, dizerem respeito a programas ou simplesmente a dados. Por extenso em
processamento de dados, chamam-se também arquivos a determinadas áreas, reservadas em
qualquer dispositivo de memória, para inclusão de informações no momento ou no futuro.
Denominam-se arquivos de entrada aos que residem em qualquer veículo possível de ser
lido pelo computador: cartões perfurados, fita magnética, discos magnéticos, CD’s, etc.
Arquivos de saída são geralmente impressos, pois, quase sempre contêm informações das
quais se desejam relatórios escritos podem, porém, residir também em discos, fitas e cartões
perfurados.
Caso comum é o de um sistema possuir um arquivo de programa e diversos arquivos de
dados.
Quando um sistema se propõe a executar determinado tipo de processamento (folha de
pagamento, por exemplo) sobre uma massa de informações cadastradas (todas as informações
pertinentes aos empregados da empresa necessárias ao cálculo do pagamento), esses dados
(informações sobre os empregados) costumam estar contidos em dois arquivos de tipos diferentes:

Tipos de Arquivos

• Arquivo Mestre (ou arquivo permanente) = contém a massa de informações que dizem
respeito ao assunto. Também conhecido com cadastro, arquivo principal ou arquivo atual.
• Arquivo de Movimento (ou arquivo transitório) = que contém informações referentes a
alterações que devem ser efetuadas sobre o cadastro (ou arquivo mestre) de modo a atualizá-lo.
Á técnica utilizada para produzir um novo arquivo atual a partir da interação de sua versão
com as informações de um arquivo de movimento, chama-se balance-line.
Diz-se que registro é cada um dos elementos bem definidos do cadastro: por exemplo, em
um sistema que controla transações bancárias, cada registro pode ser constituído pelo número da
conta, data da transação, código da transação, valor da transação e saldo.
É interessante salientar que esse registro tem caráter lógico e, por isso, é denominado
também registro lógico.
Há em contrapartida, o que em processamento de dados se denomina registro físico, que diz
respeito à quantidade de informação transmitida à memória ou retirada dela em conseqüência de
uma única instrução.
Um registro lógico pode ser maior ou menor que um registro físico. É mais comum a caso
de, em um registro físico, encontrarem-se dois ou mais registros lógicos (lidos e levados à memória
como um registro único). Denomina-se fator de bloco ou blocagem à relação entre o número de
registros lógicos pelo de registro físico.

CHAVES, SORT, MERGE E OPERAÇÕES COM ARQUIVOS

É muito comum cada registro de um arquivo ter um campo que o individualiza.


Denomina-se chave primária ou chave de ordenação ou chave de classificação ao campo que
abriga valores que individualizam cada registro; isto é, cada valor desse item identifica
univocamente um registro. Uma chave primária excepcionalmente pode ser formada por um
conjunto de campos. A chave primária é correntemente dita de ordenação ou de classificação
porque é, com freqüência, usada para ordenar (classificar) os registros do arquivo.
Uma chave (campo ou seqüência de campos) é dita secundária quando, para um de seus
valores, é possível identificar-se não apenas um mas vários registros do arquivo.

Sort

É comum haver interesse em se listar um cadastro segundo determinada ordem ou


classificação. Para isso, é preciso organizar os registros segundo a classificação desejada. A técnica
utilizada para se obter um resultado como esse denomina-se sort .

Merge

Por outro lado, a partir de dois ou mais arquivos que contenham registros de mesmo tipo,
estando esses arquivos classificados segundo um mesmo critério (ascendente ou descendente) pela
mesma chave é possível obter-se um novo arquivo único, organizado segundo o mesmo critério dos
parciais que lhe deram origem. Á técnica utilizada para isso chama-se merge.

Operações básicas sobre registros de um arquivo são:


• Inclusão
• Exclusão
• Pesquisa (localização ou acesso) – visando à alteração ou a simples consulta.
Outras operações são: atualização do arquivo como um todo (a partir de um movimento);
reorganização; listagem total; ordenação (sort); e ainda, a intercalação (merge) e a junção (apend),
de dois ou mais arquivos.

ORGANIZAÇÃO DOS ARQUIVOS E MÉTODOS DE ACESSO

Quando se cria uma arquivo de dados é de máxima importância à análise da filosofia de


trabalho que motivou a sua criação, para que se determine o tipo de organização mais adequado. Os
três principais métodos de organização de arquivos são:

• Seqüencial
• Seqüencial indexado
• Aleatório

Nos métodos básicos de acesso a registros de um arquivo são:

• Seqüencial
• Indexado
• Direto

Procedimento nos diversos arquivos


Nesse tipo de arquivo, os registros são gravados em ordem seqüencial por suas respectivas
chaves, havendo pois uma perfeita ordenação; tanto lógica quanto física. A chave de cada registro é
um atributo comum a todos eles e, em princípio, capaz de individualizar cada um.
A principal vantagem do arquivo seqüencial é o rápido acesso aos registros, quando a maior
parte deles tem que ser pesquisada, seja em tarefas de mera consulta ou em trabalhos de atualização.
Ele poderá estar armazenado em veículos de acesso seqüencial (fita magnética) ou de acesso
direto (disco ou tambor magnético). Nesse último caso, a consulta de um registro é feita através do
processo denominado pesquisa binária é lido inicialmente o registro desejado, em seguida lê-se o
registro central dessa metade e, assim sucessivamente até que, diante de um segmento relativamente
curto do arquivo, é feita uma busca seqüencial.
Quanto à atualização, tendo em vista a necessidade de que seja mantida a ordenação física
dos registros, a operação requer que o arquivo seja copiado, a fim de remover espaços resultantes
das exclusões e, por outro lado, acomodarem-se, em suas devidas posições, os novos registros
incluídos. Essa atualização é feita pela técnica balance-line, em que um terceiro arquivo (novo
arquivo mestre) é gravado a partir da comparação entre os registros da versão disponível do arquivo
mestre com os registros do arquivo de movimento.

Resumo dos Procedimentos em Arquivos Seqüenciais


Pesquisa (Acesso) Consultam-se os registros seqüencialmente ou (caso o 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 (Acesso) Normalmente é realizada através da facilidade do diretório 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.

  
Aplicação System Call Núcleo Hardware
  

Através dos parâmetros fornecidos na system call, a solicitação é processada e uma resposta
é retornada à aplicação, em um dos parâmetros fornecidos na chamada. O mecanismo de ativação e
comunicação entre a aplicação e o sistema é semelhante ao mecanismo implementado quando um
programa modularizado ativa um dos seus procedimentos ou funções.
As system calls podem ser divididas em grupos de função:

• Gerência de processos
Criação e eliminação de processos
Alteração das características do processo
Sincronização e comunicação entre processos

• Gerência de memória
Alocação e desalocação de memória

• Gerência de entrada/saída
Operações de entrada/saída
Manipulação de arquivos e diretórios

Modos de Acesso – Existem certas instruções que não podem ser colocadas diretamente à
disposição das aplicações, pois a sua utilização indevida ocasionaria sérios problemas à integridade
do sistema. Suponha que uma aplicação deseja atualizar um arquivo em disco. O programa, por si
só, não pode especificar diretamente as instruções que acessam seus dados. Como o disco é um
recurso compartilhado, sua utilização deverá ser realizada unicamente pelo SO, evitando que a
aplicação possa Ter acesso a qualquer área do disco indiscriminadamente, o que poderia
comprometer a segurança do sistema.
Fica claro que existem certas instruções, como operações de entrada e saída, que só devem
ser executadas pelo SO, para impedir a ocorrência de problemas de segurança e mesmo violação do
sistema. As instruções que têm o poder de comprometer o sistema são conhecidas como instruções
privilegiadas, enquanto as instruções não-privilegiadas são as que não oferecem perigo ao sistema.
Para que uma aplicação possa executar uma instrução privilegiada, o processador
implementa o mecanismo de modos de acesso. Existem basicamente dois modos de acesso
implementados pelo processador: modo usuário e modo kernel. Quando o processador trabalha no
modo usuário, uma aplicação só pode executar instruções não-privilegiadas, tendo acesso a um
número reduzido de instruções, enquanto no modo kernel a aplicação pode ter acesso ao conjunto
total de instruções do processador.
O modo de acesso de uma aplicação é determinado por um conjunto de bits, localizado em
um registrador especial da UCP, que indica o modo de acesso corrente. Através desse registrador, o
hardware verifica se a instrução pode ou não ser executada pela aplicação.
A melhor maneira de controlar o acesso às instruções privilegiadas é permitir que apenas o
SO tenha acesso a elas. Sempre que uma aplicação necessita de um serviço que incorra em risco
para o sistema, a solicitação é feita através de uma system call. A system call altera o modo de
acesso do processador para um modo mais privilegiado (modo kernel). Ao término da rotina do
sistema, o modo de acesso é retornado para o modo usuário. Caso um programa tente executar uma
instrução privilegiada, sem o processador estar no modo kernel, uma exceção é gerada e o programa
é encerrado.
Utilizando como exemplo o problema do acesso ao disco, apresentado anteriormente, para o
programa conseguir atualizar o arquivo, a aplicação deve solicitar a operação ao sistema por meio
de uma system call. A chamada altera o modo de acesso do processador para kernel. A rotina do
sistema responsável pela leitura é então realizada e, a seguir, o modo de acesso volta ao estado
usuário para continuar o processamento do programa.
O núcleo do SO sempre é executado em modo kernel, pois deve possuir capacidade de
gerenciar e compartilhar todos os seus recursos, solucionando, em diversos níveis, os problemas de
acesso às instruções privilegiadas.

Sistemas Monolíticos – A organização mais comum de ser encontrada é aquela que


estrutura o sistema como um conjunto de rotinas que podem interagir livremente umas com as
outras. A estrutura monolítica pode ser comparada com uma aplicação formada por vários
procedimentos que são compilados separadamente e depois linkados, formando um grande e único
programa executável.

Sistemas em Camadas – Um sistema em camadas divide o SO em camadas sobrepostas.


Cada módulo oferece um conjunto de funções que podem ser utilizadas por outros módulos.
Módulos de uma camada podem fazer referência apenas a módulos das camadas inferiores. A
vantagem da estruturação em camadas é isolar as funções do SO, facilitando sua alteração e
depuração, além de criar uma hierarquia de níveis de modos de acesso, protegendo as camadas mais
internas.
5 Operador Usuário
4 Programas de usuário

3 Entrada / Saída Supervisor

2 Comunicação

1 Gerência de Memória Executivo

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