Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 6004.doc
Скачиваний:
21
Добавлен:
30.04.2022
Размер:
1.29 Mб
Скачать

4.2.Управление данными

Управление данными - важнейший компонент операционной системы, т.к. осуществляет связь вычислительной системы с "окружающей средой" - реализует запросы на ввод-вывод, исходящие как от программ пользователя, так и от программ ОС.

Функции управления данными:

- централизованное осуществление операций ввода-вывода;

- обеспечение хранения данных на устройствах ввода-вывода;

- обеспечение способов организации и идентификации данных;

- каталогизация данных для осуществления поиска по имени без указания местонахождения;

- автоматическое распределение памяти на магнитных дисках;

- автоматический поиск по имени;

- обеспечение независимости программ от характеристик данных и типов внешних устройств;

- обеспечение различных методов доступа.

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

- прием запроса на ввод-вывод;

- проверку корректности запроса;

- установку запроса в очередь к устройствам ввода-вывода (упорядочение запросов по адресам данных, FIFO или другими принципами);

- выборку запроса и запуск программ ввода-вывода;

- выдачу запроса на переключение процессора на очередную готовую программу;

- обработка прерываний ввода-вывода;

- повторный запуск операций ввода-вывода с целью корректировки ошибок;

- выдачу сигнала завершения операций ввода-вывода и кода завершения.

4.2.1.Организация данных

Возможны следующие способы организации данных:

- последовательный,

- прямой,

- индексно-последовательный,

- библиотечный.

Последовательная организация данных предполагает доступ к данным в порядке их следования. Направление доступа - от начала к концу или обратно - не имеет большого значения. Важно лишь то, что очередная порция данных может быть получена (или размещена) только после соседней.

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

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

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