Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

25/03/2024
1
Aula 05 – Hardware e Software no Sistema Operacional
Sistemas OperacionaisSistemas Operacionais
Professor:
Marconi Carvalho de Queiroz
marconi.queiroz@paulista.ifpe.edu.br
5.0 – Objetivos
• Nessa aula abordaremos os principais conceitos relacionados a
hardware e software e como estes estão diretamente ligados ao
projeto de sistemas operacionais.
• Ao longo das aulas será possível entender um pouco mais
sobre os principias dispositivos de hardware, sua forma de
funcionamento e os softwares utilitários usados no contexto dos
sistemas operacionais.
25/03/2024
2
Podemos dizer que Hardware e software são elementos vitais em um
sistema de computação e que um não vive sem o outro.
Em um Sistema Computacional temos um conjunto de hardware
formado por processadores, memória, barramentos, registradores,
monitores de vídeo, mouse, teclado, impressoras, entre outros dispositivos.
Os sistemas Computacionais, por sua vez, manipulam dados de forma
digital o que torna um sistema computacional confiável na representação e
transmissão de dados.
5.1 – Hardware e Software
Um Sistema Computacional
geralmente é formado pela composição de
( 3 ) três subsistemas básicos ( também
conhecidos como unidades funcionais ):
• Processadores (CPU ou UCP);
• Memória principal (RAM);
• Dispositivos de entrada e saída (E/S);
Estes itens compõem qualquer tipo de
computador digital existente independente
de fabricante, marca ou modelo.
Processador
( CPU ou UCP )
Memória Principal
( RAM )
Dispositivos
( E/S )
25/03/2024
3
A Unidade Central de Processamento
(CPU), também chamada de Processador,
tem como função:
• Controlar e executar instruções presentes
na memória principal ( RAM ) através de
operações aritméticas ( como somar,
subtrair, multiplicar e dividir ) e operações
lógicas ( comparações, movimentação de
dados, etc. ).
5.2 – Unidade Central de Processamento ( CPU )
Unidade Central de Processamento
Um processador ( CPU ) é composto por alguns elementos básicos
como: Unidade de Controle (UC); Unidade Lógica e Aritmética (ULA)
e Registradores;
Arquitetura de Von Newman
25/03/2024
4
Essa unidade é responsável pela:
• Busca da instrução que será executada, armazenando-a em um
registrador da CPU;
• Interpretação das instruções a fim de saber quais operações
deverão ser executadas pela ULA e como executa-las;
• Geração de sinais de controle apropriados para a ativação das
atividades necessárias à execução da instrução identificada.
5.2.1 – Unidade de Controle ( UC )
Esses sinais de controle são enviados aos diversos componentes
do sistema, sejam eles internos à CPU (ex.: ULA) ou externos (ex.:
memória e dispositivos de entrada e saída).
A Unidade de Controle ( UC ) gerencia as atividades de todos os
dispositivos do computador.
25/03/2024
5
A função efetiva é a execução das instruções de programas que
se encontram armazenados na memória.
Pode-se dizer que a ULA é um aglomerado de circuitos lógicos e
componentes eletrônicos simples que, integrados, realizam as operações
aritméticas e lógicas.
Há processadores mais modernos que utilizam mais de uma ULA,
de modo a tornar a execução das instruções mais rápida;
5.2.2 – Unidade de Lógica e Aritmética ( ULA )
Os registradores por sua vez têm a função de guardar dados
temporariamente, servindo como uma memória de alta velocidade
interna do processador, porém com uma capacidade de armazenamento
reduzida e um custo maior que a memória principal.
São extremamente rápidos por causa da sua tecnologia de
fabricação.
5.2.3 – Registradores
25/03/2024
6
As CPU’s são fabricadas com certa quantidade de registradores
destinados ao armazenamento de dados que estão sendo utilizados
durante o processamento e, portanto, serve de memória auxiliar básica
da ULA ( Unidade Lógica e Aritmética ).
A quantidade e o emprego dos registradores variam bastante de
modelo para modelo de processador.
Devido à sua tecnologia de construção e por estarem localizados
no interior da CPU, são muito caros e, por isso, disponíveis em
quantidade limitada.
A arquitetura de processador descreve o processador que foi usado
em um computador.
A arquitetura CISC (Complex Instruction Set Computer ou Computador
com um Conjunto Complexo de Instruções), é uma arquitetura que suporta
muitas instruções, porem a execução dessas instruções são mais lentas.
Já a arquitetura RISC ( Reduced Instruction Set Computer ou Computador
com um Conjunto Reduzido de Instruções), suporta menos instruções, e com
isso executa com mais rapidez o conjunto de instruções que são combinadas.
5.3 – Arquitetura dos Processadores - RISC e CISC
25/03/2024
7
Um processador CISC, e capaz de executar várias centenas de
instruções complexas, sendo extremamente versátil.
Ao contrário dos complexos CISC, os processadores RISC são capazes
de executar apenas algumas poucas instruções simples. Justamente por
isso, os chips baseados nesta arquitetura são mais simples e muito mais
baratos e por terem um menor numero de circuitos internos, podem
trabalhar com clocks (frequências) mais altos.
Um processador RISC e capaz de executar instruções muito
mais rapidamente.
As primeiras maquinas que seguem a arquitetura CISC, sugiram a
partir da microprogramação, que possibilitou a utilização de um
conjunto mais complexo de instruções.
Microprogramação significa que um conjunto de código de
instrução de maquina é interpretado por um microprograma que esta
localizado em uma memória, não volátil, do circuito integrado do
processador.
5.3.1 – Entendendo as arquiteturas - RISC e CISC
25/03/2024
8
Por volta de 1975, a microprogramação era a técnica mais
apropriada para as tecnologias de memórias existentes nessa época,
resultando em processadores com um conjunto complexo de
instruções que interagem muito com a memória, requerendo múltiplos
ciclos de clock para a sua execução ser completada.
Esses acessos a memória acontece com frequência devido a
pequena quantidade de registradores que a arquitetura CISC possui.
No início da década de 80, havia uma tendência em construir
processadores com conjuntos de instruções cada vez mais
complexos, porem nem todos os fabricantes seguiram essa tendência,
tomando o caminho inverso no sentido de produção de processadores de
alta performance. Foi quando surgiu a arquitetura RISC.
A arquitetura RISC, chegou trazendo as seguintes características:
• Execução de instrução por ciclo de clock;
• Instruções com formato fixo;
• Implementação por pipeline ( Lê-se: paɪpˌlaɪn );
25/03/2024
9
Pipeline, muitas vezes traduzido para português como paralelismo,
segmentação de instruções, é uma técnica que permite
os processadores executarem tarefas diferentes ao mesmo
tempo sendo capazes de respeitar a ordem das instruções que chegam
ao processador.
Essa técnica aumenta o desempenho do processador e reduz o
tempo de execução global de tarefas. Vamos compreender como
o Pipeline em processadores funciona.
5.4 – Pipeline
A imagem abaixo mostra um exemplo hipotético e meramente
didático da execução com Pipeline de 4 tarefas ( A, B, C e D onde cada
tarefa representa um cesto de roupas sujas ) com 4 atividades cada: lavar,
secar, dobrar e guardar.
Note que cada atividade
sobrepõe outra atividade durante
a execução das 4 tarefas ao longo
do tempo.
25/03/2024
10
Para compreender porque o Pipeline faz com que
os processadores trabalhem mais rápido, vamos ver a execução dessas
mesmas tarefas sem o uso de Pipeline.
Considere que cada uma das 4 atividades ( lavar, secar, dobrar e
guardar ) da tarefa demore 1 unidade de tempo. Vamos considerar aqui que a
unidade é hora.
Sem Pipeline nós só poderíamos começar uma nova tarefa após
finalizada a tarefa anterior. Ou seja, 4 tarefas ( A, B, C e D ) vezes 4 horas
cada, resultaria em um total de 16 horas para executar todas as 4 tarefas com
suas 4 atividades cada, conforme figura a seguir.
Como vimos anteriormente, sem uso do Pipeline, uma tarefasó
começa após a tarefa anterior terminar completamente suas atividades. A
figura abaixo exemplifica esse funcionamento:
25/03/2024
11
O problema aqui é que após o término da primeira lavagem de roupas
dentro da máquina de lavar, essa máquina ficará ociosa até que a roupa passe
pela secadora, seja dobrada e guardada. Somente após todo esse processo é
que a máquina de lavar irá ser usada novamente.
É exatamente em função desse problema que o Pipeline, em
processadores, possibilita reduzir o tempo total de execução de
múltiplas tarefas.
Imagine que após tirar as roupas da máquina de lavar e colocá-las na
secadora você já colocasse novas roupas sujas para lavar. Ou seja,
no mesmo instante de tempo você terá a máquina de lavar e a
secadora funcionando.
A imagem mostra lado à lado o tempo de execução SEM Pipeline
e COM Pipeline. Note que nos dois casos a tarefa lavanderia
( lavar roupas ) dura 4 horas.
Arquitetura SEM Pipeline Arquitetura COM Pipeline
25/03/2024
12
No entanto com Pipeline minimiza-se a quantidade de
recursos ociosos e reduz-se o tempo global necessário para executar
todas as 4 tarefas.
Substitua agora as atividades individuais ( lavar, secar, passar e
guardar ) da tarefa Lavanderia por instruções de máquina como somar
dois números, carregar valores da memória principal e etc.
O Pipeline permite executar essas instruções paralelamente,
exatamente como no exemplo da lavanderia.
• Estágios de um Pipeline
A quantidade de operações
paralelas que um processador é capaz
de executar é chamada de estágios.
Por exemplo, um pipeline
de 8 estágios consegue executar
8 operações concorrentes ( execução
sequencial e disputada de um conjunto
de tarefas independentes ).
4 estágios
1º 2º 3º 4º
25/03/2024
13
É justamente em função do número de estágios que podemos
aferir quão mais rápido um processador pipeline é comparado a
um não pipeline.
• Sinal de clock ( relógio ) e o Tempo individual das Instruções
Imagine os vários circuitos especializados de um processador:
soma, leitura de dados na memória principal, armazenamento
em registradores e etc. Cada circuito desses leva um tempo para
ser executado.
Para o devido funcionamento de processadores, planeja-se que
cada um desses circuitos tomem apenas o tempo de um ciclo
de clock (sinal de relógio).
Logo, todo o conjunto de circuitos do processador deve ser
ajustado para que 1 ciclo de clock demore o tempo da instrução mais
lenta ( maior instrução ) dentre todas as instruções disponíveis.
É intuitivo perceber isso: imagine se o ciclo de clock do sistema
computacional fosse 1ns e houvesse ao menos uma instrução cujo
circuito demorasse 2ns para executar.
25/03/2024
14
Quando chamada, essa instrução seria "atropelada" pelo ciclo
de clock subsequente, uma vez que ainda não terminou sua execução.
OBS.: A imagem acima demonstra a escolha do clock em função da
instrução mais lenta ( maior tempo ).
• Performance do Pipeline
No geral, pode-se dizer que o número de estágios de um
pipeline representa o ganho em relação a um processador não pipeline.
Um processador com 7 estágios dentro do pipeline seria 7 vezes mais
rápido que um não pipeline. Existe uma fórmula simples que mostra a
vantagem da vazão ( throughput ) de instruções:
25/03/2024
15
Por mais que tenhamos um clock baseado na instrução mais lenta,
o pipeline consegue ter um tempo de execução por instrução menor. Na
verdade, cada instrução irá demorar o tempo de clock, no entanto o fato de
várias instruções estarem sendo executadas em paralelo faz com que a vazão
de instruções seja maior.
Vamos considerar um exemplo em que tem 6.000 instruções a serem
executadas. Suponhamos um clock de 10ns ( nanosegundos ). Um
processador não pipeline levaria 6.000 * 10ns = 60.000ns.
Se tivermos um processador com um pipeline de 12 estágios temos
que ao final da execução de todas instruções seria: 60.000 / 12 = 5.000ns.
Vamos considerar um processador
com pepiline de 4 estágios onde
cada estágio é executado em 1 ciclo
de relógio.
• Pipeline aplicado a um Sistema Computacional
25/03/2024
16
• O 1º estágio deve sempre realizar a busca da
Instrução (BI).
• O 2º estagio deve realizar a sua decodificação (DI).
• O 3º estágio deve realizar a sus execução (EI).
• O estágio final deve realizar a escrita (WI) dos
resultados nos registradores.
Considere que desejamos executar uma sequência de 4 instruções
( I1, I2, I3 e I4 ). Onde, a execução das Instruções deve ser organizada em
relação ao acesso a estes estágios.
• Limitações e Conflitos do Pipeline
Os Pipelines sofrem de algumas limitações na hora de suas
construções. Algumas situações impossibilitam que o processador execute
em paralelo.
Existem Conflitos Estruturais que ocorrem quando um circuito
implementa mais de uma instrução. Se essas instruções forem necessárias
em dois lugares diferentes apenas um poderá executar. No exemplo da
lavanderia imagine que você tenha uma máquina lava-e-seca.
25/03/2024
17
Nesse caso, ninguém poderia utilizar a secadora caso alguém já
estivesse lavando roupa. Esse é um dos fatores que fazem com que
processadores especializados para gráficos, placas de vídeo por exemplo, tem
muito mais instruções de máquina e núcleos (processadores isolados). Eles
evitam conflitos estruturais.
Outros conflitos seriam os Conflitos de Controle. Eles ocorrem quando
a entrada de uma instrução depende da execução de outra e ambas estão
em execução no pipeline. Nesse caso o processador precisa esperar para
dar sequência na execução.
• Conclusão sobre o Pipeline
Pipeline é uma técnica de implementação de sistemas
computacionais onde o processador consegue paralelizar a execução
de instruções de modo a maximizar a vazão de instruções
processadas. Essa técnica adiciona complexidade na criação desse tipo
de processador mas garante processadores mais eficientes.
25/03/2024
18
5.5 – Perguntas?
E-mail: marconi.queiroz@paulista.ifpe.edu.br
WhatsApp: (81) 9.9976-4003
Obrigado!Obrigado!

Mais conteúdos dessa disciplina