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!