Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 19 GERENCIAMENTO DE DISPOSITIVO Em um sistema de computação existem alguns elementos básicos que fazem com que o computador interaja de maneira agradável e fácil com o usuário. A princípio existe a CPU e depois os controladores que se comunicam através de barramentos (bus). Cada controlador tem a responsabilidade sobre um tipo de dispositivo, que podem ser dispositivos de áudio ou dispositivos de vídeo. A implementação desse sistema é feita através de Aula 02 GERENCIAMENTO DE DISPOSITIVO E ARQUITETURAS RISC E CISC Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 20 camadas. Como exemplo geral podemos citar que as camadas de nível mais baixo escondem características dos dispositivos das camadas superiores, assim propiciando ao usuário uma interface mais simples e agradável. Esse sistema de camadas tem uma função muito importante, a de separar a complexidade dos dispositivos físicos, tornando o sistema operacional mais flexível e permitindo a comunicação das aplicações com qualquer tipo de periférico. Os dispositivos como impressora, placa gráfica e outros necessitam de um software que lhes suporte. Esses softwares são chamados de Device Driver ou somente Driver. Driver é o aplicativo que liga o sistema ao dispositivo de hardware e tem a função de fazer a comunicação entre o subsistema de I/O com os dispositivos. É comum encontrar esses drivers para sistemas mais populares, mas para outros mais modernos que vão surgindo no decorrer do tempo muitas vezes há certa demora no seu desenvolvimento. À medida que o sistema vai se popularizando, também surgem os drives para gerenciamento. Existe uma grande preocupação nos sistemas operacionais que é a de proteger o seu kernel. Por exemplo: pode ocorrer de uma aplicação que tenha acesso ao kernel (núcleo) execute uma operação que altere a integridade do sistema operacional, deixando-o totalmente comprometido. Por isso, os principais modos de segurança de sistemas operacionais se utilizam de um mecanismo existente no hardware dos processadores. Tal sistema é conhecido como modo de acesso. Os processadores possuem dois modos de acesso, modo de usuário e modo kernel ou (modo núcleo). No modo usuário, as aplicações só podem executar instruções conhecidas como não- privilegiadas e têm acesso a um número reduzido de instruções. Já no modo kernel ou núcleo, as aplicações têm acesso ao conjunto total de instruções. Há sempre um grande cuidado com o acesso a instruções privilegiadas, e estas não devem ser utilizadas de maneira indiscriminada pelas aplicações, porque isso pode ocasionar sérios problemas ao sistema. Um exemplo bem simples é o do Windows XP cujos processos de modo usuário interagem com um subsistema de ambiente (com subsistema Win32) e não diretamente com componentes de modo núcleo. Os subsistemas de ambiente passam requisições de E/S para o gerenciador de E/S, que interage com drivers de dispositivo para tratar essas requisições. (Sistemas operacionais: terceira edição/H.M. Deitel, P.J. Deitel, D.R. Choffnes, 2005). Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 21 Podemos dividir os dispositivos de E/S (I/O) em duas categorias: dispositivos de bloco e dispositivos de caractere. O dispositivo de bloco, como o próprio nome diz, armazena informações em bloco e com tamanho fi xo, e cada um com o seu endereço. Uma propriedade do dispositivo de bloco é que cada bloco pode ser lido ou escrito independentemente de todos os outros. Um dos dispositivos de bloco mais comuns são os discos. Cada bloco tem o tamanho que varia de 512 bytes a 32 768 bytes. O dispositivo de caractere não é endereçável e, como exemplo, são impressoras, interfaces de redes, mouses e a maioria dos dispositivos que são diferentes dos discos e que podem ser considerados dispositivos de caractere. Veja na tabela 1, a seguir, a taxa de dados de cada dispositivo. Esse componente é chamado de controlador de dispositivo ou adaptador. Em alguns computadores ele se apresenta como uma placa controladora que pode ser adicionada em um conector. Figura 1 Dispositivo Taxa de dados Teclado 10 bytes/s Mouse 100 bytes/s Modem 56k 7 KB/s Canal telefônico 8 KB/s Linhas ISDN dual 16 KB/s Impressora a laser 100 KB/s Scanner 400 KB/s Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 22 Para que o computador comece o seu funcionamento, obviamente, o primeiro passo é ligá-lo. Logo após, para que ele comece a operar, é preciso ter um programa. Esse programa pode ser chamado de programa inicial ou simplesmente de boostrap e, em geral, é armazenado na memória ROM ou EEPROM. A função do programa é inicializar todos as partes do sistema dos registradores da CPU, correspondentes aos controladores de dispositivos e aos conteúdos da memória. O programa carrega o sistema operacional e, para isso, ele aloca e carrega na memória o kernel do sistema operacional. Carregado, o sistema operacional fi ca em espera, aguardando que algum evento ocorra. A ocorrência de eventos pode ser causada por hardware ou por software. O hardware pode causar um evento a qualquer momento, mandado um sinal até a CPU, através do bus. Já o software causa uma interrupção quando executa uma operação conhecida por chamada de sistema ou chamada de monitor. As interrupções é o que aciona o sistema operacional para executar algo. Na falta de processos para executar dispositivos de I/O, o sistema operacional fi ca inativo, ou seja, fi ca na espera. Para cada tipo de interrupção, há uma definição de ação do sistema operacional que decide que ação será tomada. Assim, forma uma rotina responsável por lidar com a determinada interrupção que foi gerada. Quando a CPU é interrompida, ela para o que está fazendo e, de imediato, aciona toda a execução para a localização fixa. Esse endereço normalmente está localizado no início da rotina de serviço para determinada Ethernet clássica 1,25 MB/s USB (universal serial bus) – barramento serial universal 1,5 MB/s Câmara de vídeo digital 4 MB/s Disco IDE 5 MB/s CD-ROM 40x 6 MB/s Ethernet rápida 12,5 MB/s Barramento ISA 16,7 MB/s Disco EIDE (ATA-2) 16,7 MB/s FireWire (IEEE 1394) 50 MB/s Monitor XGA 60 MB/s Rede SONET OC-12 78 MB/s Disco SCSI Ultra 2 80 MB/s Ethernet Gigabit 125 MB/s Dispositivo de fi ta Ultrium 320 MB/s Barramento PCI 528 MB/s Barramento da Sun Gigaplane XB 20 GB/s Tabela 1 Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 23 interrupção. Uma interrupção pode ser gerada como o resultado de instruções de um processo. Nesse caso, é considerado como sendo um desvio ou chamado de trap e é considerado como síncrona em relação à operação do processo. Um exemplo é quando um processo tenta realizar uma operação ilegal, isto é, uma interrupção síncrona; interrupções causadas por algum evento não relacionado com a instrução corrente do processo são chamadas de assíncronas. BUFFERING Uma das técnicas utilizadas para transferência de dados para a memória principal é o buffering. Ele utiliza uma área na memória principal chamada de buffer, onde os dados são armazenados. Assim, o dispositivo de entrada e saída (I/O) fi ca liberado para realizar outra tarefa, isto é quando o processador executa o que está no buffer, o dispositivo pode fazer uma outra leitura ou gravação. A função do buffering é manter o processador e os dispositivos de I/O o mais ocupados possível. A unidade de transferência utilizada no buffering é o registro. Isso pode variar, pois pode ser uma linha gerada por uma impressora ou por uma aplicação qualquer. SPOOLING Spooling (simultaneous peripheral operation on-line). Imagine que a velocidade dos processadores é maior que a dos dispositivos de E/S. Então é comum a CPU fi car ociosa na espera das atividade dos dispositivos de E/S. Pense em uma CPU na espera do término de uma impressão. Para resolveresse tipo de problema, foi desenvolvida a técnica de spool, em que vários programas e seus dados são armazenados. Esses dados e programas são os chamados Jobs. Antes eram armazenados e guardados em fi tas magnéticas, para depois serem processados. Assim, o processador executa sequencialmente cada processo ou job. Com isso, tem-se a diminuição do tempo de processamento e de transição entre eles. Com os trabalhos de impressão eles são gravados em fi ta em vez de serem gravados diretamente na impressora. Após a gravação do job na fi ta, ele é impresso integralmente. A essa forma de processamento dá-se o nome de spooling. Com o uso de fita os processos são estritamente obrigados a serem sequenciais. Assim, o primeiro trabalho gravado na fita era o primeiro a ser impresso ou processado. Um trabalho muito extenso, que antecedesse outros menores, deixaria os menores com um tempo de resposta bem maior que o esperado e os seus tempos de resposta ficariam comprometidos em virtude desse trabalho maior. Já com o surgimento dos dispositivos de acesso direto, como os discos, há a possibilidade de os processamentos não serem obrigados a receber tratamento como sequenciais, tornando a técnica de spooling mais eficiente. A técnica de spooling é muito semelhante à de buffer. A grande diferença é Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 24 que o spool é gravado e lido no disco como se fosse um grande buffer, e os programas podem ser executados concorrentemente. Essa técnica de spooling é muito utilizada, na maioria dos sistemas operacionais, no gerenciamento de impressão. Na hora em que um trabalho é impresso, o arquivo é gravado em disco. E quando é feito outro pedido de impressão, este segundo fica na fila à espera, também gravado em disco. Veja uma simples ilustração na figura 2. REENTRÂNCIA Código reentrante - muitos usuários usam o mesmo programa e muitas vezes até ao mesmo tempo. Isso em sistemas multiusuário. Imagine se cada um dos usuários colocasse uma cópia do programa aplicativo de editor de texto, de planilha ou qualquer outro aplicativo, na memória principal. Isso ocasionaria uma perda imensa de memória. Com a reentrância, podemos colocar apenas uma cópia do aplicativo onde vários usuários utilizam e compartilham o aplicativo. A reentrância permite que cada usuário possa estar em um ponto diferente do código reentrante, manipulando os próprios dados. PIPELINING Com esse modelo, o processador pode executar várias tarefas paralelamente em tempos diferentes. Por exemplo: enquanto um processo está no meio, ele pode iniciar outro, em outra área. Quando este segundo está pela metade o processador pode iniciar outro, e assim por diante. Esse modelo é muito parecido com uma linha de montagem, onde a tarefa é dividida em uma sequência de subtarefas. Este método faz com que o processador não fi que ocioso, pois assim que vai Figura 2 Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 25 terminando um processo já inicia outro. As instruções são executadas paralelamente e com várias tarefas ao mesmo tempo, mas em fases diferentes. O sistema pode ser empregado com um ou mais processadores em diversos níveis. ARQUITETURAS RISC E CISC Todo processador tem um conjunto de instruções que são defi nidas por seus fabricantes, chamadas linguagem de máquina. A linguagem de máquina pode ser executada diretamente no processador. O programa que é produzido especifi camente para um determinado processador não pode ser executado em outra máquina que tenha uma estrutura diferente, ou seja, em uma outra máquina que tenha uma arquitetura diferente. Podemos perceber que o conjunto de instruções é desenvolvido de acordo com as características do processador, respeitando-se a sua arquitetura. Os processadores de arquitetura RISC (Reduced Instruction Set Computer) são conhecidos por terem poucas instruções de máquina e serem bastante simples porque são executadas diretamente no hardware. A maioria dessas instruções não acessa a memória principal, pois nessa arquitetura existe um grande número de registradores. Em função disso, as instruções trabalham com os registradores, não acessando a memória principal. Já os processadores de arquitetura CISC (Complex Instrution Set Computers) não têm um grande número de registradores. Suas instruções são traduzidas por microprogramas e qualquer instrução pode referenciar a memória principal. Nesse tipo de arquitetura a implementação do pipelining torna-se mais difícil. A tabela 2 mostra algumas diferenças entre as arquiteturas RISC e CISC. RISC CISC Poucas instruções Muitas instruções. Instruções executadas pelo hardware Instruções executadas por microcódigo. Instruções com formato fi xo Instruções com diversos formatos. Instruções que usam pouco ciclo de máquina. Instruções que utilizam muitos ciclos. Instruções com pouco modo de endereçamento. Instruções com diversos modos de endereçamento. Arquitetura com muitos registradores. Arquitetura com poucos registradores. Arquitetura pipelining Pouco uso da técnica de pipelining. Alguns processadores são chamados de microprogramáveis. São aqueles que permitem a inserção de novas instruções de máquina através do desenvolvimento de microprogramas. Alguns equipamentos não dispõem desse recurso, pois os microprogramas vêm gravados em memória do tipo ROM. Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 26 ATIVIDADES As atividades referentes a esta aula estão disponibilizadas na ferramenta “Atividades”. Após respondê-las, envie-nas por meio do Portfólio- ferramenta do ambiente de aprendizagem UNIGRAN Virtual. Em caso de dúvidas, utilize as ferramentas apropriadas para se comunicar com o professor.
Compartilhar