Apostila 2004 1 Parte Gr11022004
Apostila 2004 1 Parte Gr11022004
Apostila 2004 1 Parte Gr11022004
Unidade I – Conceituação
* para fins de identificação da plataforma. Alguns fabricantes trabalham com arquiteturas híbridas.
Se numa próxima etapa, de posse de todos esses componentes, um bom técnico conectá-los de
maneira correta, será que esse microcomputador PR O G R A M A D O R ES E A N A LISTA S
funciona? Alguns ajustes no SETUP (programa de O U TR O S U SU Á R IO S
PR O G R A M A S, SISTEM A S E A PLIC A TIVO S
configuração/verificação, gravado em um componente
da placa-mãe) são necessários, mas certamente o U S U Á R IO S
computador ligaria e mostraria toda sua configuração
de hardware.
SISTEM A
O PER A C IO N A L
A pergunta agora seria um pouco mais específica: do
jeito que foi feita a montagem e configuração dos HARDW ARE
componentes, qual seria a utilidade desse M E M Ó R IA
TEC LA D O UCP IM PR ESSO R A
microcomputador? A resposta é simples, NENHUMA. M O U SE
P R IN C IP A L
D ISC O M A G N ÉTIC O
PR O C ESSA D O R M O N ITO R
Para que o usuário possa utilizar seus programas em D ISPO SITIVO S
D E E/S
benefício de suas atividades profissionais (editar um
texto, montar uma planilha eletrônica, desenvolver um Figura 1 - O que é um sistema operacional?
programa, criar um banco de dados, etc.), ou mesmo
lazer (jogos), é necessário que seja instalado um
SOFTWARE INDISPENSÁVEL que tem como função mais abrangente GERENCIAR todos os
Arquitetura de Sistemas Operacionais – Professores Luiz di Marcello e Roberto Barros Março/2004
Universidade Estácio de Sá / Instituto Politécnico 2
recursos (hardware) disponíveis no sistema (microcomputador), chamado SISTEMA
OPERACIONAL. Basicamente, um sistema operacional possui “partes” que tratam da gerência de
cada um dos subsistemas básicos de hardware (processador, memória, dispositivos de E/S), que
serão vistos mais adiante.
Desta forma, o sistema operacional facilita do acesso aos recursos do sistema, transparente para o
usuário, e no caso de muitos usuários, proporciona compartilhamento de recursos de forma
organizada e protegida.
leitura de um disquete (acionar a cabeça de leitura e gravação, posicionar trilha e setor, dados
do disco para a memória);
Quando o microcomputador é ligado, realiza o POST (Power On Self Test) que consiste em um conjunto de testes
para determinar se o hardware está funcionando corretamente (verificação da RAM, vídeo e outros dispositivos;
localização da unidade de disco de inicialização; etc.). Estes testes são realizados a partir do BIOS ( Basic Input
Output System), podendo variar conforme cada fabricante.
Se o BIOS for compatível com a tecnologia Plug and Play, algumas rotinas adicionais serão realizadas para
reconhecimento dos dispositivos. Após a inicialização dos dispositivos, o computador localiza e lê o setor de
inicialização, contendo o arquivo carregador, que será carregado para a memória principal e passará a controlar a
carga do sistema operacional (boot).
Cada programa é formado por uma seqüência de instruções que será executada pelo processador
do computador. O próprio sistema operacional é conjunto de programas que devem ser
executados pelo processador para controlar o funcionamento do computador. A importância da
execução desse conjunto de programas, porém, é evidente, pois sem o sistema operacional os
programas de usuário não seriam executados.
1.a) Pipelining – processamento pipeline nos passa a idéia de linha de montagem, onde uma
tarefa é dividida em uma seqüência de subtarefas, executadas em diferentes estágios, dentro da
linha de produção. A UCP executa a instrução em uma série de pequenos passos, sendo assim:
P1 P2 P3 P4 P5
Unidade de Analisador Unidade de Unidade de Unidade de
busca de de cálculo de busca execução de
instrução instrução endereço de dados instruções
se cada passo (intervalo de tempo) é de n ns, cada instrução demorará 5n ns para ser executada.
Entretanto, uma instrução completa é executada por P5 a cada n ns, para um ganho de cinco
vezes a velocidade.
1.b) Arquitetura CISC X Arquitetura RISC – um processador com arquitetura CISC (Complex
Instruction Set Computer) se caracteriza por possuir instruções complexas que são interpretadas
pelo nível de microprogramação, onde são convertidas em microinstruções. O número de
registradores é pequeno e qualquer instrução pode referenciar a memória principal. Exemplos de
processadores dessa arquitetura: VAX (DEC), 80x86 e o Pentium (INTEL) 1, 68xxx (Motorola),
além da série 360 e todos os mainframes (IBM).
2. Memória Principal (RAM) – É a parte do computador onde programas (instruções) e dados são
armazenados, sendo composta por unidades de acesso chamadas células, sendo que:
1
A partir do 486, no entanto, a INTEL passou a projetar seus processadores com o núcleo RISC, núcleo esse
responsável pela execução de instruções simples (e, conseqüentemente mais freqüentes), enquanto as instruções mais
complexas são interpretadas.
Depois do processador, que é o componente que executa as instruções dos programas, a memória
principal é o componente mais disputado pelos programas, uma vez que os programas devem
estar carregados para serem “enxergados” e executados pelo processador. Esta memória é
classificada como volátil, ou seja, não tem capacidade de preservar o seu conteúdo sem uma
fonte de alimentação. Por esse motivo devemos sempre gravar (memória secundária) nossos
arquivos quando estes forem alterados.
O tempo de acesso aos dados contidos na memória principal pode ser agilizado quando coloca-se
no computador uma memória auxiliar, chamada memória cache. As memórias cache são
memórias voláteis de alta velocidade, atualmente localizadas não só no processador e na placa-
mãe, como também em diversos controladores e dispositivos. O tempo de acesso a um dado nela
contido é muito menor que se estivesse na memória principal. Toda vez que o processador faz
referência a um dado armazenado na memória principal, ele “olha” antes na memória cache. Se o
processador encontrar o dado na cache, não há necessidade do acesso à memória principal; do
contrário, o acesso é obrigatório. Neste último caso, o processador, a partir do dado referenciado,
transfere um bloco de dados para o cache. O tempo de transferência entre as memórias é
pequeno, se comparado com o aumento do desempenho obtido com a utilização desse tipo de
memória.
Não podemos esquecer que a UCP, a memória principal e os dispositivos de E/S encontra-se
interligados fisicamente através de linhas de comunicação denominadas barramentos. Um
barramento (bus) pode ser visto como um conjunto de fios paralelos, onde trafegam informações.
Existem diversos tipos de barramentos, destinados a transmissão de informações específicas, a
saber: barramento de dados, barramento de endereços e barramento de controle.
Tradutor
O surgimento das primeiras linguagens de montagem, e das linguagens de alto nível, diminuiu a
necessidade de conhecimento de hardware por parte do programador, quando os programas eram
Montador
PROGRAMA
CÓDIGO TRADUTOR MÓDULO LINKER EXECUTÁVEL
FONTE OBJETO (LINGUAGEM DE MÁQUINA)
Compilador
O que é Assembly?
Interpretador
Imagine um tradutor que não gere código objeto e que a partir de um programa em código fonte,
escrito em linguagem de alto nível, traduza cada instrução e a execute em seguida. Esse software é
denominado interpretador e sua maior desvantagem, como podemos perceber, é o tempo gasto na
Arquitetura de Sistemas Operacionais – Professores Luiz di Marcello e Roberto Barros Março/2004
Universidade Estácio de Sá / Instituto Politécnico 6
tradução das instruções de um programa toda vez que este for executado, já que não existe a geração
de código executável. Algumas linguagens tipicamente interpretadas: Basic, APL e dBase.
Linker
Também chamado de linkage editor (editor de ligação) ou linkeditor, é o utilitário responsável por
gerar a partir de um ou mais módulos objeto, um único programa executável. Suas funções básicas
são resolver todas as referências simbólicas existentes entre os módulos e reservar memória para a
execução do programa.
As referências simbólicas são resolvidas pelo linker através de pesquisa em bibliotecas do sistema
ou do próprio usuário, que são arquivos que contêm diversos módulos objeto e/ou definições de
símbolos.
Já a operação de reserva de memória para execução do programa é conhecida como relocação. Em
sistemas operacionais mais antigos, a relocação era realizada uma única vez, quando todos os
endereços simbólicos eram traduzidos para endereços físicos fixos e o programa executável gerado
somente podia ser carregado em uma determinada região da memória (código absoluto). Porém, em
sistemas multiprogramáveis esse tipo de relocação era inviável. A solução é permitir que o programa
seja carregado em regiões diferentes toda vez que for trazido para a memória principal (código
relocável), sendo este tipo de relocação realizado por outro utilitário denominado loader.
Loader
Também chamado de carregador, é o utilitário que carrega/leva o programa para a memória principal
para que este seja então executado. Como pudemos constatar anteriormente, o procedimento de
carga varia com o código gerado pelo linker, que em função disso é classificado como sendo do tipo
absoluto ou relocável.
Depurador
Todos sabemos que os programadores podem cometer erros de lógica no desenvolvimento de
programas. O depurador (debugger) permite ao usuário controlar toda a execução de um programa a
fim de depurá-lo/torná-lo puro/detectar erros, através de alguns recursos:
Acompanhamento da execução instrução por instrução;
Monitoramento e alteração do conteúdo das variáveis (watchpoint);
Implementação de pontos de parada no decorrer da execução do programa (breakpoint).
Linguagem de máquina
É a linguagem de programação que o processador realmente consegue Microprogramação
entender. Cada processador possui um conjunto único de instruções
de máquina definido pelo fabricante, que especifica detalhes, como Hardware (lógica digital)
registradores, modos de endereçamento e tipos de dados. O programa Figura 4 - Máquina de níveis
nessa linguagem é totalmente codificado em formato binário.
Faremos um breve resumo da história dos sistemas operacionais com objetivo ilustrativo, apenas
para termos uma idéia da ordem cronológica de fatos importantes. A evolução do software dos
computadores, especialmente os sistemas operacionais, está relacionada ao desenvolvimento de
equipamentos cada vez mais velozes, menores no tamanho e com custo cada vez menor, e à
necessidade de aproveitamento e controle desses recursos.
Exercícios
1.a) O que é um SO? Quais suas funções básicas?
1.b) Um SO deve proporcionar facilidade de acesso aos recursos do sistema e compartilhamento
desses recursos de forma organizada e protegida. Explique, desenvolvendo o texto da sentença.
1.c) Relacione os componentes de hardware descritos na apostila com uma configuração de
computador encontrada em um jornal de informática.
1.d) Sobre os três subsistemas básicos de um computador digital responda:
- faça um diagrama relacionando-as
- quais os componentes internos do processador
- classificação da memória em relação a sua volatilidade
- lista de pelo menos cinco dispositivos de entrada e cinco de saída (não pode o mesmo ser
apresentado como entrada e saída)
1.e) Em uma viagem de negócios, um executivo compra alguns componentes de hardware para
montar seu próprio microcomputador PC. Juntamente com seu primo, eles resolvem montar esses
componentes e, considerando que o disco rígido comprado esteja formatado, pergunta-se: o que
acontecerá quando o microcomputador for ligado pela primeira vez?
1.f) Em linhas gerais, qual a seqüência de inicialização (hardware e software) em um
microcomputador PC?
1.g) Porque a relocação utilizando código com endereçamento absoluto era impraticável em sistemas
multiprogramáveis?
1.h) Quais as diferenças em termos de execução entre um programa desenvolvido em uma linguagem
interpretada e outro desenvolvido em uma linguagem traduzida?
1.i) Cite exemplos de operações que envolvam o sistema operacional.
1.j) Quais as principais diferenças entre as arquiteturas CISC e RISC?