Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ураков А.Р. Технологические особенности проектирования вычислительной техники.doc
Скачиваний:
34
Добавлен:
02.05.2014
Размер:
839.17 Кб
Скачать

6.3. Операции с ухд

УХД предполагают две обязательные операции: чтение и запись. Большинство УХД всегда поддерживают и ту и другую операции. Как можно видеть из предыдущего раздела, при простой адресации при записи данных соответствующим образом изменяется таблица содержимого. При чтении, соответственно, наоборот, требуется выполнить чтение таблицы содержимого и поиск соответствующих ключей.

Существуют УХД, информация в которые может быть записана только один раз. В русской терминологии они называются либо однократно записываемыми, либо программируемыми. Чаще применяется английский термин WORM(writeoncereadmany). Некоторые УХД записываются только при их изготовлении и недоступны для записи пользователем. Они обозначаются какПЗУ(постоянные запоминающие устройства) илиROM(readonlymemory). Некоторые УХД требуют перед записью провести дополнительную операциюстирания. В устройствах, содержащих кроме полезной служебную информацию, часть служебной информации должна быть записана перед первым использованием устройства. Такая операция называетсяформатирование.

6.4. Классификация ухд по принципам записи и выборки

Последовательная и произвольная запись

УХД могут строиться по двум основным схемам записи – произвольной и последовательной. При произвольной записи УХД получает порцию данных и адрес, по которому нужно произвести запись, запись в этом случае возможна по любому адресу в УХД. При последовательной записи УХД в нормальном режиме работы делает каждую новую запись сразу после предыдущей. Адрес записи в этом случае УХД сообщать бессмысленно, так как он может иметь только одно значение. Это значение либо должно быть заранее известно устройству, работающему с УХД (обычно это место определяется расчетным путем), либо УХД должно возвращать адрес того места, куда произведена запись.

Произвольная запись более гибка и универсальна и всегда применяется в УХД типа память, однако в некоторых накопителях требует такого длительного времени на поиск нужного участка, что делает ее бессмысленной. Кроме того, такой способ позволяет уничтожить информацию, которая еще необходима, записав на ее место что-то иное. Что бы такого не произошло, запись производят только на свободные участки. По мере работы УХД некоторая информация становится ненужной и вместо нее может быть записано что-то иное. Участки, которые могут быть перезаписаны, в таблице содержимого объявляются свободными. Перед каждой записью выполняется поиск свободных участков. Естественно, ненужная информация располагается в УХД случайным образом, размер ее также случаен. Это значит, что данные на диск будут разделены на порции (по размеру освободившихся участков), а эти порции могут быть хаотически разбросаны по всему объему УХД. Такое явление называетсяфрагментация. Фрагментация не является недостатком для памяти, так время выборки из памяти не зависит от адреса и является недостатком для накопителей, так как в общем случае увеличивает время записи/чтения фрагментированных данных.

Произвольная запись позволяет легко вносить изменения в хранимые данные. Для этого просто переписывается элемент адресации, который содержит редактируемый участок. Удаление информации заключается в том, что элементы адресации, содержащие эту информацию, объявляются свободными.

Последовательная запись неудобна, прежде всего, из-за сложностей с формированием таблицы содержимого, изменения в которой происходят при каждой записи, так как при каждой записи появляются новые адреса. Это значит, что таблица содержимого или: 1) должна храниться на другом УХД с произвольной записью, или: 2) записываться на носитель вместе с каждой записью, или: 3) заново формироваться чтением всех данных каждый раз после установки среды в накопитель. Первый способ неудобен при использовании сменных носителей. Изменение физической среды либо перенос ее в другое место требует поиска или переноса соответствующей таблицы содержимого. Эта операция весьма неудобна и с высокой вероятностью может быть источником ошибки при попытке использовать таблицу содержимого от другой сменной среды или не адекватную данным (от старых операций). Без этой операции можно обойтись, если использовать третий способ – формировать таблицу содержимого прочтением всей емкости накопителя, но это очень длительная процедура и на практике применяется крайне редко. Второй способ намного надежнее первого и намного быстрее третьего и применяется практически всегда. Недостаток его в потери емкости. Каждая операция записи уменьшает емкость среды на величину емкости таблицы содержимого. Чтобы уменьшить потери емкости, перед записью данные объединяют в определенные порции достаточно большого размера и запись производят такими порциями. Одна процедура записи в таком случае называется сессией.

Последовательная запись наиболее удобна, когда вся емкость накопителя записывается за один раз. В этом случае, при последовательной записи не требуется выполнять лишние операции: поиск свободного участка (все участки, предназначенные для записи, предполагаются свободными), запись для каждого элемента адресации нового адреса в таблице содержимого (адрес каждого элемента на единицу больше предыдущего и может быть вычислен предварительно). Последовательная запись также удобна, когда: происходит редкая запись большими порциями; когда записанную информацию не требуется удалять. Удаление информации при последовательной записи заключается в том, что информация об удаляемых блоках при формировании новой таблицы содержимого просто не включается в нее. Таким образом, удаление при последовательной записи не позволяет освободить емкость накопителя для повторного использования. Скорее, наоборот, одна операция удаления уменьшит полезную емкость накопителя на величину таблицы содержимого. Перезапись или редактирование при последовательной записи заключается в удалении старых блоков и записи новых с новым содержимым.

Как можно видеть, последовательная запись крайне неудобна при необходимости последующего редактирования или удаления записанных данных.

Последовательная запись имеет еще один недостаток, связанный с формированием адреса записанного блока и механическими особенностями большинства устройств. Схема, когда УХД сообщает адрес блока, куда была произведена запись, сложна и неудобна для технической реализации. Обычно применяется схема, когда адрес блока определяется расчетным путем. Особенность практически всех устройств с последовательной записью в том, что запись сопровождается перемещением среды носителя (часто используется взаимное перемещение среды носителя и головок). В таком случае каждый адрес косвенно определяется его местоположением на носителе. Если мы знаем плотность записи информации, записываемый объем, траекторию движения среды, скорость ее движения, положение среды перед началом записи, то мы можем перед записью расчетным путем определить адрес каждого элемента адресации. Однако это справедливо, только если по мере механического движения среды данные поступают с требуемой скоростью. Перерыв или задержка в поступлении информации для записи требует остановки, изменения скорости движения среды и, возможно, возврата к точке, где запись была прервана. Механические особенности практически всех устройств с последовательной записью таковы, что ни остановка, ни изменение скорости, ни возврат к конкретной точке либо невозможны, либо крайне сложно организовать технически. Это значит, что задержка или перерыв в поступлении в УХД данных, предназначенных для записи, приводят к ошибкам в адресах в таблице содержимого, а значит либо к порче данных, записанных за прерванную сессию, либо к невозможности использования всей информации, записанной на носителе. Это одна из причин, по которой устройства с последовательной записью выполняются только сменными. Замечание. Недавно было объявлено о выпуске накопителей на CD-ROM, которые в ходе последовательной записи позволяют прервать процесс записи, а потом снова начать запись с места, где она была прервана.

Последовательная и произвольная выборка

В схеме с произвольной выборкой можно считать только тот минимально адресуемый объем данных, который нам необходим и не более. Другими словами, при произвольной выборке обратившись с некоторым адресом к УХД, мы получаем те, и только те данные, которые соответствуют нашему адресу. В схеме с последовательной выборкой последовательно считываются все данные, относящиеся к какому-то, достаточно большому объему, при этом из всего объема считанных данных выбираются необходимые.

Несомненно, схема с произвольной выборкой гораздо удобнее и, в общем случае, позволяет достичь намного большей скорости работы с данными. Такая схема всегда применяется в УХД типа память. В английской литературе память в некоторых случаях называется RAMrandom access memory(память с произвольным доступом). В накопителях последовательная выборка используется только в том случае, когда невозможно использование произвольной выборки. Причина здесь следующая. При адресации в накопителях требуется перемещение головки чтения/записи к требуемому элементу хранения. Если такая операция может быть выполнена точно, то есть блок доступа может обеспечить положение головки чтения/записи именно в требуемом месте, такие накопители работают по схеме с произвольной выборкой. Такое точное позиционирование головки чтения/записи возможно далеко не всегда. В некоторых накопителях мы либо не можем заранее определить, куда перемещать головку (адрес, присвоенный ячейке, весьма приближенно соотносится с физическим местоположением ячейки на поверхности среды), либо физически не можем переместить ее точно в требуемое место (погрешность позиционирования головок очень высока). Обычно, впрочем, встречаются сразу две причины. Чтобы найти требуемую информацию, мы перемещаем головку, охватывая ту часть поверхности среды, на которой могут быть расположены наши данные до тех пор, пока их не получим.

В настоящее время, во многих накопителях перемещение головки происходит очень быстро, в то же время позиционировать головку с большой точностью не всегда удобно. Как оказывается, выгоднее всего прочитать некоторую «удобную» для механизма накопителя порцию во временную память, из которой потом выбирать требуемые данные. Такая схема считается произвольной (кроме редких случаев, когда по какой-либо причине время выборки становится высоким) и применяется в современных скоростных накопителях. У нее есть еще одно преимущество. «Лишние» считанные данные могут потребоваться при следующей операции чтения, тогда они будут получены без перемещения головки.