Buscar

Trabalho TDAA e TAAP

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

TABELA DESCRITORA DE ARQUIVOS ABERTOS E POR PROCESSO
O sistema operacional mantém na memória principal uma tabela contendo os registros descritores dos arquivos abertos (TDAA – Tabela de Descritores de Arquivos Abertos). Quando uma operação é solicitada, apenas esta tabela é pesquisada (em memória) e não todo o diretório (em disco). 
	Alguns sistemas abrem automaticamente o arquivo quando ele é utilizado pela primeira vez, enquanto outros exigem um pedido de abertura explícito do usuário (isto é feito através da operação open). Neste último caso, o diretório é pesquisado e a entrada correspondente ao arquivo é copiada para a tabela TDAA. É devolvido para o programa um ponteiro para a entrada nessa tabela. Nas próximas operações este ponteiro será utilizado para identificar o arquivo. O arquivo deve ser “fechado” após a utilização (operação close), o que permite liberar o espaço que seu descritor ocupava na TDAA.
A TDAA mantém informações sobre os arquivos abertos por todos os processos no sistema. Normalmente, é permitido que vários processos abram um mesmo arquivo simultaneamente. Para cada arquivo há apenas uma entrada na TDAA, a qual armazena todas as informações do arquivo em disco, mais uma informação que indica o número de processos utilizando o arquivo no momento. Quando um processo realiza a chamada de sistema close, o número de processos utilizando o arquivo em questão é decrementado. Quando esse número chega a zero, significa que nenhum processo está usando o arquivo. Nesse caso, o descritor do arquivo é atualizado em disco e a entrada da TDAA liberada.
As entradas da TDAA armazenam informações que não variam em função do processo que está acessando o arquivo Entretanto, existem informações correspondentes ao processo que acessa o arquivo. Um exemplo de informação que depende do processo é a posição corrente no arquivo. Em um dado instante, cada processo pode acessar uma parte diferente do arquivo. Logo, é necessário armazenar uma posição corrente no arquivo para cada processo. Da mesma forma, alguns processos podem abrir o arquivo para apenas leitura, enquanto outros abrem para leitura e escrita. Essa informação deve ser mantida pelo sistema de arquivos para que ele possa rejeitar chamadas de escrita quando o processo abriu o arquivo para apenas leitura.
A solução típica é criar, para cada processo, uma Tabela de Arquivos Abertos por Processo (TAAP). Cada processo possui a sua TAAP. Cada entrada ocupada na TAAP corresponde a um arquivo aberto pelo processo correspondente. No mínimo, a TAAP contém em cada entrada as seguintes informações:
Posição corrente no arquivo;
Tipo de acesso (apenas leitura ou leitura e escrita);
Apontador para a entrada correspondente na TDAA.
Tanto a TDAA como as TAAP devem ficar na memória do sistema operacional, fora do acesso dos processos de usuário. Caso contrário, um usuário mal intencionado poderia burlar o mecanismo de controle de acesso simplesmente alterando sua TAAP.
A função open retorna para o processo o número da entrada na TAAP associada com o arquivo aberto. Dessa forma, nas chamadas de sistema após o open, o processo indica o arquivo através do número de sua correspondente entrada na TAAP. A partir da TAAP, o sistema de arquivos pode imediatamente localizar o descritor do arquivo na TDAA.

Outros materiais