p. 1
universidade do sul de santa catarina unisul centro de ciÊncias exatas agrÁrias e das engenharias curso de ciÊncia da computaÇÃo sistemas operacionais i professor alessandro zanini e-mail zanini@ati.unisul.rct-sc.br http www.unisul.rct-sc.br/so1 tubarão 2000
[close]
p. 2
1 conceitos básicos 1.1 introdução antes de começarmos a estudar os conceitos e os principais componentes de um sistema operacional devemos saber primeiramente quais são suas funções básicas por mais complexo que possa parecer um sistema operacional e apenas um conjunto de rotinas executado pelo processador da mesma forma que qualquer outro programa sua principal função e controlar o funcionamento do computador como um gerente dos diversos recursos disponíveis no sistema o nome sistema operacional não e único para designar esse conjunto de programas nomes como monitor executivo supervisor ou controlador possuem normalmente o mesmo significado um sistema operacional possui inúmeras funções e resumimos essas funções basicamente em duas descritas a seguir 1.1.1 facilidade de acesso aos recursos do sistema um sistema de computacão ao possui normalmente diversos componentes como terminais impressoras discos e fitas quando utilizamos um desses dispositivos não nos preocupamos com a maneira como e realizada esta comunicação e os inúmeros detalhes envolvidos para a maioria de nós uma operação cotidiana como por exemplo a leitura de um arquivo em disquete pode parecer simples na realidade existe um conjunto de rotinas específicas controladas pelo sistema operacional responsável por acionar a cabeça a de leitura e gravação da unidade de disco posicionar na trilha e setor onde estão os dados transferir os dados do disco para a memória e finalmente informar ao programa a chegada dos dados o sistema operacional então serve de interface entre o usuários e os recursos diponíveis no sistema tornando esta comunicação transparente e permitindo ao usuário um trabalho mais eficiente e com menores chances de erros figura 1 este conceito de ambiente simulado criado pelo sistema operacional e denominado máquina virtual virtual machine e está presente de alguma forma na maioria dos sistemas atuais É comum pensar-se que compiladores linkers bibliotecas depuradores e outras ferramentas fazem parte do sistema operacional mas na realidade estas facilidades são apenas utilitários destinados a ajudar a interação do usuário com o computador 1.1.2 compartilhamento de recursos de forma organizada e protegida quando pensamos em sistemas multiusuário onde vários usuários podem estar compartilhando os mesmos recursos como por exemplo 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 se imaginarmos por exemplo que uma impressora possa ser utilizada por vários usuários do sistema deverá existir algum controle para impedir que a impressão de um usuário interrompa a impressão de outro novamente o sistema operacional é responsável por permitir o acesso concorrente a esse e a outros recursos 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 não é apenas em sistemas multiusuário que o sistema operacional é imporntate se pensarmos que um computador pessoal nos permite executar várias tarefas como imprimir um documento copiar um arquivo pela internet ou processar uma planilha o sistema operacional deve ser capaz de controlar a execução concorrentes de todas essas tarefas prof alessandro zanini 1
[close]
p. 3
figura 1 visão do sistema operacional como interface entre os usuários e os recursos do sistema 1.2 máquinas 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 o hardware como 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 sistema operacional 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 prof alessandro zanini 2
[close]
p. 4
sistema operacional hardware figura 2 visão modular do computador pelo 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 sistema operacional desta forma o usuário pode enxergar a máquina como sendo apenas o sistema operacional 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 quanto forem necessários para adequar o usuário às suas diversas aplicações quando o usuário está trabalhando em um desse níveis não necessita da existência das outras camadas acima ou abaixo de sua máquina virtual atualmente a maioria dos computadores possui a estrutura mostrada na figura podendo conter mais ou menos camadas a linguagem utilizada em cada um desses níveis é diferente variando da mais elementar baixo nível à mais sofisticada alto nível aplicativos utilitários sistema operacional linguagem de máquina microprogramação dispositivos físicos figura 3 máquina de níveis hadware 1.3 histórico a evolução dos sistemas operacionais está em grande parte relacionada ao desenvolvimento de equipamentos cada vez mais velozes compactos e de custos baixos e à necessidade de aproveitamento e controle desses recursos neste histórico dividimos essa evolução em fases once destacamos em cada uma sues principals características de hardware software interação com o sistema e aspectos de conectividade prof alessandro zanini 3
[close]
p. 5
1.3.1 primeira fase 1945-1955 no início da segunda guerra mundial surgiram os primeiros computadores digitais formados por milhares de válvulas que ocupavam areas enormes sendo de funcionamento lento e duvidoso o eniac electronic numerical integrator and computer foi o primeiro computador digital de propósito geral criado pare a realização de cálculos balísticos sue estrutura possuía 18 mil válvulas 10 mil capacitores 70 mil resistores e pesava 30 toneladas quando em operação consumia cerca de 140 quilowatts e era capaz de realizar 5 mil adições por segundo para trabalhar nessas máquinas era necessário conhecer profundamente o funcionamento do hardware pods a programação era feita em painéis através de fios utilizando linguagem de máquina nessa fase ainda não existia o conceito de sistema operacional outros computadores foram construídos nessa mesma época como o edvac electronic discrete variable automatic computer e o ias princeton institute for advanced studies mas eram utilizados praticamente apenas nas universidades e nos órgãos militares com o desenvolvimento da indústria de computadores muitas empresas foram fundadas ou investiram no setor como a sperry e a ibm o que levou a criação dos primeiros computadores pare aplicações comerciais a primeira máquina fabricada com esse propósito e bem-sucedida foi o univac i universal automatic computer criado especialmente pare o censo americano de 1950 1.3.2 segunda fase 1956-1965 a criação do transistor e das memórias magnéticas contribui pare o enorme avanço dos computadores da época o transistor permitiu o aumento da velocidade e da confiabilidade do processamento e as memórias magnéticas permitiram o acesso mais rápido aos dados major capacidade de armazenamento e computadores menores com o surgimento das primeiras linguagens de programação como assembly e fortran os programas deixaram de ser feitos diretamente no hardware o que facilitou enormemente o processo de desenvolvimento de programas já não era mais possível conviver com tantos procedimentos manuais como os anteriores que não permitiam o uso eficiente do computador e de seus recursos os primeiros sistemas operacionais surgiram justamente pare tentar automatizar as tarefas manuais figura 4 processamento batch prof alessandro zanini 4
[close]
p. 6
inicialmente os programas passaram a ser perfurados em cartões que submetidos a uma leitora eram gravados em uma fita de entrada figura 4a a fita então era lida pelo computador que executava um programa de cada vez gravando o resultado do processamento em uma fita de saída figura 4b ao terminar de todos os programas a fita de saída era lida e impressa figura 4c a esse tipo de processamento onde um lote batch de programas era submetido ao computador deu-se o nome de processamento batch pode não parecer um avanço mas anteriormente os programas eram submetidos pelo operador um a um fazendo com que o processador ficasse ocioso entre a execução ao de um programa e outro com o processamento batch um grupo de programas era submetido de uma só vez o que diminuía o tempo existente entre a execução dos programas permitindo assim melhor uso do processador os sistemas operacionais passaram a ter seu próprio conjunto de rotinas pare operações de entrada/saída input/output control system iocs que veio facilitar bastante o processo de programação o iocs eliminou a necessidade de os programadores desenvolverem sues próprias rotinas de leitura/gravação específicas para cada dispositivo periférico essa facilidade de comunicação criou o conceito de independência de dispositivos importantes avanços em nível de hardware foram implementados no final dessa fase principalmente na linha 7094 da ibm entre eles destacamos o conceito de canal que veio permitir a transferência de dados entre dispositivos de entrada/saída e memória principal de forma independente da ucp ainda nessa fase destacamos os sistemas fms fortran monitor system e ibsys 1.3.3 terceira fase 1966-1980 através dos circuitos integrados cis e posteriormente dos microprocessadores foi possível viabilizar e difundir o uso de sistemas computacionais por empresas devido a diminuição de seus custos de aquisição além disso houve grande aumento do poder de processamento e diminuição no tamanho dos equipamentos com base nessa nova tecnologia a ibm lançou em 1964 a série 360 esse lançamento causou uma revolução na indústria de informática pois introduzia uma linha família de computadores pequena poderosa e principalmente compatível isso permitiu que uma empresa adquirisse um modelo mais simples e barato e conforme sues necessidades mudasse pare modelos com mais recursos sem comprometer sues aplicações já existentes para essa série foi desenvolvido o sistema operacional os/360 que tentava atender todos os tipos de aplicações e periféricos apesar de todos os problemas desse equipamento e de seu tamanho físico a série 360 introduziu novas técnicas utilizadas ate hoje na mesma época a dec lançou a linha pdp-8 também revolucionária pois apresentava uma linha de computadores de porte pequeno e baixo custo se comparada aos mainframes ate então comercializados criando um novo mercado o de minicomputadores a evolução dos processadores de entrada/saída permitiu que enquanto um programa esperasse por uma operação de leitura/gravação o processador executasse um outro programa para tal a memória foi dividida em partições onde cada programa esperava sue vez pare ser processado a essa técnica de compartilhamento da memória principal e processador deu-se o nome de multiprogramação com a substituição das fitas por discos no processo de submissão dos programas o processamento batch tornou-se mais eficiente pois permitia a alteração na ordem de execução das tarefas ate então puramente seqüencial a essa técnica de submissão de programas chamou-se spooling que mais tarde também viria a ser utilizada no processo de impressão os sistemas operacionais mesmo implementando o processamento batch e a multiprogramação ao ainda estavam limitados a processamentos que não exigiam comunicação com o usuário para permitir a interação rápida entre o usuário e o computador foram adicionados terminais de vídeo e teclado interação on-line a multiprogramação evoluiu preocupada em oferecer aos usuários tempos de respostas razoáveis e uma interface cada vez mais amigável para tal cada programa na memória utilizaria o processador em pequenos intervalos de tempo a esse sistema de divisão de tempo do processador chamou-se timesharing tempo compartilhado outro fato importante nessa fase foi o surgimento do sistema operacional unix 1969 concebido inicialmente em um minicomputador pdp-7 baseado no sistema multics multiplexed information and computing service o unix foi depois rescrito em uma linguagem de alto nível linguagem c tornando-se conhecido por sue portabilidade prof alessandro zanini 5
[close]
p. 7
no final dessa fase com a evolução dos microprocessadores surgiram os primeiros microcomputadores muito mais baratos que qualquer um dos computadores ate então comercializados entre eles destacamos os micros de 8 bits da apple e o sistema operacional cp/m control program monitor 1.3.4 quarta fase 1981-1990 a integração em large escala large scale integration-lsi e a integração em muito large escala very large scale integration-vlsi levaram adiante o projeto de miniaturização e barateamento dos equipamentos os mini e superminicomputadores se firmaram no mercado e os microcomputadores ganharam um grande impulso nesse quadro surgiram os microcomputadores pc personal computer de 16 bits da ibm e o sistema operacional dos disk operation system criando a filosofia dos computadores pessoais na área dos minis e superminicomputadores ganharam impulso os sistemas multiusuário com destaque pare os sistemas compatíveis com o unix unix-like e o vms virtual memory system da dec surgem as estações de trabalho workstations que apesar de monousuárias permitem que se executem diversas tarefas concorrentemente criando o conceito de multitarefa no final dos anos 80 os computadores tiveram um grande avanço decorrente de aplicações que exigiam um enorme volume de cálculos para acelerar o processamento foram adicionados outros processadores exigindo dos sistemas operacionais novos mecanismos de controle e sincronismo com o multiprocessamento foi possível a execução de mais de um programa simultaneamente ou ate de um mesmo programa por mais de um processador além de equipamentos com múltiplos processadores foram introduzidos processadores vetoriais e técnicas de paralelismo em diferentes níveis fazendo com que os computadores se tornassem ainda mais poderosos as redes distribuídas wide area network wans se difundiram por todo o mundo permitindo o acesso a outros sistemas de computação independentemente de estado país e ate mesmo fabricante nesse contexto são desenvolvidos inúmeros protocolos de rede alguns proprietários como o decnet da dec e o sna system network architecture da ibm e outros de domínio público como o tcp/ip e o ccitt x.25 surgem as primeiras redes locals local area network lans interligando pequenas áreas os softwares de rede passaram a estar intimamente relacionados ao sistema operacional e surgem os sistemas operacionais de rede 1.3.5 quinta fase 1991 grandes avanços em termos de hardware software e telecomunicações podem ser esperados ate o final deste século essas mudanças são conseqüência da evolução das aplicações que necessitam cada vez mais de capacidade de processamento e armazenamento de dados sistemas especialistas sistemas multimídia banco de dados distribuídos inteligência artificial e redes neurais são apenas alguns exemplos da necessidade cada vez major a evolução da microeletrônica permitirá o desenvolvimento de processadores e memórias cada vez mais velozes e baratos além de dispositivos menores mais rápidos e com major capacidade de armazenamento os componentes baseados em tecnologia vlsi very large scale integration evoluem rapidamente pare o ulsi ultra large scale integration os computadores da próxima geração têm de ser muito mais eficientes que os atuais pare atender o volume cada vez major de processamento para isso está ocorrendo uma mudança radical na filosofia de projeto de computadores arquiteturas paralelas baseadas em organizações de multiprocessadores não convencionais já se encontram em desenvolvimento em varies universidades e centros de pesquisa do mundo a evolução do hardware encadeará modificações profundas nas disciplines de programação pare fazer melhor uso das arquiteturas paralelas assim novas linguagens e metodologias de programação concorrentes estão sendo desenvolvidas em particular fazendo uso extensivo de inteligência artificial e cad computer-aided design o conceito de processamento distribuído será explorado nos sistemas operacionais de forma que sues funções estejam espalhadas por vários processadores através de redes de computadores isso só será possível devido a redução ao dos custos de comunicação e ao aumento na taxa de transmissão de dados a arquitetura cliente-servidor aplicada basicamente a redes locais passe a ser oferecida em redes distribuídas permitindo que qualquer pessoa tenha acesso a todo tipo de informação independentemente prof alessandro zanini 6
[close]
p. 8
de once esteja armazenada problemas de segurança gerência e desempenho tornam-se fatores importantes relacionados ao sistema operacional e a rede a década de 90 foi definitiva pare a consolidação dos sistemas operacionais baseados em interfaces gráficas apesar da evolução da interface a forma de interação com os computadores sofrerá talvez uma das modificações mais visíveis novas interfaces homem-máquina serão utilizadas como linguagens naturais sons e imagens fazendo essa comunicação mais inteligente simples e eficiente os conceitos e implementações só vistos em sistemas considerados de grande porte estão sendo introduzidos na maioria dos sistemas desktop como na família windows da microsoft no unix e no os/2 da ibm fase primeira 1945 segunda 1956 terceira 1966 quarta 1955 1965 1980 1990 univak ncr imb 7094 cdc-6600 ibm 360 370 pdp-11 cray 1 cyber-205 circuito integrado disco magnético minicomputador microprocessador cray xmp ibm 308 vax-11 ibm-pc lsi ou vlsi disco óptico microcomputador 1981 quinta ibm 3090 alpha axp pentium sun sparc 1991 computad eniac edvac ores hardware válvulas transistor tambor magnético memória magnética tubos de raios catódicos ultra-lsi arquiteturas paralelas circuto integrado 3d processamento distribuído linguagens concorrentes programação funcional linguagens naturais redes locais estendidaselan redes sem fio modelo clienteservidor software linguagem de linguagem de alto linguagem máquina nível estruturadas linguagem assembly processamento multiprogramação batch time-sharing computação gráfica multiprocessamento sistemas especialistas linguagens orientadas a objetos telecomu nicações telefone teletipo transmissão digital comunicação via redes locais lan satélite internet microondas redes distribuídaswan fibra óptica 5 mips 30 mips desempen 10 ips ho 200.000 ips 1 gflops 1 tflops tabela 1 características de cada fase prof alessandro zanini 7
[close]
p. 9
2 conceitos de hardware e software 2.1 hardware um computador digital é constituído por um conjunto de componentes interligados composto por processadores memória principal e dispositivos físicos hardware esses dispositivos manipulam dados na forma digital o que proporciona uma maneira confiável de representação todos os componentes de um computador são agrupados em três subsistemas básicos unidade central de processamento ucp memória principal e dispositivos de entrada e saída figura 5 estes subsistemas também chamados de unidades funcionais estão presentes em todo computador digital apesar de suas implementações variarem nas diferentes arquiteturas existentes e comercializadas pelos diversos fabricantes de computadores neste item descrevemos os conceitos básicos dos principais componentes desses sistema 2.1.1 unidade central de processalmento a unidade central de processamento ucp ou processador tem como função principal unificar todo o sistema controlando as funções realizadas por cada unidade funcional aucp 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 que são executadas sequencialmente pela ucp através de operações básicas como somar subtrair comparar e movimentar dados desta forma a ucp busca cada instrução na memória principal e a interpreta para sua execução unidade lógica e aritmética ula unidade de controle uc registradores dispositivos de entrada e saída memória principal mp figura 5 unidades funcionais de um computador a ucp é composta por dois componentes básicos unidade de controle e unidade lógica aritmética a unidade de controle uc é responsável por controlar as atividades de todos os componentes do computador mediante a emissão de pulsos elétricos sinais de controle gerados por um dispositivo denominado clock este controle pode ser a gravação de um dado no disco ou a busca de uma instrução da memória a unidade lógica e aritmética ula como o nome indica é responsável pela realização de operações lógicas testes e comparações e aritméticas somas e subtrações a especificação da velocidade de processamento de uma ucp é determinada pelo número de instruções que o processador executa por unidade de tempo normalmente segundo alguns fabricantes prof alessandro zanini 8
[close]
p. 10
utilizam unidade processamento próprias já que não existe uma padronização sendo as mais comuns o mips milhões de instruções por segundo e o mflops/gflops milhões/bilhões de instruções de ponto flutuante por segundo a mostra alguns processadores e suas respectivas velocidades de processamento intel 80386 5 mips intel 80486 20 mips item pentium 100 mips item pentium pro 250 mips velocidade de processamento tabela 2 velocidade de processamento de alguns computadores 2.1.2 clock o clock e um dispositivo localizado na ucp que gera pulsos elétricos síncronos em um determinado intervalo de tempo sinal de clock a quantidade de vezes que este pulso se repete em um segundo define a freqüência do clock o sinal de clock e utilizado pela unidade de controle pare a execução das instruções a freqüência do clock de um processador e medida em hertz hz que significa o número de pulsos elétricos gerados em um segundo de tempo a freqüência também pode ser utilizada como unidade de desempenho entre diferentes processadores pods quanto major a freqüência mais instruções podem ser executadas pela ucp em um mesmo intervalo de tempo 2.1.3 registradores os registradores são dispositivos de alta velocidade localizados fisicamente na ucp pare armazenamento temporário de dados o número de registradores varia em função da arquitetura de cada processador alguns registradores são de uso específico e têm propósitos especiais enquanto outros são ditos de uso geral entre os registradores de uso específico merecem destaque · contador de instruções ci ou program counter pc e o registrador responsável pelo armazenamento do endereço da próxima instrução que a ucp deverá executar toda vez que a ucp execute uma instrução o pc e atualizado com um novo endereço · o apontador da pilha ap ou stack pointer sp e o registrador que contémemóriam o endereço de memória do topo da pilha que e a estrutura de dados onde o sistema mantém informações sobre tarefas que estavam sendo processadas e tiveram que ser interrompidas por algum motivo · o registrador de estado também chamado em alguns equipamentos de program status word psw e o registrador responsável por armazenar informações sobre a execução do programa como a ocorrência de carry e overflow a cada instrução executada o registrador de estado e alterado conforme o resultado gerado pela instrução 2.1.4 memória principal a memória principal também conhecida como memória primária ou real e a parte do computador onde são armazenados instruções e dados ela e composta por unidades de acesso chamadas células sendo cada célula composta por um determinado número de bits binary digit o bit e a unidade básica de memória podendo assumir o valor 0 ou 1 atualmente a grande maioria dos computadores utilize o byte 8 bits como tamanho de célula porém encontramos computadores de gerações passadas com células de 16 32 e ate mesmo 60 bits podemos concluir então que a memória e formada por um conjunto de células onde cada célula possui um determinado número de bits figura 6 prof alessandro zanini 9
[close]
p. 11
0 1 2 endereços m-1 célula n bits figura 6 memória principal o acesso ao conteúdo de uma célula e realizado através da especificação ao de um número chamado endereço o endereço e uma referência única que podemos fazer a uma célula de memória quando um programa deseja ler ou escrever um dado em uma célula deve primeiro especificar qual o endereço de memória desejado pare depois realizar a operação a especificação ao do endereço o e realizada através de um registrador denominado registrador de endereço de memória memory register address mar através do conteúdo deste registrador a unidade de controle sabe qual a célula de memória que será acessada outro registrador usado em operações com a memória e o registrador de dados da memória memory buffer register mbr este registrador e utilizado pare guardar o conteúdo de uma ou mais células de memória após uma operação de leitura ou pare guardar o dado que será transferido pare a memória em uma operação de gravação este ciclo de leitura e gravação e mostrado na figura 7 operação de leitura 1 a ucp armazena no mar o endereço da célula a ser lida 2 a ucp gera um sinal de controle pare a memória principal indicando que uma operação de leitura deve ser realizada 3 0 conteúdo das células identificadas pelo endereço contido no mar e transferido pare o mbr operação de gravação 1 a ucp armazena no mar o endereço da célula que será gravada 2 a ucp armazena no mbr a informação que deverá ser gravada 3 a ucp gera um sinal de controle pare a memória principal indicando que uma operação de gravação deve ser realizada 4 a informação contida no mbr e transferida pare a célula de memória endereçada pelo mar figura 7 ciclo de leitura e gravação a capacidade de uma memória e limitada pelo tamanho do mar no caso de o registrador possuir n bits a memória principal poderá no máximo endereçar 2n células isto é do endereço 0 ao 2n1 a memória principal pode ser classificada em função de sue volatilidade que e a capacidade de a memória preservar o seu conteúdo mesmo sem uma fonte de alimentação ao ativa as memórias chamadas voláteis se caracterizam por poderem ser lidas ou gravadas como o tipo ram random access prof alessandro zanini 10
[close]
p. 12
memory que constitui quase que a totalidade da memória principal de um computador o outro tipo chamado de não volátil não permite alterar ou apagar seu conteúdo este tipo de memória conhecido como rom read-only memory já vem pré-gravado do fabricante geralmente com algum programa e seu conteúdo e preservado mesmo quando a alimentação e desligada uma variação da rom e a eprom erasable programmable rom once podemos gravar e regravar a memória através exposição de luz ultravioleta por um dispositivo especial atualmente uma série de memórias com diferentes características existe pare diversas aplicações como a eeprom earom eaprom novram entre outras 2.1.5 memória cache a memÓria cache e uma memória volátil de alta velocidade o tempo de acesso a um dado nela contido e muito menor que se o mesmo estivesse na memória principal toda vez que o processador fez 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 ha necessidade do acesso a memória principal do contrário o acesso e obrigatório neste último cave o processador a partir do dado referenciado transfere um bloco de dados pare a cache o tempo de transferência entre as memórias e pequeno se comparado com o aumento do desempenho obtido com a utilização ao desse tipo de memória apesar de ser uma memória de acesso rápido seu uso e limitado em fun,cao do alto custo a tabela 2.2 mostra a relação entre as memórias cache e principal em alguns equipamentos tamanho máximo memória principal tamanho máximo memória cache hp 9000/855s 256 mb 256 kb ibm 3090/600s 512 mb 128 kb por ucp vax 9000/440 512 mb 128 kb por ucp tabela 3 relação entre as memórias cache e principal 2.1.6 memória secundária a memória secundária e um meio permanente não volátil de armazenamento de programas e dados enquanto a memória principal precisa estar sempre energizada pare manter sues informações a memória secundária não precise de alimentação o acesso a memória secundária e lento se comparado com o acesso a memória cache ou à principal porém seu custo e baixo e sua capacidade de armazenamento e bem superior a da memória principal enquanto a unidade de acesso a memória secundária e da ordem de milissegundos o acesso a memória principal e de nanossegundos podemos citar como exemplos de memórias secundárias a fita magnética o disco magnético e o disco óptico a figura 8 mostra a relação entre os diversos tipos de dispositivos de armazenamento apresentados comparando custo velocidade e capacidade de armazenamento registradores maior capacidade de armazenamento memória cache maior custo e maior velocidade de acesso memória principal memória secundária figura 8 relação entre os diversos tipos de dispositivos de armazenamento prof alessandro zanini 11
[close]
p. 13
2.1.7 dispositivos de entrada e saída os dispositivos de entrada e saída e/s são utilizados pare permitir a comunicação entre o computador e o mundo externo através desses dispositivos a ucp e a memória principal podem se comunicar tanto com usuários quanto com memórias secundárias a fim de realizar qualquer tipo de processamento os dispositivos de e/s podem ser divididos em duas categorias os que são utilizados como memória secundária e os que servem pare a interface homem-máquina os dispositivos utilizados como memória secundária como discos e fitas magnéticas se caracterizam por armazenar de três a quatro vezes mais informações que a memória principal seu custo e relativamente baixo porém o tempo de acesso a memória secundária e de quatro a seis vezes major que o acesso a memória principal alguns dispositivos servem pare a comunicação ao homem-máquina como teclados monitores de vídeo impressoras plotters entre outros com o avanço no desenvolvimento de aplicações de uso cada vez mais geral procure-se aumentar a facilidade de comunicação entre o usuário e o computador a implementação de interfaces mais amigáveis permite cada vez mais que pessoas sem conhecimento específico sobre informática possam utilizar o computador scanner caneta ótica mouse dispositivos sensíveis a voz humana e ao calor do corpo humano são alguns exemplos desses tipos de dispositivos 2.1.8 barramento a ucp 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 e um conjunto de fios paralelos linhas de transmissão onde trafegam informações como dados endereços ou sinais de controle ele pode ser classificado como unidirecional transmissão em um só sentido ou bidirecional transmissão em ambos os sentidos na ligação entre ucp e memória principal podemos observar que três barramentos são necessários pare que a comunicação seja realizada o barramento de dados transmite informações entre a memória principal e a ucp o barramento de endereços e utilizado pela ucp pare especificar o endereço o da célula de memória que será acessada finalmente o barramento de controle e por onde a ucp envia os pulsos de controle relativos as operações de leitura e gravação na fig 2.5 podemos observar dois tipos de configuracões onde ucp memória principal e dispositivos de e/s são interligados de maneira diferente 2.1.9 pipelining o conceito de processamento pipeline se assemelha muito a uma linha de montagem onde uma tarefa e dividida em uma seqüência de subtarefas executadas em diferentes estágios dentro da linha de produção ucp dispositivos de e/s ucp memória principal memória principal dispositivos de e/s figura 9 configurações de sistema da mesma forma que em uma linha de montagem a execução de uma instrução pode ser dividida em subtarefas como as fases de busca da instrução e dos operandos execução e armazenamento dos prof alessandro zanini 12
[close]
p. 14
resultados o processador através de suas várias unidades funcionais pipeline funciona de forma a permitir que enquanto uma instrução se encontra na fase de execução possa estar na fase de busca simultaneamente a técnica de pipelining pode ser empregada em sistemas com um ou mais processadores em diversos níveis e tem sido a técnica de paralelismo mais utilizada para maior desempenho dos sistemas de computadores 2.1.10 ativação e desativação do sistema o sistema operacional é essencial para o funcionamento de um computador sem ele grande parte dos recursos do sistema não estaria disponível ou se apresentaria de uma forma complexa para utilização pelos usuários toda vez que um computador é ligado é necessário que o sistema operacional seja carregado da memória secundária para a memória principal esse processo denominado ativação do sistema boot é realizado por um programa localizado em um posição especifíca do disco disco block geralmente o primeiro bloco o procedimento de ativação varia em função do equipamento podendo ser realizado através do teclado de um terminal ou por manipulação de chaves de um painel figura 10 disco memória principal boot sistema operacional figura 10 ativação do sistema além da carga do sistema operacional a ativação do sistema também consiste na execução de arquivos de inicialização nestes arquivos são especificados procedimentos de inicialização de hardware e software específicos para cada ambiente na maioria dos sistemas também existe o processo de desativação shutdown este procedimento permite que as aplicações e componentes do sistema sejam desativados de forma ordenada garantindo a integridade do sistema 2.1.11 arquiteturas risc e cisc um processador com arquitetura risc reduced instruction set computer se caracteriza por possuir poucas instruções de máquina em geral bastante simples que são executadas diretamente pelo hardware na sua maioria estas instruções não acessam a memória principal trabalhando principalmente com registradores que neste tipo de processador se apresentam em grande número estas características além de ajudarem as instruções serem executadas em alta velocidade facilitam a implementação do pipeline como exemplos de processaores risc podemos citar o sparc sun rs-6000 ibm pa-risc hp alpha axp dec e rx000 mips os processadores cisc complex instruction set computers já possuem instruções complexas que são interpretadas por microprogramas o número de registradores é pequeno e qualquer instrução pode referenciar a memória principal neste tipo de arquitetura a implementação do pipeline é mais difícil são exemplos de processadores cisc o vax dec 80x86 e o pentium intel e o 68xx motorola 2.2 software o hardware por si só não tem a menor utilidade para torná-lo útil existe um conjunto de programas utilizado como interface entre as necessidades do usuário e as capacidades do hardware a prof alessandro zanini 13
[close]
p. 15
utilização de softwares adequados às diversas tarefas e aplicações conceitos de camadas torna o trabalho do usuários muito mais simples e eficiente 2.2.1 tradutor nos sistemas operacionais antigos o ato de programar era bastante complicado já que o programador deveria possuir conhecimento do hardware e programar em painéis através de fios esses 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 das linguagens de alto nível o programador deixou de se preocupar com muitos aspectos pertinentes ao hardware como em qual região da memória o programa deveria ser carregado ou quais endereços de memória seriam reservados para as variáveis a utilização dessas linguagens facilitou a construção de programas em muitos aspectos desse modo um programa poderia ser escrito de uma forma bem documentada e com facilidades para realizar alterações o tradutor pelo tipo de linguagem de programação utilizada pode ser chamado de montador ou compilador figura 11 programa-fonte programa-fonte programa-objeto linguagem de montagem montador módulo-objeto linguagem de alto nível compilador módulo-objeto figura 11 tradutor 2.2.2 compilador É o utilitário responsável por gerar a partir de um programa escrito em uma linguagem de alto nível um programa em linguagem de máquina não executável as linguagens de alto nível como pascal fortran cobol não tem nenhuma relação direta com a máquina ficando essa preocupação exclusivamente com o compilador 2.2.3 interpretador o 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 2.2.4 linker o linker ligador também chamado de linkagem é o utilitário responsável por gerar a partir de um ou mais módulos-objetos um único programa executável prof alessandro zanini 14
[close]