OS PRINCÍPIOS BÁSICOS DE SOFTWARE DE ENTRADA E SAÍDA
Por: Rodrigo.Claudino • 20/12/2018 • 4.322 Palavras (18 Páginas) • 374 Visualizações
...
E/S INDEPENDENTE DO DISPOSITIVO
Podemos dizer que a camada de drivers é a camada que “dependente dos dispositivos”, já que ela necessita das funções que estão ligadas diretamente com o hardware dos dispositivos. A camada acima utiliza a interface virtual ou abstrata sendo padronizada e mais amigável, fornecida pelos drivers, dessa forma, a consideramos “independente do dispositivo”. A camada independente de dispositivo inclui funções genéricas (no sentido de valer para qualquer dispositivo) e serviços gerais de E/S importantes para o funcionamento do sistema como um todo. As funções genéricas são incluídas através de estruturas que representam “classes” de dispositivos e operações associadas. Internamente, essas estruturas possuem ponteiros para descritores que especializam as operações. Por exemplo, pode-se ter uma função genérica read cujo primeiro argumento indica o dispositivo a ser usado. Essa operação genérica vai ser mapeada para uma seqüência de operações compatíveis com o dispositivo em questão, pois ler de um teclado é diferente de ler de um disco.
Alguns serviços sob-responsabilidade desta camada são:
Escalonamento de E/S: Usado em dispositivos compartilhados por vários processos (por exemplo, discos magnéticos) para melhorar o desempenho dos mesmos.
Buferização: Um exemplo típico de buferização ocorre em protocolos de comunicação; o usuário pode desejar enviar, 64 Kbytes, mas a interface de rede pode enviar apenas seqüências máximas de 4 Kbytes. Então é necessário armazenar a requisição do usuário e enviá-la em blocos de 4 kbytes.
Cache de dados: Consiste em armazenar na memória os blocos de dados freqüentemente acessados.
Alocação de dispositivo: Muitos dispositivos admitem, no máximo, um usuário por vez. Esse controle é normalmente efetuado através da técnica de spooling, que consiste em sequenciar os pedidos de acesso e atendê-los um a um. Os pedidos são registrados em uma fila a qual é acessada por um processo do SO, o qual atende as requisições de E/S.
Direitos de acesso: Nem todos os usuários podem acessar os dispositivos da mesma forma e cabe ao SO garantir essa proteção. O sistema UNIX emprega os bits de permissão de acesso a arquivos (rwx - leitura, escrita e execução) para selecionar o tipo de operação que um determinado usuário, ou grupo de usuários, pode efetuar sobre um dispositivo particular.
Tratamento de erros: O software de E/S deve ser capaz de tratar erros, informando à camada superior o sucesso ou o fracasso de uma operação. Erros transientes – como impossibilidade de transmissão por overflow em buffers pode implicar apenas uma nova tentativa e não no término do processo requisitante.
SOFTWARE ENTRADA E SAÍDA A NÍVEL DE USUÁRIO
Os programas de entrada e saída no nível de usuário possuem em seu código fonte instruções que fazem chamadas às rotinas de bibliotecas responsáveis pela entrada e saída de dados e que são executados pelo kernel ou núcleo do sistema operacional. Estas bibliotecas que fazem parte do núcleo do sistema operacional não estão no nível do usuário.
É Por esse motivo que as chamadas destas bibliotecas são feitas pelas bibliotecas de rotina
de uma determinada linguagem de programação, adequando assim a chamada ao nível do
usuário. As bibliotecas de rotinas das linguagens de programação do nível do usuário são
responsáveis por fazerem chamadas às bibliotecas de rotinas do kernel, que finalmente
executam todo o procedimento de entrada e saída.
As instruções dispostas no código fonte do programa do usuário apenas realizam a tarefa de
colocar seus parâmetros nos devidos lugares, ou seja, no código fonte do programa no nível de usuário pode existir uma linha de instrução com a seguinte ordem: “contador = write (fd, buffer,nbytes);“. Quando chegar a hora da execução desta linha de código no programa do usuário,essa rotina apenas organiza os parâmetros para que a rotina de biblioteca “write” execute a ação.
Todas as rotinas de bibliotecas que estão inseridas no kernel e que são chamadas no código
fonte do programa do nível de usuário farão parte do programa binário e estarão presentes no tempo de execução.
Outro método utilizado para entrada e saída no nível do usuário é o sistema de spooling. Nesse sistema são utilizados o daemon e o diretório de spool. Nos sistemas de multiprogramação, sistemas em que o Sistema Operacional gerencia o processador para que ele de forma alternada execute todos os processos, os dispositivos dedicados de entrada e saída utilizam o spool para realizar as tarefas de modo eficiente.
No caso específico da impressora, os processos geram um arquivo a ser impresso no diretório de spool, e aguarda o daemon realizar a impressão. O único com permissões para realizar este tipo de impressão é o daemon. Desta maneira o arquivo especial de caractere é protegido e o problema de haver alguém o mantendo aberto desnecessariamente é eliminado.
O sistema de spool não é utilizado somente para impressoras. Outros sistemas também
utilizam o método de diretórios de spool e daemon para o procedimento de entrada e saída no nível do usuário.
DISPOSITIVOS PERIFÉRICOS SIMPLES
DISCO RÍGIDO
O Hard Disk, ou simplesmente Disco Rígido é um sistema de armazenamento de alta capacidade, que por não ser volátil, é destinado ao armazenamento de arquivos e programas. Apesar de não parecer à primeira vista, o HD é um dos componentes que compõe um PC, que envolve mais tecnologia. Todos os programas e arquivos são armazenados no disco rígido, também chamado de HD (Hard Disk) ou Winchester. A capacidade do disco rígido determina a quantidade de arquivos e programas que será possível armazenar. O disco rígido também exerce uma grande influência sobre o desempenho global do equipamento, já que determina o tempo de carregamento dos programas e de abertura e salvamento de arquivos. O disco rígido é acomodado no gabinete e ligado à placa mãe através de
...