FBV CursosOperador de Micro Computador – Básico e Avançado

Propaganda
FBV CursosOperador de Micro Computador – Básico e Avançado
TRABALHO DE APERFEIÇOAMENTO DE 120 HORAS
VICTOR REGIS LYRA BESERRA DA SILVA
2014
Os computadores surgiram com o intuito de automatizar tarefas que demandam muito tempo
para os homens. As primeiras versões dos computadores foram utilizados para guerras militares.
A palavra “computador” foi registada pela primeira vez como sendo utilizados em 1613, e foi
originalmente foi usada para descrever um ser humano, que foram realizados cálculos ou cálculos.
A definição de um computador permaneceu o mesmo até o final do século 19, quando as pessoas
começaram a perceber as máquinas nunca se cansa e pode realizar cálculos muito mais rápido e
com mais precisão do que qualquer equipe de computadores humanos jamais poderia. Primeiro
computador mecânico ou automático conceito motor computing.
Em 1822, Charles Babbage começou a desenvolver o motor de diferença, considerado o primeiro
motor de computação automática, que foi capaz de computar vários conjuntos de números e fazer
cópias dos resultados. Infelizmente, por causa do financiamento que ele nunca foi capaz de
completar uma versão funcional em grande escala desta máquina. Em junho de 1991, o Museu da
Ciência de Londres completou a Difference Engine º 2 para o ano do bicentenário do nascimento de
Babbage e mais tarde concluído o mecanismo de impressão em 2000.
Analytical EngineLater, em 1837 Charles Babbage propôs o primeiro computador mecânico
geral, a Máquina Analítica. A Máquina Analítica continha uma unidade lógica e aritmética (ULA),
controle de fluxo básico, e de memória integrado e é o primeiro computador conceito de propósito
geral. Infelizmente, devido a problemas de financiamento este computador foi também nunca
construiu enquanto Charles Babbage estava vivo. Em 1910, Henry Babbage, filho mais novo de
Charles Babbage foi capaz de completar uma parte da máquina e foi capaz de realizar cálculos
básicos.
Primeiro computador programável. O Z1, originalmente criado por Konrad Zuse na Alemanha na
sala de estar dos seus pais em 1936, para 1938 e é considerado o primeiro eletro-mecânico
programável binária (moderna) do computador e realmente o primeiro computador funcional.
Os primeiros conceitos de o que nós consideramos um computador moderno. A máquina de
Turing foi primeiramente proposto por Alan Turing em 1936 e se tornou a base para as teorias sobre
computação e informática. A máquina foi impresso um dispositivo que símbolos em fita de papel de
forma que uma pessoa emulado na sequência de uma série de instruções lógicas. Sem estes
fundamentos, não teríamos os computadores que usamos hoje. O primeiro computador programável
elétrico, O Colossus foi o primeiro computador programável elétrico e foi desenvolvido por Tommy
Flowers e demonstrou pela primeira vez em dezembro de 1943. The Colossus foi criado para ajudar
os decifradores de códigos britânicos ler mensagens alemãs cifradas.
O primeiro computador digital, Abreviação de Atanasoff-Berry Computer, o ABC começou a ser
desenvolvido pelo professor John Vincent Atanasoff e estudante Cliff Berry em 1937 e continuou a
ser desenvolvido até 1942 no Colégio Estadual de Iowa (agora Iowa State University). O ABC foi
um computador elétrico que usou tubos de vácuo para a computação digital, incluindo matemática
binária e lógica booleana e não tinha CPU. Em 19 de outubro de 1973, os EUA Juiz Federal Earl R.
Larson assinou sua decisão que a patente ENIAC por J. Presper Eckert e John Mauchly era inválido
e nomeado Atanasoff o inventor do computador digital eletrônico.
O ENIAC foi inventado por J. Presper Eckert e John Mauchly, da Universidade da Pensilvânia e
iniciou a construção em 1943 e não foi concluída até 1946. Ele ocupava cerca de 1.800 metros
quadrados e usado cerca de 18.000 tubos de vácuo, pesando cerca de 50 toneladas. Embora o juiz
determinou que o computador ABC foi o primeiro computador digital, muitos ainda consideram o
ENIAC para ser o primeiro computador digital, porque era totalmente funcional.
Um Sistema Operacional é um conjunto de rotinas executadas pelo processador, da mesma forma
como qualquer outro programa.Sua principal função é controlar o funcionamento do computador,
gerenciando os diversos recursos disponíveis no sistema. O Sistema Operacional executa
basicamente duas funções :
•
Facilita o acesso as recursos do sistema
•
Compartilha de forma organizada e protegida os recursos do sistema
O Sistema Operacional torna a interação entre o usuário e o computador mais simples, confiável e
eficiente.
Conceitos Básicos
Hardware : Um computador é constituido por um conjunto de dispositivos interligados , composto
por processadores, memória principal e dispositivos fisicos ( hardware).Estes componentes podem
ser sub-divididos em 3 sub-sistemas básicos :
•
Unidade Central de Processamente ( U.C.P.)
•
Memória Principal
•
Dispositivos de Entrada e Saida ( I /O )
Unidade Central de Processamento ( C.P.U.) : A principal função da Unidade Central de
Processamento é unificar todo o sistema, controlando as funções realizadas por cada unidade
funcional. Ela é também responsável pela execução de todos os programas do sistema, que
obrigatoriamente deverão estar armazenados na memória principal. Um programa é composto por
uma série de instruções ordenadas logicamente, que são executadas sequencialmente pela CPU. Ela
busca cada instrução na memória principal e interpreta para a sua execução.
A CPU é composta por dois componentes básicos : Unidade de Controle e Unidade Lógica e
Aritmética.
A Unidade de Controle é responsável por controlar as atividades de todos os componentes do
computador, emitindo sinais elétricos gerado pelo dispositivo denominado Clock. Este sinal pode
ser para a gravação de um dado no disco ou para uma busca de intrução na memória.
A Unidade Lógica e Aritmética é responsável pela realização de operações lógicas (testes e
comparação) e aritméricas ( soma ou subtração).
A velocidade de processamento de uma CPU é determinado pelo número de instruções que o
processador executa por unidade de tempo, normalmente segundo. Esta denominação pode ser
MIPS (u Milhões de Instruções por Segundo) ou MFLOPS/GFLOPS (Milhões / Bilhões de
Instruções por ponto flutuante por segundo ).
Clock : É um dispostivo que esta localizado na CPU e que gera pulsos elétricos síncronos em um
determinado intervalo de tempo. O sinal de Clock é utilizado pela Unidade de Controle para
execução das instruções. A frequência do Clock de um processador é medida em Hertz ( Hz).
Registradores : Os registradores são dispositivos de alta velocidade, que estão localizados dentro da
CPU e que armazenam dados temporarios. Cada processador possui um determinado número de
registradores.Alguns registradores são de uso específico e outros de uso geral.
Memória Principal : Também conhecida como memória primária, é o local onde são armazenados
as instruções e os dados.Ela é composta por unidades de acesso denominadas células, sendo que
cada uma desta célula é composta por um determinado número de bits. O bit é a unidade básica da
memória , podendo assumir o valor 0 e 1.
O acesso de cada célula é realizada com a especificação de um número denominado endereço.
Desta forma quando um programa escrever ou ler um dado em uma célula deve especificar primeiro
qual o endereço de memória desejado, para depois realizar a operação.
A memória principal pode ser classificada de acordo com a sua volatilidade que é a capacidade da
memória em preservar o seu conteúdo mesmo sem uma fonte de alimentação.
As memórias voláteis se caracterizam por poderem ser lidas e gravadas, como por exemplo as
memórias RAM ( Random Acess Memory ).
Outro tipo de memória não volátil é a memória ROM ( Read Only Memory ) , que já vem gravada
do fabricante , geralmente com algum programa e seu conteúdo é mantido inalterado mesmo
quando a alimentação é desligada.
Memória Cache : Trata-se de uma memória volátil de alta velocidade.Toda vez que o processador
busca um dado na memória principal , ele “olha” primeiramente para a memória cache. Se este dado
estiver armazenado nela, não existe a necessidade do acesso da memória principal.
Memória Secundaria : A memória secundária é um meio não volátil de armazenamento de
programas e dados. O acesso a este tipo de dispositivo é lento se compararmos a memoria principal
ou a memória cache, porém o seu custo é baixo e a sua capacidade de armazenamento, na maioria
das vezes , é muito maior.
Dispositivos de Entrada e Saida : Os dispositivos de entrada e saida tem permitem a comunicação
entre o computador e o mundo externo. Através desses dispositivos, a CPU e memória principal
podem se comunicar tanto com o usuário como a memória secundária, para realizar qualquer tipo de
processamento.
Estes dispositivos de Entrada e Saída podem ser divididos em duas categorias :
•
Aqueles que são utilizado como memória secundário como discos e fitas magnéticas e que
tem um custo bem menor em relação a memória principal, armazenam um quantidade maior de
informações , porém possuem uma velocidade de acesso menor.
•
Aqueles que são utlizados como interface homem-maquina , como teclado , monitores,
impressoras , etc. Com o avanço da tecnologia , estes dispositivos tem se tornado bastante
amigáveis, possibilitando que usuários com pouco conhecimento de informática, possam utilizar
o computador de forma bastante satisfatória.
Barramento : A CPU, a memória principal e os dispositivos de E/S são interligados através de
linhas de comunicação denominadas barramentos , barras ou vias. Um barramento ( BUS ) é um
conjunto de fios paralelos onde trafegam informações como dados , endereços ou sinais de
controle. Os barramentos podem ser classificados como Unidirecional ( transmitem em um única
direção ) ou Bidirecional ( transmitem em duas direções ).
Na ligação entre CPU e Memória Principal , são necessários a ligação de 3 barramentos :
•
Barramento de Dados : onde trafegam as informações entre a CPU e a Memória Principal
•
Barramento de Endereço : onde a CPU especifica o endereço da célula que irá ser acessada
•
Barramento de Controle : onde a CPU envia pulsos de controle relativos a leitura e gravação
Pipelining : O conceito de Pipelining se assemelha a de um linha de produção , onde uma tarefa é
sub-dividida em outras sub-tarefas , executadas em diferentes estágios, dentro de uma linha de
produção. A execução de uma instrução pode ser dividida em sub-tarefas , como as fases de busca
de instrução de operandos, execução e armazenamento de resultados. O processador através de
unidades funcionais pipeline , permite que enquanto a instrução se encontra na fase de execução ,
possa estar em fase de busca simultaneamente. Ativação e Desativação do Sistema : O Sistema
Operacional é essencial para o funcionamento do Computador. Sem ele grande parte dos recursos
do sistema não estariam disponíveis. Toda vez que um computador é ligado é necessário que o
computador seja carregado da memória secundaria para a memória principal. Este processo,
denominado ativação do sistema ( boot ) , é realizado por um programa localizado em um local
específico do disco ( disco block ) , sendo geralmente o primeiro bloco. Este procedimento de
ativação varia em função do equipamento, podendo ser realizado através de teclado, de um
terminal , ou de chaves em um um painel.
Além da carga do Sistema Operacional, a ativação do sistema tambem consiste na execução de
arquivos de inicialização.
Na maioria dos sistemas existe o processo de desativação denominado Shutdown . Este
procedimento permite que as aplicações e componentes sejam desativados de maneira ordenada,
garantindo a integridade do sistema.
Arquitetura RISC e CISC
Um processador com arquitetura RISC ( Reduced Instruction Set Computer) se caracteriza por ter
poucas instruções de máquina , bastante simples e que são executadas diretamente pelo
hardware.Na sua maioria , estas instruções não acessam a memória principal , trabalhando
principalmente com os registradores, que neste tipo de processador, se apresentam em grande
número.
Um processador com arquitetura CISC ( Complex Instrution Set Computer ) já possuem instruções
que já interpretadas por microprogramas.O número de registradores é pequeno e qualquer instrução
pode referenciar a memória principal.
Software : O Hardware sozinho não tem a menor utilidade. Para torna-lo útil é necessário que um
conjunto de programas que fazem a interface entre as necessidades do usuário e a capacidade do
hardware.
A utlização de softwares adequados às diversas tarefas e aplicações , torna o trabalho do usuario
muito mais simples e eficiente.
Tradutor : No inicio, quando o computador surgiu, o ato de programar era extremamente
complicado, pois o programador tinha que ter conhecimento de hardware ainda fazer a
programação através de paineis de fios. Estes programas eram desenvolvidos em linguagem de
máquina e carregados diretamente na memória principal para execução.
Com o surgimento das primeiras linguagens de montagem ( assembly languages) , e ainda com o
surgimento das linguagens de alto nível, os programadores deixaram de se preocupar com aspectos
pertinentes ao hardware. O tradutor pode ser chamado de Montador ou Compilador.
Compilador : É um programa responsável por gerar , a partir de de um programa escrito em
linguagem de alto nível, um programa em linguagem de máquina, não executável. As linguagens de
alto nível não possuem nenhuma relação direta com a máquina, ficando esta preocupação para o
Compilador.
Interpretador : Interpretador é considerado um tradutor que não gera código objeto. A partir de
um programa fonte, escrito em linguagem de alto nível , o interpretador ,no momento da execução
do programa, traduz cada instrução e a executa em seguida.
Loader : também denominado carregador, é responsável por colocar fisicamente na memória um
programa para execução.
Depurador : é um utilitário que permite o usuário controlar a execução de um programa a fim de
detectar erros na sua estrutura.
Linguagem de Controle : também conhecida como Linguagem de Comando, é a forma direta do
usuário se comunicar com o Sistema Operacional. Esta linguagem é oferecida por cada Sistema
Operacional, para que os usuários possam ter acesso à rotinas específicas do sistema.
Interpretador de Comandos ( Shell) : O Sistema Operacional é um código executor de chamadas de
sistema. Os editores, compiladores, montadores e interpretadores não fazem parte do Sistema
Operacional. Quando um comando é digitado pelo usuário, o Shell interpreta, verifica a sua sintaxe
, envia mensagens de erro e faz chamadas de rotinas do sistema. Desta forma o usuário dispõe de
uma interface interativa com o Sistema Operacional para realizar tarefas como copiar um arquivo
ou disco ou ainda consultar um diretório. Linguagem de Máquina : é a linguagem que realmente o
processador consegue entender.Cada processador possui um conjunto único de instruções ( set de
instruções ) de máquina, que são definidas pelo próprio fabricante.
Microprogramação
Um programa em linguagem de máquina é executado diretamente pelo hardware em processadores
com arquitetura RISC, porem em processadores com arquitetura CISC isso não acontece.Entre os
níveis de linguagem de programação e harware, existe ainda a microprogramação.
Os microprogramas definem a linguagem de máquina de cada computador.Uma máquina posse
aproximdamente 25 microinstruções básicas , que são interpretadas pelos circuitos eletrônicos.
Processos
Um processo é basicamente um programa em execução , sendo constituido do código executável ,
dos dados referente ao código.
Chamadas de Sistema
Os programas dos usuários solicitam serviços do Sistema Operacional através da execução de
chamadas de sistema. A cada chamada corresponde um procedimento de uma biblioteca de
procedimentos que o programa do usuário pode chamar.
Arquivos
Arquivos são mecanismos de abstração que fornece uma forma de armazenar e recuperar
informações em disco. Isso deve ser feito de uma forma que mantenha o usuário isolado dos
detalhes a respeito de como as informações são armazenadas e de como os discos efetivamente
trabalham.
Tipos de Sistemas Operacionais
A evolução do hardware está intimamente relacionada com o surgimento de novos Sistemas
Operacionais e das aplicações por ele suportadas. A evolução dos Sistemas Operacionais para
computadores pessoais e estações de trabalho popularizou termos conceitos e técnicas antes
conhecidas somente em ambientes de grande porte.Com isso surgiram novos termos para
conceitosjá conhecidos, que foram apenas adaptados para a nova realidade.
Sistemas Monoprogramáveis / Monotarefas
Os primeiros Sistemas Operacionais eram tipicamente voltados para a execução de um único
programa ( job) . Qualquer outro programa, para ser executado, deveria aguardar o termino do
programa corrente. Os sistemas monoprogramáveis , como vieram a ser conhecidos, se
caracterizam por permitir que o processador, a memória e os periféricos permaneçam dedicados
apenas para a execução de um único programa. Neste tipo de sistema, quando enquanto um
programa aguarda por um evento ( por exemplo a digitação de um dado ), o processador permanece
ocioso, sem realizar qualquer tipo de processamento.A memória acaba sendo sub-utilizada quando o
programa não a utiliza totalmente e os periféricos ( discos e impressoras ) acabam sendo utilizados
por um único usuário. Comparando com outros sistemas , os sistemas monoprogramáveis são de
simples implementação e não existe praticamente preocupação com problemas de proteção.
Sistemas Multiprogramáveis / Multitarefas
Os sistemas multiprogramáveis que vieram a substituir os monoprogramáveis são mais complexos
e eficientes. Enquanto no monoprogramável existe apenas um programa utilizando todos os seus
recursos, nos multiprogramáveis vários programas dividem esses mesmo recursos.A vantagem neste
tipo de sistema é que a aumenta a produtividade de seus usuários e ocorre a redução de custos com
a possibilidade do compartilhamento dos mesmos recursos do sistema. A partir do número de
usuários que interagem com o sistema, podemos classificar os sistemas multiprogramáveis como
monousuário ou multiusuário.
O uso de computadores pessoais possibilita que um único usuário (monousuário) possa executar
varias tarefas concorrentemente ou simultaneamente. Os sistemas multitarefas permite que um
usuário edite um texto, imprima um arquivo , copie um arquivo pela rede , etc.
Sistemas Batch
Os sistemas batch ( lote ) foram os primeiros sistemas multiprogramáveis a serem implementados e
caracterizam-se por terem seus programas , quando submetidos, armazenados em disco ou fita,
onde esperam para ser executados sequencialmente. Normalmente os programas ( jobs ) não exigem
interação com o usuário, lendo e gravando dados em discos e fitas.
Sistemas de Tempo Compartilhado
Os sistemas de tempo compartilhado ( time-sharing ) permitem a interação dos usuários com o
sistema, basicamente através de terminais que incluem video , teclado e mouse. Desta forma o
usuário pode interagir diretamente com o sistema em cada fase de desenvolvimento de suas
aplicações e, se preciso, modificá-las imediatamente. Devido a este tipo de interação , estes
sistemas também são conhecidos como sistemas on-line. Para cada usuário, o sistema aloca uma
fatia de tempo (time slice) do processador.Caso o programa do usuário não seja concluído nesse
intervalo de tempo , ele é substituido por outro usuário e fica esperando po outra fatia de
tempo.Não é só o processador que é compartilhado, mas também a memória e os periféricos, como
discos e impressoras.O sistema cria para o usuário um ambiente de trabalho próprio , dando a
impressão que todo o sistema esta exclusivamente dedicado a ele. Sistemas de tempo compartilhado
são de implementação complexa , porém se levado em consideração o tempo de desenvolvimento e
depuração de uma aplicação , aumentam consideravelmente a produtividade de seus usuários ,
reduzindo os custos de utilização do sistema.
Sistemas de Tempo Real
Os sistemas de tempo real (real time) são bem semelhantes em implementação aos sistema de
tempo compartilahdo. A maior diferença~é no 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ário poderão ocorrer
problemas irreparáveis. Não existe a idéia de fatia de tempo , um programa detém o processador o
tempo que for necessário até que apareça outro prioritário em função da sua importância no sistema.
Esta importância ou prioridade de execução é controlada pela própria aplicação e não pelo Sistema
Operacional , como nos sistemas de tempo compartilhado. Estes sistemas são utilizados em
aplicaçõe onde o tempo de resposta é fator fundamental.
Sistemas de Múltiplos Processadores
Os sistemas de múltiplos processadores caracterizam-se por possuir duas ou maios UCPS ( CPUs)
interligadas, trabalhando em conjunto. Um fator chave no desenvolvimento de um sistema com
múltiplos processadores é a forma de comunicação entre a UCP e o grau de compartilhamento da
memória e dos dispositivos de entrada e saída. Em função desses fatores podemos classificar os
sistemas em fortemente acoplados ou fracamente acoplados.
Sistemas Fortemente Acoplados
Nos sistemas fortemente acoplados ( tightly coupled) existem vários processadores compartilhando
um única memória e gerenciados por um único Sistema Operacional. Múltiplos processadores
permitem que vários programas sejam executados ao mesmo tempo , ou que um programa seja
dividido em sub-programas , para a execução simultânea em mais de um processador. Desta forma
é possível aumentar a capacidade de computação de um sistema, adicionando novos processadores
com um custo muito inferior em relação a aquisição de novos computadores.
Sistemas Assimétricos
Na organização assimétrica ou mestre / escravo (master / slave) somente um processador (mestre)
pode executar serviços do Sistema Operacional. Sempre que um processador do tipo escravo
necessitar executar uma operação , terá que requisitar ao processador mestre.Dependendo do
número de operações efetuados pelos processadores escravo, o sistema pode se tornar ineficiente
devido ao elevado número de interrupções tratadas pelo mestre. Se o processador mestre falhar ,
todo o sistema ficará incapaz de continuar o processamento.Neste caso o sistema deverá ser
reconfigurado, fazendo que um processador escravo assuma o papel de mestre.
Sistemas Simétricos
Neste tipo de processamento todos os processadores executam a mesma função. Apenas poucas
funções ficam ao cargo de um processador, como por exemplo a inicialização do sistema. Neste tipo
de sistema, 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, porém com um capacidade menor de processamento. Os sistemas
simétricos são mais poderosos do que os sistema assimétricos , permitindo um maior balanceamento
do processador e das operações de entrada e saída.
Multiprocessamento
Desde a sua criação, os computadores são vistos como máquinas sequenciais , onde a UCP
executa as instruções de um programa, uma de cada vez. Porém na realidade isto não é totalmente
verdadeiro pos múltiplos sinais são ativos simultaneamente , o que pode ser entendido como uma
forma de paralelismo. Com a implementação de múltiplos processadores, o conceito de
simultaneidade ou paralelismo pode ser expandido a um nível mais amplo , denominado
multiprocessamento, onde uma tarefa pode ser divida e executada, ao mesmo tempo, por mais de
um processador.
Download