Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Marcelo Santos UNIDADE IV Fundamentos de Sistemas Operacionais Em linhas gerais, no ambiente computacional, espera-se que dados inseridos na entrada saiam como produto final, informação processada. Essas informações podem ser compreendidas como textos, planilhas, figuras, filmes etc. As informações, que podem ocupar de alguns bytes a milhares de milhões de bytes, devem ser armazenadas em dispositivos não voláteis, ou seja, não podem ser perdidas com o desligamento do computador e podem ser acessadas por múltiplos processos de forma concorrente. As informações são armazenadas tipicamente em disco e o armazenamento resume-se em sequências lineares de blocos de tamanho fixo que suportam duas operações: busca do bloco k e escrita no bloco k, surgindo, portanto, o conceito de arquivo. Introdução a Sistemas de Arquivos Podemos definir um arquivo como sendo um conjunto de dados armazenados em um dispositivo físico não volátil, com um nome e/ou referência que permita sua localização futura. Arquivos podem ter diversos formatos, desde um simples arquivo de texto ASCII com alguns poucos bytes, até mesmo vídeos com vários megabytes ou gibabytes em diversos formatos. Um sistema de armazenamento de arquivos pode conter milhões de arquivos que são organizados em estruturas hierárquicas denominadas diretórios. A estrutura e a organização física e lógica dos arquivos e diretórios dentro de um dispositivo de armazenamento são denominadas de sistema de arquivos. Arquivos Cada arquivo é diferenciado por um conjunto de atributos. Tipicamente, temos alguns atributos mais usados: Nome: uma sequência de caracteres para identificar de tal forma que um ser humano, ao vê-lo na tela, consiga identificá-lo. Exemplo: relatorio.doc. Data: é muito útil no que tange ao gerenciamento do ambiente. Além de ajudar o usuário a saber quando um arquivo foi criado, pode também controlar a data e a hora do último acesso, da última modificação do conteúdo e até mesmo da última alteração de outro atributo, como o nome do arquivo, por exemplo. Tipo: indica se o formato do arquivo é áudio, vídeo, imagem, texto ou outro. O sistema de arquivos do Windows e outros usam a extensão, que é parte do nome, para indicar o tipo do arquivo. Atributos Exemplo: “.doc” no arquivo com o nome “relatorio.doc” refere-se a um arquivo de texto (abreviação de document). Tamanho: esse atributo determina quanto de espaço em bytes (1 byte = 8 bits) ou registros. Exemplo: relatorio.doc 906.085 bytes. Proprietário: atualmente, com os sistemas em rede e multiusuários, cada arquivo tem um proprietário, que deve estar corretamente identificado – em alguns casos o próprio sistema é o proprietário do arquivo e por isso nenhum usuário deveria alterá-lo. Permissões de acesso: determinam quais usuários têm acesso ao arquivo e quais permissões são atribuídas a cada usuário (leitura, escrita, remoção etc.). Atributos Um usuário de sistema Unix chamado root, na teoria, deveria ter acesso total ao arquivo, enquanto um usuário ou um processo que só deve consultar um arquivo de registros de log deveria ter acesso só de leitura. Localização: esse atributo indica o dispositivo físico onde o arquivo se encontra e a posição do arquivo dentro dele. Para o usuário do sistema, a localização do arquivo é demonstrada como uma estrutura hierárquica que parte da raiz, que é o pai de todos os demais repositórios filhos. Atributos Os arquivos podem ser estruturados de várias formas. A figura mostra uma sequência de estrutura de bytes. Para os sistemas operacionais Windows e Unix, a estrutura de um arquivo nada mais é que uma sequência desestruturada de bytes. Isso oferece a máxima flexibilidade, tendo em vista que os programas dos usuários podem pôr qualquer coisa que seja necessária em seus arquivos e ter os nomes que mais forem convenientes. Estrutura de arquivo Fonte: Livro-texto. Na figura b, é demonstrada uma forma estruturada. Nessa estrutura, o arquivo é uma sequência de registros de tamanho fixo, cada um com alguma estrutura interna. A principal característica dessa estrutura é que a operação de leitura retorna um registro e a operação de escrita sobrepõe ou anexa um registro, entretanto, esse modelo não é mais aplicado nos sistemas atuais. Estrutura de arquivo Fonte: Livro-texto. Estrutura de arquivo Na organização demonstrada na Figura c, um arquivo é constituído de uma árvore de registros, cada uma contendo um campo-chave em uma posição fixa no registro. Para que uma chave específica seja buscada de forma mais rápida, a árvore é ordenada pelo campo-chave. O sistema operacional decide onde colocar novos registros no arquivo. Esse tipo de arquivo é bem diferente dos fluxos de bytes desestruturados que são usados pelo Windows e Unix, porém são ainda muito usados para alguns processamentos de dados comerciais. Fonte: Livro-texto. Os aplicativos e o sistema operacional armazenam e recuperam dados dos arquivos e por meio de um conjunto de operações fazem uso deles. As operações básicas envolvendo arquivos são: Criar: a criação de um novo arquivo demanda a alocação de espaço no dispositivo de armazenamento e a definição de seus atributos (nome, localização, proprietário, permissões de acesso etc.). Ler: permite transferir dados presentes no arquivo para uma área de memória da aplicação e, se necessário, enviar para um dispositivo de saída como monitor, impressora e outros. Abrir: antes que um aplicativo possa ler ou escrever dados em um arquivo, este deve solicitar ao sistema operacional que o arquivo seja aberto. Operações O sistema irá, primeiro, verificar se o arquivo existe, segundo, se as permissões associadas permitem acesso ao arquivo, terceiro, localizar seu conteúdo no dispositivo de armazenamento, então criar uma referência para ele na memória. Escrever: essa operação permite transferir dados da memória do aplicativo para o arquivo armazenado no dispositivo físico; os novos dados podem ser adicionados no final do arquivo ou sobrescrever dados já existentes. Fechar: ao concluir o uso do arquivo, a aplicação deve informar ao sistema operacional que esse arquivo não é mais necessário, a fim de liberar as estruturas de gerência do arquivo na memória do núcleo. Mudar atributos: usado para modificar outras características do arquivo, como nome, proprietário, localização, permissões etc. Operações Remover: elimina o arquivo do dispositivo, descartando seus dados e liberando o espaço ocupado por ele. Além dessas operações básicas, outras operações podem ser definidas, como copiar, mover ou renomear arquivos. Entretanto, essas operações geralmente podem ser construídas usando as operações básicas. Operações Em um sistema multitarefas e em redes, frequentemente se tem arquivos sendo acessados por mais de um processo ou por mais de um usuário. O acesso simultâneo a recursos compartilhados pode gerar condições de disputa (race conditions), levando à inconsistência de dados e outros problemas. A possibilidade de escritas e leituras simultâneas tem de ser prevista e tratada com muito planejamento e controle de acesso desses elementos compartilhados. Compartilhamentos Podemos definir um arquivo como sendo um conjunto de dados armazenados em um dispositivo físico não volátil, com um nome e/ou referência que permita sua localização futura. Cada arquivo é diferenciado por um conjunto de atributos. Tipicamente, podemos definir os seguintes atributos: I. Nome: uma sequência de caracteres para identificar de tal forma que um ser humano, ao vê-lo na tela, consiga identificá-lo. II. Data: é muito útil no que tange ao gerenciamento do ambiente. Além de ajudar o usuário a saber quando um arquivo foi criado, pode também controlar a data e a hora do último acesso, da última modificaçãodo conteúdo e até mesmo da última alteração de outro atributo, como o nome do arquivo, por exemplo. I. Tipo: indica se o formato do arquivo é áudio, vídeo, imagem, texto ou outro. Interatividade De acordo com o material estudado na unidade, selecione a afirmativa que contém os atributos com os quais podemos diferenciar os arquivos. a) Apenas a afirmação I. b) Apenas a afirmação II. c) Apenas a afirmação III. d) Todas as afirmações. e) Nenhuma das afirmações. Interatividade I. Nome: uma sequência de caracteres para identificar de tal forma que um ser humano, ao vê-lo na tela, consiga identificá-lo. II. Data: é muito útil no que tange ao gerenciamento do ambiente. Além de ajudar o usuário a saber quando um arquivo foi criado, pode também controlar a data e a hora do último acesso, da última modificação do conteúdo e até mesmo da última alteração de outro atributo, como o nome do arquivo, por exemplo. III. Tipo: indica se o formato do arquivo é áudio, vídeo, imagem, texto ou outro. De acordo com o material estudado na unidade, selecione a afirmativa que contém os atributos com os quais podemos diferenciar os arquivos. a) Apenas a afirmação I. b) Apenas a afirmação II. c) Apenas a afirmação III. d) Todas as afirmações. e) Nenhuma das afirmações. Resposta Por meio de uma ou mais travas (locks) aplicadas aos arquivos abertos, tipicamente os sistemas operacionais oferecem algum mecanismo de sincronização para acesso a arquivos. A sincronização pode ser feita aplicando-se a trava no arquivo inteiro ou somente em um trecho específico. Isso permitirá que dois ou mais processos possam trabalhar em partes distintas de um arquivo sem necessidade de sincronização entre eles. “As travas oferecidas pelo sistema operacional podem ser obrigatórias ou recomendadas”. Travas obrigatórias: são impostas pelo núcleo do sistema operacional de forma compulsória, de modo que se um processo obtiver a trava do arquivo, então outros processos que solicitarem acesso ao arquivo serão suspensos até que a respectiva trava seja liberada. Travas em arquivos Travas recomendadas: não são impostas pelo núcleo do sistema operacional. Portanto, um processo pode acessar um arquivo mesmo sem ter sua trava e caso sejam usadas travas recomendadas, fica a cargo do programador implantar em suas aplicações os controles de trava necessários para impedir acessos conflitantes aos arquivos. As travas sobre arquivos também podem ser exclusivas ou compartilhadas. Trava exclusiva: também chamada trava de escrita, garante acesso exclusivo ao arquivo, portanto, enquanto uma trava exclusiva estiver ativa, nenhum outro processo poderá obter uma trava sobre aquele arquivo. Trava compartilhada (ou trava de leitura): impede outros processos de criar travas exclusivas sobre o arquivo, mas permite a existência de outras travas compartilhadas. Travas em arquivos Em conjunto, as travas exclusivas e compartilhadas implementam um modelo de sincronização leitores/escritores, no qual os leitores acessam arquivos usando travas compartilhadas e os escritores o fazem usando travas exclusivas. Geralmente, as travas de arquivos são atribuídas a processos. Dessa forma, um processo só pode possuir um tipo de trava sobre um mesmo arquivo e todas as travas são liberadas quando o processo fecha o arquivo ou finaliza sua execução. Os sistemas Windows oferecem por default travas obrigatórias sobre arquivos, que podem ser exclusivas ou compartilhadas, ou travas recomendadas sobre trechos de arquivos. Travas em arquivos Quando um arquivo é usado por um único processo, o funcionamento das operações de leitura e escrita é simples e claro. Dessa forma, quando um dado é escrito no arquivo, ele está prontamente disponível para leitura. No entanto, arquivos podem ser abertos por vários processos simultaneamente e os dados escritos por um processo podem não estar prontamente disponíveis aos demais processos que estão lendo aquele arquivo. Isso ocorre porque as memórias secundárias em disco rígido são lentas em comparação com a memória principal, levando os sistemas operacionais a usar buffers intermediários para acumular os dados que deverão ser escritos/manipulados, otimizando o acesso aos discos. Semântica de trava de acesso A forma como os dados escritos por um processo é notada pelos demais processos que também abriram um determinado arquivo é chamada de semântica de compartilhamento. Semântica de trava de acesso Sessões concorrentes de acesso a um arquivo compartilhado podem ver conteúdos distintos para o mesmo arquivo. Essa semântica é normalmente aplicada a sistemas de arquivos de rede, usados para acesso a arquivos em outros computadores. Semântica imutável: se um arquivo pode ser compartilhado por vários processos, ele é marcado como imutável. Dessa forma, seu conteúdo não pode ser modificado. É a forma mais trivial que garante a consistência do conteúdo do arquivo entre os processos que compartilham seu acesso, portanto, usada em alguns sistemas de arquivos distribuídos. Semântica de trava de acesso Entre outras semânticas possíveis, as mais usuais são: Semântica Unix: toda modificação em um arquivo é imediatamente visível a todos os processos que mantêm o arquivo aberto, existindo também a possibilidade de vários processos compartilharem o mesmo ponteiro de posicionamento do arquivo. Esse tipo de semântica é comumente aplicada em sistemas de arquivos locais, ou seja, para acesso a arquivos nos dispositivos locais. Semântica de sessão: considera que cada processo usa um arquivo em uma sessão, iniciando com a abertura do arquivo e terminando com o seu fechamento. Modificações em um arquivo feitas em uma sessão somente são visíveis na mesma sessão e pelas sessões que iniciarem depois do encerramento desta, ou seja, depois que o processo fechar o arquivo. Semântica de trava de acesso O sistema organiza logicamente os diversos arquivos contidos em um disco numa estrutura denominada diretório. O diretório é uma estrutura de dados que contém entradas associadas aos arquivos, na qual cada entrada armazena informações como localização física, nome e demais atributos. Embora o sistema operacional possa tratar com facilidade da enorme quantia de arquivos existentes em um sistema de arquivos, essa tarefa está bem distante de ser trivial para os usuários. Identificar e localizar um arquivo específico em meio a milhões de outros arquivos de forma rápida e direta pode ser o mesmo que procurar uma “agulha num palheiro”. Para permitir a organização de arquivos dentro de uma partição, são usados diretórios. Um diretório, também chamado de pasta (folder), representa um contêiner de informações, que pode conter arquivos ou mesmo outros diretórios. Diretórios Da mesma forma que os arquivos, diretórios têm nome e atributos que são usados na localização e acesso aos arquivos neles contidos. Cada espaço de armazenamento possui ao menos um diretório principal, denominado diretório raiz. Em sistemas de arquivos mais antigos e simples, o diretório raiz de um volume estava definido em seus blocos de inicialização, normalmente reservados para informações de gerência. Todavia, como o número de blocos reservados era pequeno e fixo, o número de entradas no diretório raiz era limitado. Nos sistemas mais recentes, um registro específico dentro dos blocos de inicialização aponta para a posição do diretório raiz dentro do sistema de arquivos, permitindo que este tenha um número muito maior de entradas. O uso de diretórios permite construir uma estrutura hierárquica (em árvore) de armazenamento dentro de um volume, sobre a qual os arquivos são distribuídos. Diretórios A figura ao lado representa uma parte da árvore de diretórios típica de um sistema Linux, cuja estrutura é definida nas normas Filesystem HierarchyDiretórios bin etc home lib proc root tmp usr var opt sgml skel X11 X11R6 bin include lib local man share src tmp adm cache cron lib local log mail run spoll at cron lpd mail news smail doc games info locale man zoneinfo bin doc etc include lib man share X11 gcc-lib groff uucp X11 bin lib include Fonte: Livro-texto (adaptado). I - X11 asm linux g++ O nível mais simples de uma estrutura de diretórios é chamado de nível único single-level directory). Nessa estrutura, existe somente um único diretório contendo todos os arquivos do disco. Esse modelo é bastante limitado, já que não permite que usuários criem arquivos com o mesmo nome, o que ocasionaria um conflito no acesso aos arquivos. O primeiro supercomputador da história foi um CDC 6600 e usava um sistema de diretório único. A próxima figura ilustra esse sistema. Sistema de diretórios em nível único Fonte: Livro-texto. Sistema de diretórios hierárquicos Diretório raiz usuario 1 propostas PropostaV1 PropostaV2 PropostaV3 PropostaV4 usuario 2 usuario 3 relatorios O sistema de nível único é bastante limitado, demandando uma evolução do modelo, então foi implantada uma estrutura na qual para cada usuário existiria um diretório particular denominado Diretório de Arquivo do Usuário, conhecido como sistema de diretório em dois níveis. Pela perspectiva do usuário, a organização dos seus arquivos em um único diretório não permite uma organização adequada. A extensão do modelo de dois níveis para um de múltiplos níveis permitiu que os arquivos fossem logicamente melhor organizados. Esse novo modelo, chamado estrutura de diretórios em árvore, é adotado pela maioria dos sistemas. Fonte: Livro-texto (adaptado) Os sistemas de arquivos são desenvolvidos, muitas vezes, por motivos comerciais, outras, por alinhamento tecnológico com o propósito do hardware ou até mesmo motivados por interoperabilidade entre sistemas. Nesta próxima seção estudaremos alguns mais relevantes por serem os mais populares. Tipos de sistemas de arquivos O sistema de arquivos ISO 9660 é um padrão internacional e mais usado em tecnologia de CD-ROMs. A quase totalidade dos CD-ROMs no mercado atual é compatível com esse padrão. O objetivo principal do padrão ISO 9660 era tornar possível que todo CD-ROM fosse legível por todos os computadores, independentemente da ordem em que os bytes são armazenados e qual sistema operacional esteja carregado no hardware. Tecnicamente, uma grande diferença dos discos rígidos para os CD-ROMs é que estes não possuem cilindros concêntricos, mas sim uma única espiral contínua que contém bits em uma sequência linear. Sistema de arquivos ISO 9660 Os primeiros computadores pessoais da IBM já utilizavam o sistema de arquivos MS-DOS e por anos foi o mais usado mundialmente. Até o Windows 98 e o ME, a Microsoft manteve o mesmo sistema de arquivos. O Windows 2000, XP e o Vista suportam esse sistema, porém, ele não é mais padrão nos equipamentos atuais. O sistema de arquivos MS-DOS possui extensão FAT-32, que vem sendo usada amplamente em máquinas fotográficas, MP3 e outros. Atualmente, o sistema de arquivos MS-DOS e suas extensões são mais usados do que em qualquer outra época. O sistema de arquivo usado pela Microsoft atualmente é o NTFS. Sistema de arquivo do FAT Antes de falarmos do sistema de arquivos Unix, é importante conhecermos sua origem para que possamos entender como um sistema de arquivos pode ter, logo em sua primeira versão, funcionalidades que são primordiais para ambientes multiusuários, por exemplo. O Multics foi criado em 1964, fomentado pelo projeto liderado pelo MIT (com Fernando Corbató), e a divisão de produtos para grandes computadores da companhia General Electric e dos Laboratórios Bell de telefonia. O sistema Multics seria implantado na plataforma GE 645 da GE. Uma visão geral da arquitetura desse sistema operacional tinha como ambição estar alinhada com quase todos os computadores existentes, suprindo as necessidades de computadores de grande porte, mesmo os que estariam à frente do seu tempo. Sistema de arquivos do ambiente Unix A primeira versão do sistema de arquivos do Linux foi o Minix, porém, como ele seguia estritamente os padrões do Unix, ele também tinha arquivos com limites de nomes de 14 caracteres e seu tamanho máximo de arquivo era de 64 MB. Esse padrão atendia quase que na totalidade as necessidades da época, porém, com o passar do tempo, 64 MB passou a ser “brincadeira de criança”, demandando sistemas de arquivos mais robustos e melhorados. O sistema de arquivos ext apresenta melhorias com relação ao tamanho do nome que passou a suportar até 255 caracteres e arquivos com tamanho de até 2 GB. Por outro lado, a desvantagem do sistema de arquivos ext, comparado com o Minix, era seu desempenho, apresentando lentidão considerável. Sistema de arquivos do Linux O sistema de arquivos ISO 9660 é um padrão internacional e mais usado em tecnologia de CD-ROMs. A quase totalidade de CD-ROMs no mercado atual é compatível com esse padrão. Tecnicamente, uma grande diferença dos discos rígidos para os CD-ROMs é que estes não possuem cilindros concêntricos, mas sim uma única espiral contínua que contém bits em uma sequência linear. A partir dessa definição, é correto afirmar que: Interatividade a) Mesmo estruturado em uma espiral contínua, é possível buscar o CD-ROM transversalmente às espirais. b) Mesmo estruturado em uma espiral contínua, é possível buscar o CD-ROM ortogonalmente às espirais. c) Mesmo estruturado em uma espiral contínua, é possível buscar o CD-ROM perpendicularmente às espirais. d) Mesmo estruturado em uma espiral contínua, é possível buscar o CD-ROM paralelamente às espirais. e) Mesmo estruturado em uma espiral contínua, não é possível buscar o CD-ROM. Interatividade O sistema de arquivos ISO 9660 é um padrão internacional e mais usado em tecnologia de CD-ROMs. A quase totalidade de CD-ROMs no mercado atual é compatível com esse padrão. Tecnicamente, uma grande diferença dos discos rígidos para os CD-ROMs é que estes não possuem cilindros concêntricos, mas sim uma única espiral contínua que contém bits em uma sequência linear. A partir dessa definição, é correto afirmar que: a) Mesmo estruturado em uma espiral contínua, é possível buscar o CD-ROM transversalmente às espirais. Resposta Como foi descrito no primeiro capítulo desta série, o gerenciamento de entrada e saída tem como princípio básico a abstração, tornando a interação do programador com a máquina algo muito mais fácil e permitindo que os programas e os hardwares evoluam de forma independente, porém estruturada. O gerenciamento de entrada e saída na visão de dentro do sistema operacional é algo complexo e que exige dos desenvolvedores de sistemas operacionais boa parte do tempo e dos esforços para obter um sistema estável e confiável. E não poderia ser diferente, pois toda a lógica e complexidade de controlar os diversos dispositivos demandam muita ação e dinamismo. Estudaremos, a partir desse momento, os fundamentos do hardware de entrada e saída (E/S) e o software de E/S. Com esses conceitos poderemos tratar de dispositivos, como discos, relógios, teclados e vídeos. Introdução a gerenciamento de entrada e saída Os dispositivos de entrada e saída típicos e os que estaremos dando ênfase são divididos em duas categorias: Dispositivos de blocos: entre outras características, armazenam informações em blocos de tamanho fixo e endereço próprio. Todas as transferências estão em unidades consecutivas de um ou mais blocos. Para essa categoria, cada bloco pode ser lido ou escrito independentemente de todos os outros. Fonte: Livro-texto. Dispositivos de entrada e saída Dispositivos de caractere: nesse caso há o envio e recebimentode caracteres. Diferentemente da categoria anterior, os dispositivos de caractere não são endereçáveis e não possuem funcionalidades de posicionamento. Fonte: Livro-texto. Dispositivos de entrada e saída As unidades de entrada e saída típicas são constituídas por dois componentes: Componente mecânico: é o dispositivo mais aparente para o usuário final, ou seja, impressora, teclado, mouse e outros. Componente eletrônico: conhecido como controlador de dispositivo ou adaptador. Esses adaptadores são inseridos em um conector de expansão localizado na placa-mãe do computador. Os componentes mecânicos e eletrônicos são mostrados em destaque na próxima figura. Controladores de dispositivos (driver) CPU MMU Controlador de Vídeo Controlador de USB Controlador de teclado Controlador de disco Componente Eletrônico Barramento Componente Mecânico Controladores de dispositivos (driver) Fonte: Livro-texto. Existem alguns pontos importantes para alinharmos quando estamos tratando de software de entrada e saída, os quais estão destacados a seguir: O software de entrada e saída deve estar suportado pelo conceito de independência do hardware. Isso parte do pressuposto que deveria ser possível que os programas pudessem acessar os dispositivos de E/S sem a necessidade específica de conhecer o dispositivo. Então, um programa que tem no seu conjunto de funcionalidades a possibilidade de ler um arquivo de entrada deveria, de forma transparente e sem ter que mudar o programa, poder ler tanto um disco rígido, CD e DVD, quanto um USB. Um outro ponto é que os programas de E/S deveriam estar alheios ao tratamento de erros, ficando a cargo dos níveis mais próximos ao hardware esse tratamento, ou seja, o controlador deveria resolver o problema e, se não conseguisse, então o driver do dispositivo deveria tratar. Software de E/S Ainda primordial é o tipo de transferência síncrona ou assíncrona. Na transferência síncrona o modo é de bloqueio e na assíncrona é orientada a interrupção. A utilização de buffers para armazenamento temporário envolve frequentes e elevadas operações de cópia, gerando um impacto considerável no desempenho da entrada e saída. O último ponto que devemos nos atentar com a mesma importância dos apresentados anteriormente é o de dispositivos dedicados versus compartilhados. Pode parecer contraditório, porém, nos dias atuais os dispositivos não compartilhados (dedicados) podem apresentar grandes problemas, bem como impasses. Se imaginarmos dois processos necessitando acessar a mesma fita magnética, mas com dados em endereços distintos, certamente um dos processos ficará esperando por um tempo muito grande. Software de E/S Conforme ilustrado na Figura 55, tipicamente, os softwares de E/S possuem quatro camadas e estão logo acima do hardware. Cada camada do software de entrada e saída tem função específica e interface com as camadas vizinhas. Camadas de software de E/S Software de E/S no nível do usuário Software do sistema operacional independente do dispositivo Drives do dispositivo Tratadores de interrupção Hardware Figura 55 – Camadas do software de E/S Fonte: Livro-texto. Como cada sistema operacional possui características próprias do software de entrada e saída, é uma generalidade para estudos acadêmicos, sem entrar nos detalhes específicos de cada plataforma física e lógica. Camadas de software de E/S Para todos os tipos de plataformas de computadores, necessitamos de algum tipo de dispositivo para informar entradas e receber resultados, constituindo o que chamamos genericamente de dispositivos de Entrada e Saída (E/S). Com base no sentido do fluxo de dados entre o computador e o dispositivo, denominamos esses dispositivos como periféricos de entrada, periféricos de saída, ou ainda, periféricos de entrada e saída. Um periférico é qualquer dispositivo conectado a um computador, possibilitando sua interação com o mundo externo. Um componente de hardware denominado interface permite que os periféricos sejam conectados ao computador. Portanto, os periféricos não estão conectados diretamente aos barramentos do computador. Dessa forma, as interfaces constituem um elemento primordial para que a transferência de dados entre periférico e processador, ou entre periférico e memória, ocorra. Hardware de E/S Outro componente de hardware denominado controlador integra as interfaces. Um controlador corresponde a um processador/chip projetado para realizar uma função específica, como controlar um disco rígido. Os hardwares de E/S têm como principais componentes os chips, as ligações elétricas e os componentes físicos. Os dispositivos de E/S estão divididos em três classes: Dispositivo de bloco: armazena informação em blocos de tamanho fixo, com endereço (exemplo: disco). Dispositivo de caractere: envia ou recebe fluxo de caracteres sem considerar qualquer estrutura de blocos (exemplo: impressoras, interface de rede, mouse). Outros dispositivos: relógio. Hardware de E/S Os temporizadores (timers – relógios) são extremamente necessários por algumas razões, porém, em sistemas operacionais, o mais relevante é: Manter o funcionamento de segundos, minutos, horas, data e ano, mesmo que o computador esteja desligado. Com isso, quando o equipamento estiver ligado e em funcionamento, é o relógio que irá fornecer o tempo real e atual para o ambiente. Portanto, o sistema pode calcular quanto tempo um processo já está na CPU e, de ciclos em ciclos, quanto irá alternar entre os demais processos. Relógio Apesar do temporizador não ser um dispositivo de bloco nem um dispositivo de caractere, o software desse componente pode tomar a forma de um driver de dispositivo. Hardware do relógio – visão geral. Os computadores típicos e atuais utilizam um relógio interno que não é parecido com os nossos relógios de pulso ou de mesa. Os relógios dos computadores são formados por três componentes: Oscilador de cristal. Controlador. Registrador de apoio. Relógio Devido ao processo extremamente preciso da seleção, corte e montagem sob pressão de um fragmento de cristal de quartzo, é possível obter um sinal cíclico de alta precisão medido em centenas de megahertz. Somando a capacidade da eletrônica, podem ser obtidas frequências de 1.000 MHz ou superiores. O sinal gerado pelo circuito eletrônico descrito anteriormente servirá como referência de sincronização para os vários elementos do computador que necessitem desse tipo de interação. O sinal gerado alimenta um controlador que irá realizar uma contagem regressiva até zero. Quando o controlador chega à contagem igual a zero, este, por sua vez, irá gerar uma interrupção na CPU. A bateria que vem juntamente com a placa-mãe é necessária para manter o relógio funcionando até quando o computador está desligado ou mesmo desconectado da tomada. Relógio Se o relógio não estiver presente no sistema, então será solicitado ao usuário informar a data e a hora no momento do processo de inicialização da máquina. Para sistemas em rede, existe outra forma, que é o uso de um computador remoto de sincronismo de data e hora. Com isso, todos os equipamentos na rede estarão no mesmo tempo ou, em outras palavras, estarão sincronizados. Relógio Figura 71 – Bateria instalada na placa-mãe Fonte: Livro-texto. O gerenciamento de entrada e saída tem como princípio básico a abstração, tornando a interação do programador com a máquina algo muito mais fácil e permitindo que os programas e os hardwares evoluam de forma independente, porém estruturada. Os dispositivos de entrada e saída típicos são classificados em: a) Dispositivos voláteis e dispositivos não voláteis. b) Dispositivos locais e dispositivos de armazenamento. c) Dispositivos mecânicos e dispositivos eletrônicos. d) Dispositivosdedicados e dispositivos compartilhados. e) Dispositivos de blocos e dispositivos de caractere. Interatividade O gerenciamento de entrada e saída tem como princípio básico a abstração, tornando a interação do programador com a máquina algo muito mais fácil e permitindo que os programas e os hardwares evoluam de forma independente, porém estruturada. Os dispositivos de entrada e saída típicos são classificados em: a) Dispositivos voláteis e dispositivos não voláteis. b) Dispositivos locais e dispositivos de armazenamento. c) Dispositivos mecânicos e dispositivos eletrônicos. d) Dispositivos dedicados e dispositivos compartilhados. e) Dispositivos de blocos e dispositivos de caractere. Resposta Nos computadores pessoais, os dispositivos, como teclado, mouse e monitor são praticamente indispensáveis. Mesmo os equipamentos portáteis, quando não munidos de mouse, possuem a opção do touch screen ou algum outro método que faz a função similar à do mouse. Para os servidores de rede, nem sempre são disponibilizados teclados, mouse e monitor. Isso acontece até por uma questão de economia de espaço ou até mesmo por segurança. Em muitas empresas de outsourcing o data center é praticamente uma sala apagada, ou seja, somente máquinas instaladas nos racks. Muitas vezes, em outro prédio, que pode estar a quilômetros de distância, fica a equipe técnica que suporta ou executa as atividades nos servidores. Teclado, mouse e monitor – visão geral Normalmente, quando acontece um problema mais específico, o operador do data center, que fica no próprio local onde estão os servidores, vai até o equipamento danificado com um console ou então faz uso do teclado, mouse e monitor. Em alguns casos é instalado, juntamente com os servidores, um conjunto com teclado, mouse e monitor embutido, que pode ser retraído e guardado de forma a não ocupar um espaço considerável. Esse dispositivo possui cabos e entradas para atender vários servidores, necessitando apenas selecionar por chave qual servidor quer obter controle e acesso. Teclado, mouse e monitor – visão geral Fonte: Livro-texto. Entre os dispositivos disponíveis para os usuários que servirão de entrada, temos o teclado, que possui um circuito impresso e um conjunto de teclas, sendo conectado ao computador por meio de uma porta serial ou USB. Toda vez que é pressionado ou liberado, uma interrupção é imediatamente gerada. Software do teclado Fonte: Livro-texto. O código de varredura é o número composto por 7 bits e que irá compor uma identificação distinta para cada tecla, sendo necessário para o driver controlador o oitavo bit para definir se a tecla encontra-se pressionada (igual a zero) ou solta (igual a um). Quando uma tecla é pressionada, o código da tecla é colocado no registrador de E/S. O driver é capaz de determinar se a tecla é minúscula, maiúscula, precedida de CRTL, ALT ou CTRL-ALT. Software do teclado Fonte: Livro-texto. Os modelos de mouse mais antigos possuem internamente dois dispositivos mecânicos com pequenos orifícios. Conforme a Figura 75, é fixado em um dos lados de cada roda um emissor de luz e do outro lado, o receptor. Conforme movimentação do mouse, a esfera de borracha irá, por consequência, girar as rodas perfuradas e, com base nos movimentos e passagem de luz por cada orifício, serão determinadas as coordenadas para os eixos “X” e “Y”. Software do mouse Fonte: Livro-texto. Os mouses ópticos modernos possuem um processador de imagens que, continuamente, tira fotos de baixa resolução da superfície e as compara em busca de alteração. Quando é detectada a movimentação do mouse, com o botão sendo pressionado ou liberado, uma informação é enviada para o computador. As informações são compostas por três itens: 1. Deslocamento do eixo “X”. 2. Deslocamento do eixo “Y”. 3. Informação dos botões. Teclado, mouse e monitor – visão geral O sistema de arquivos é um exemplo claro de abstração no mundo da computação. Pela visão do usuário, o sistema de arquivos é um conjunto de arquivos de sistema, documentos e figuras, todos dispostos em pastas de acordo com a necessidade do sistema e do usuário. Os usuários leigos no assunto não imaginam que os sistemas de arquivos possuem características intrínsecas de acordo com suas necessidades e plataformas. Há até usuários que tentam ler um arquivo que não é compatível entre sistemas de arquivos e mesmo assim dizem que existem problemas na máquina ou até mesmo que o arquivo está corrompido. Os arquivos possuem características que permitem que sejam lidos e escritos (alterados); os diretórios podem ser criados e excluídos e também podem armazenar outros subdiretórios e arquivos “dentro deles”. Resumo Arquivos contíguos, lista encadeada, tabelas de alocação de arquivos e i-nodes são possíveis formas de descobrir como o sistema operacional aloca a memória e monitorar qual bloco vai para qual arquivo. As estruturas de diretórios podem ser diferentes entre os sistemas. Os atributos podem ficar nos diretórios ou em outro lugar, como no i-node. O espaço em disco pode ser gerenciado por listas de espaços livres ou mapas de bits. Os sistemas mais modernos possuem mecanismos para melhorar a confiabilidade. Isso só é possível com técnicas de cópia incrementais e de programa que possa reparar sistemas de arquivos danificados. Técnicas como a inclusão de cache de bloco, a leitura antecipada e a disposição de blocos relacionados próximos uns dos outros melhoram a performance do sistema de arquivos. Resumo Diversos sistemas de arquivos foram comentados ao longo do material, porém, são somente uma pequena parte das opções existentes no mercado. Entretanto, são os sistemas de arquivos que estão na quase totalidade dos computadores no mundo. O sistema de entrada e saída (E/S) pode ser implantado de três maneiras: Resumo 1. E/S programada: a CPU escreve ou lê cada palavra ou byte, então espera em um laço estreito até que seja obtido ou haja possibilidade de enviar o próximo dado. 2. E/S por interrupção: a CPU escreve ou lê cada palavra ou byte, então segue para outra tarefa até que ocorra uma interrupção informando a conclusão da E/S. 3. E/S por DMA: um chip separado da CPU gerencia a transferência de um bloco de dados. Somente quando o bloco for totalmente transferido, então haverá uma interrupção. Resumo Os quatro níveis de uma estrutura de E/S são: 1. Rotinas dos serviços de interrupção. 2. Drivers dos dispositivos. 3. Software de E/S independente de dispositivo. 4. Software de E/S do espaço do usuário. Existem vários tipo de mídias, incluindo as magnéticas, ópticas e as tecnologias de RAID. Estudamos os relógios com o objetivo do entendimento a respeito do controle do tempo real, da definição exata do tempo de execução dos processos, do tratamento de temporizadores e para fins de contabilidade. Resumo Os terminais são estruturados com base em caracteres pontos, como as questões referentes aos caracteres especiais. Baseado na necessidade de controle que cada programa pode exigir são possíveis duas formas de entrada: 1. Entrada em modo natural. 2. Entrada em modo preparado. Resumo Atualmente, quase que a totalidade dos computadores usam GUIs como saída. Os programas para as interfaces gráficas do usuário são baseados em eventos que são enviados para serem processados praticamente de imediato. Em muitos sistemas em que é necessário pouco ou praticamente nada de “inteligência e capacidade de processamento” nas pontas, os equipamentos denominados “clientes magros” possuem vantagens quando comparados com os PCs tradicionais. Entre outras, o preço por unidade e a simplicidade dos dispositivos. Para os equipamentos portáteis que estão a cada dia conquistando mais o mercado de computadores, a bateria ainda é um ponto crucial. Resumo Os programas podemcontribuir para otimizar tarefas de tal forma que deem preferência à longevidade da carga da bateria, porém, sacrificando algo. Esse mecanismo permite que os usuários que estejam em um local desprovido de fonte de energia externa para recarga da bateria ou sem bateria extra, tenham pelo menos mais alguns minutos de carga para continuar sua atividade. Resumo Entre os dispositivos disponíveis para os usuários, que servirão de entrada, temos o teclado que possui um circuito impresso e um conjunto de teclas sendo conectado ao computador por meio de uma porta serial ou USB. Toda vez que é pressionado ou liberado, uma interrupção é imediatamente gerada. O código de varredura compõe uma identificação distinta para cada tecla. Por quantos bits ele é composto? a) Composto por 7 bits. b) Composto por 14 bits. c) Composto por 21 bits. d) Composto por 28 bits. e) Composto por 35 bits. Interatividade Entre os dispositivos disponíveis para os usuários, que servirão de entrada, temos o teclado que possui um circuito impresso e um conjunto de teclas sendo conectado ao computador por meio de uma porta serial ou USB. Toda vez que é pressionado ou liberado, uma interrupção é imediatamente gerada. O código de varredura compõe uma identificação distinta para cada tecla. Por quantos bits ele é composto? a) Composto por 7 bits. b) Composto por 14 bits. c) Composto por 21 bits. d) Composto por 28 bits. e) Composto por 35 bits. Resposta ATÉ A PRÓXIMA!
Compartilhar