Como um dispositivo sequencialmente acessível é acessado aleatoriamente?

0
  1. Se um dispositivo oferece apenas acesso sequencial e não acesso aleatório, pode driver de dispositivo ou um sistema de arquivos faz o dispositivo parecer aleatoriamente acessível aos usuários?

    Se sim, isso é feito fornecendo buffer / cache para o dispositivo?

  2. Por exemplo, aqui está o que ouvi, mas não tenho certeza se está correto:

    • A fita apenas para retroceder oferece apenas acesso sequencial

    • para tal dispositivo de fita, qualquer movimento para trás a partir da posição atual pode exigir o rebobinamento da fita para o início e, em seguida, avançando

    O que torna essa fita acessível aleatoriamente: alterando o próprio dispositivo no nível de dispositivo / hardware, um driver de dispositivo de a fita, ou alguma outra coisa?

    Tendo em vista que essa fita é acessada aleatoriamente, se eu open() com O_DIRECT , a fita torna-se acessível apenas sequencialmente e não aleatoriamente acessível?

por Tim 05.10.2018 / 15:38

1 resposta

1

Se o dispositivo puder alternar sem intervenção externa, então sim, você pode fazer com que um driver de dispositivo faça com que apareça como acesso aleatório. Você poderia fazer isso de algumas maneiras:

  1. Se o dispositivo for pequeno em relação à quantidade de memória principal disponível, você poderá espelhar o conteúdo do dispositivo na memória, onde o acesso aleatório é possível.
  2. Se o dispositivo for grande demais para ser armazenado na memória principal, você poderá paginá-lo - basicamente, faça (1), mas em segmentos do conteúdo subjacente. Qualquer leitura / gravação em uma página que não esteja atualmente na memória seria extremamente lenta, porque a página "antiga" precisaria ser liberada e a nova página precisaria ser lida na memória.

Quaisquer gravações eventualmente precisam ser liberadas de volta para a mídia subjacente. Isso provavelmente seria um processo extremamente lento e levantaria questões como "a mídia suporta atualizações parciais" (ou seja, o sistema operacional pode sobrescrever apenas os dados que foram atualizados ou precisa reescrever toda a mídia)?

Tudo o que disse, ser "factível" não é uma boa ideia. Você está confinado ao comportamento do hardware. Se não fornecer acesso aleatório verdadeiro, a falsificação será muito lenta.

    
por 05.10.2018 / 16:12