1.1- Gerenciamento de Dispositivos - Sistemas Operacionais: UNIX: HP-UX, AIX, SCO, FreeBSD

1.1 => Assim como no linux o gerenciamento de dispositivos se da através do kernel. Kernel - o núcleo do sistema operacional, a parte que relaciona-se diretamente com o hardware, e que executa num espaço de memória privilegiado. Agenda processos, gerencia a memória, controla o acesso a arquivos e a dispositivos de hardware (estes, por meio dos controladores de disposito - drivers - e interrupções). O acesso ao kernel é feito por chamadas de sistema, que são funções fornecidas pelo kernel; essas funções são disponibilizadas para as aplicações por bibliotecas de sistema C (libc).

A família Unix/Linux integra os dispositivos no sistema de arquivos chamando-os de arquivos especiais. Cada dispositivo de E/S é associado a um nome de caminho, geralmente no diretório /dev. Por exemplo um disco rígido pode ser /dev/hd1, uma impressora pode ser /dev/ip e a rede pode ser /dev/net.
A grande vantagem neste sistema é que as regras de proteção aplicadas para os arquivos comuns se aplicam nos arquivos especiais.

Eles são divididos em duas categorias:
1º - Arquivo especial de bloco: É composto por uma seqüência de blocos numerados. A grande vantagem é que cada bloco pode ser acessado e endereçado de forma individual ( acesso randômico ). São utilizados para os discos.
2º - Arquivo especial de caracter: Usados em dispositivos cuja entrada e saída sejam através de um trem de caracteres. Eles não suportam o acesso randômico e são utilizados em impressoras, terminais, enfim todos dispositivos que recebem ou devolvem dados aos usuários.
O número do dispositivo principal é usado para indexar a tabela bdevsw caso o dispositivo seja do tipo bloco ou a tabela cdevsw caso seja do tipo caracteres. As colunas das tabelas contém informações sobre as funções que os drives devem suportar.

Os "arquivos especiais" podem ser acessados da mesma maneira que os demais arquivos. Não são necessários quaisquer comandos especiais nem chamadas ao sistema - as chamadas read e write são suficientes. Um exemplo de acesso é que poderiamos usar o comando cp file/dev/ip para realizar a impressão do documento file. O comando citado copia o arquivo para a impressora fazendo com que ele seja impresso.

Associado a cada "arquivo especial" existe um driver do dispositivo que trata o dispositivo correspondente. Cada driver tem um número do dispositivo principal, que serve para identificá-lo. Se um driver suportar vários dispositivos - digamos, dois discos de mesmo tipo, cada um também terá um número do dispositivo secundário que o identificará.
A inclusão de um novo dispositivo no Unix implica na inclusão de uma nova entrada na tabela correspondente assim como o fornecimento dos procedimentos correspondentes para tratar as várias operações sobre o disposivo.

Durante muito tempo os drivers dos dispositivos no Unix eram estaticamente ligados ao núcleo e com isso ficavam todos na memória sempre que o sistema era ligado. Basicamente, cada centro computacional construía um núcleo contendo os drives dos dispositivos que ele tinha. Com a chegada do linux tudo mudou, o número de dispositivos aumentou e por isso surgiu o conceito de módulos carregáveis, para evitar que o usuário tivesse que atualizar manualmente as tabelas de drivers, religar o núcleo e preparar o sistema para reiniciar corretamente.
O módulos carregaveis são blocos de códigos que podem ser carregados no núcleo enquanto o sistema está em execução. Normalmente os blocos são drivers de dispositivos, mas podem ser sistemas de arquivos completos, protocolos de redes, ferramentas de monitoramento de desempenho ou qualquer outro módulo desejável.


Fonte: Sistemas operacionais modernos / Andrew S. Tanenbaum ; trad. Nery Machado Filho

0 comentários: