- •НИУ ВШЭ – Пермь
- •Многоуровневая система управления данными
- •Порядок работы приложения, реализующего доступ к данным
- •Требования к реализации функции управления данными
- •Понятие файловой системы
- •Понятие файла
- •Понятие файла и свойства файлов
- •Понятие файла и свойства файлов
- •Понятие файла и свойства файлов
- •Понятие файла и свойства файлов
- •Понятие файла и свойства файлов
- •Атрибуты файлов
- •Операции над файлами
- •Операции над файлами
- •Каталоги и системы каталогов
- •Каталоги и системы каталогов
- •Иерархическая система хранения данных
- •Иерархическая система хранения данных и полное имя файла
- •Подсистема ввода-вывода и управление внешними устройствами
- •Доступ к данным на ВЗУ
- •Организация ввода-вывода и управление внешними устройствами
- •Управление внешними устройствами: понятие драйвера
- •Организация файлов в ОС
- •Логическая организация файлов
- •Структуризация файлов: записи
- •Последовательная организация файлов
- •Последовательная организация файлов: запись в файл
- •Последовательная организация файлов: запись в файл
- •Последовательная организация файлов: запись в файл
- •Последовательная организация файлов: запись в файл
- •Последовательная организация файлов: чтение из файла
- •Последовательная организация файлов: чтение из файла
- •Последовательная организация файлов: чтение из файла
- •Последовательная организация файлов: чтение из файла
- •Последовательная организация файлов: чтение из файла
- •Последовательная организация файлов: прямой доступ к данным
- •Последовательная организация файлов: прямой доступ к данным
- •Последовательная организация файлов: прямой доступ к данным
- •Последовательная организация файлов: прямой доступ к данным
- •Последовательная организация файлов: прямой доступ к данным
- •Последовательная организация файлов: прямой доступ к данным
- •Буферизация ввода
- •Буферизация вывода
- •Индексированные файлы
- •Индексированные файлы: пример
- •Многоуровневые индексы
- •Сортировка файлов
- •Понятие отрезка файла
- •Отрезки файла: пример
- •Разделение файла
- •Разделение файла: схема алгоритма
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Слияние файлов
- •Слияние файлов – схема слияния отрезков
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Завершение сортировки (пример): разбиение
- •Завершение сортировки (пример): разбиение
- •Завершение сортировки (пример): разбиение
- •Завершение сортировки (пример): разбиение
- •Завершение сортировки (пример): разбиение
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Сортировка файлов: сбалансированное слияние
- •Сортировка файлов: сбалансированное слияние
- •Сортировка файлов: четырехленточная сортировка – пример
- •Сортировка файлов: четырехленточная сортировка – пример
- •Сортировка файлов: четырехленточная сортировка – пример
- •Сортировка файлов: четырехленточная сортировка – пример
- •Сортировка файлов: четырехленточная сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка
- •Сортировка файлов: Фибоначчиева сортировка
- •Сортировка файлов: Фибоначчиева сортировка
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
Организация ввода-вывода и управление внешними устройствами
Управление вводом/выводом и внешними устройствами (накопителями на магнитных дисках, принтерами, манипуляторами типа «мышь» и клавиатурой и т.п.) – функция ОС, обеспечивающая работу с данными на ВЗУ, выполнение операций ввода-вывода.
Данные, которые обрабатываются программой, должны быть помещены в оперативную память (ОЗУ), только тогда над ними можно выполнять операции в программе.
ОС организует по запросам программ обмен информацией между ОЗУ и внешними (периферийными) устройствами (т.е. обеспечивает ввод/вывод), следит за состоянием устройств, организует бесконфликтную работу с ВУ всех выполняющихся программ, устанавливая порядок доступа к ним.
21
Управление внешними устройствами: понятие драйвера
Для управления внешними устройствами на компьютерах устанавливаются специальные программы – драйверы.
Эти программы могут как входить в состав ОС, так и поставляться разработчиками оборудования вместе с аппаратными средствами, соответствующими устройствами.
Драйверы образуют «прослойку» между ядром ОС и внешними устройствами, скрывая их особенности от работающих с этими устройствами программ.
При изменении конфигурации ВС (замене устройств или подключении новых устройств) нет необходимости в переустановке всей системы, всего программного обеспечения – достаточно установить новый драйвер внешнего устройства.
22
Организация файлов в ОС
Простейший способ организации файлов для ОС – файл представляет собой неструктурированную последовательность байтов.
Представление файла как неструктурированной последовательности байтов обеспечивает максимальную простоту файловой системы и гибкость при выполнении
операций: файловая система может обеспечить считывание данных «побайтно» или блоками заданного размера, а разбивка файла на блоки байтов, размеры блоков и «смысл» содержащейся в них информации определяются конкретной программой, работающей с этими данными.
23
Логическая организация файлов
Логическая организация файлов – это организация данных, размещенных на внешних устройствах, с точки зрения прикладной программы, работающей с этими данными, выполняющей операции над ними.
В этом случае байтам «присваивается смысл» конкретными программами (прикладными), создающими файлы и обрабатывающими размещенную в них информацию. Именно эти приложения определяют структуру файла, группируя байты в записи в соответствии с их назначением.
Простейшая «запись» – символ, если файл содержит текст, состоящий из символов.
В файле можно хранить данные различных типов в их внутреннем – двоичном – представлении. Записями в бинарных
файлах (типизированных) могут быть отдельные числа (скалярные 24 значения) или записи, тип которых определен в программе.
Структуризация файлов: записи
Каждый файл, обрабатываемый программой, в простейшем случае представляет собой последовательность записей («массив»,
размер которого может изменяться: при добавлении записи – увеличивается, при удалении записи из файла – уменьшается). Элементом «массива» может быть
•символ,
•число (двоичное целое или действительное),
•запись (структура), включающая разнотипные данные.
|
Разбивка файлов на последовательность записей фиксированного |
|
размера (блоков, состоящих из последовательностей байтов, |
|
сгруппированных в зависимости от типа данных, размещаемых на |
|
внешнем устройстве, заданного в программе) – первый шаг к |
|
структуризации файлов. |
25 |
Такая модель представляет файл как совокупность записей, |
имеющих свою внутреннюю структуру. |
Последовательная организация файлов
При последовательной организации файл представляет собой «массив», в котором в каждый момент содержится определенное число записей (от 0 и более):
Для того чтобы прочитать запись Ri необходимо прочитать все предшествующие ей записи, т.е. запись Ri может быть прочитана только после записи Ri–1.
Файлы с такой организацией могут размещаться на любых внешних устройствах. Эта организация удобна, когда обрабатывается весь массив записей (например, всем начисляется зарплата, или печатается ведомость, в которую включаются все студенты).
26Если необходимо обработать только определенные записи, то этот
способ неудобен, т.к. в худшем случае для поиска нужной записи
Последовательная организация файлов: запись в файл
Файл
FibNumbers.Data
27
Program WriteFile;
type Element = record
ElementNumber: integer;
FibNumber: integer end;
var I, N: integer;
E: Element;
F: file of Element;
function Fib(m: Integer): integer; begin
if m = 0 then Fib := 0 else if m = 1 then Fib :=
else Fib := Fib(m-2) +
end; begin
write('Введите количество чисел::
readln(N);
Assign(F, 'FibNumbers.Data');
rewrite(F);
for I:=0 to N do begin
E.ElementNumber := I; E.FibNumber := Fib(I);
write(F, E) end;
close(F) end.
«Связываем» файловую переменную с файлом на внешнем устройстве
Последовательная организация файлов: запись в файл
|
Program WriteFile; |
|
type Element = record |
|
ElementNumber: integer; |
|
FibNumber: integer |
|
end; |
|
var I, N: integer; |
|
E: Element; |
|
F: file of |
|
function Fib(m: |
|
begin |
|
if m = 0 |
|
else if |
|
end; else |
|
begin |
|
write('Введите |
|
readln(N); |
|
Assign(F, |
|
rewrite(F); |
|
for I:=0 to |
|
begin |
|
E. |
|
E.FibNumber |
|
write(F, E) |
|
end; |
28 |
close(F) |
end. |
«Связываем» файловую переменную с файлом на внешнем устройстве
Открываем файл для записи – по каталогу ищется местоположение файла, если он существует, файл очищается; если файла нет, он создается и данные о нем вносятся в каталог
Последовательная организация файлов: запись в файл
|
Program WriteFile; |
|
type Element = record |
|
ElementNumber: integer; |
|
FibNumber: integer |
|
end; |
|
var I, N: integer; |
|
E: Element; |
|
F: file of |
|
function Fib(m: |
|
begin |
|
if m = 0 |
|
else if |
|
end; else |
|
begin |
|
write('Введите |
|
readln(N); |
|
Assign(F, |
|
rewrite(F); |
|
for I:=0 to N |
|
begin |
|
E.ElementNumber |
|
E.FibNumber |
|
write(F, E) |
|
end; |
29 |
close(F) |
end. |
«Связываем» файловую переменную с файлом на внешнем устройстве
Открываем файл для записи
Запись в файл: в файл вносится N+1 запись в цикле
Последовательная организация файлов: запись в файл
|
Program WriteFile; |
|
|
type Element = record |
|
|
ElementNumber: integer; |
|
|
FibNumber: integer |
|
|
end; |
|
|
var I, N: integer; |
«Связываем» файловую |
|
E: Element; |
|
|
F: file of |
переменную с файлом на |
|
function Fib(m: |
внешнем устройстве |
|
begin |
|
|
if m = 0 |
|
|
else if |
|
|
end; else |
|
|
begin |
|
|
write('Введите |
|
|
readln(N); |
Открываем файл для записи |
|
Assign(F, |
|
|
rewrite(F); |
|
|
for I:=0 to N |
Запись в файл |
|
begin |
|
|
E.ElementNumber |
|
|
E. |
Закрываем файл – обновляются в |
|
write(F, |
|
|
каталоге сведения о его размере, |
|
|
end; |
|
30 |
close(F) |
времени изменения и пр. |
end. |
|
|
