Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

os-2015-10-dist

.pdf
Скачиваний:
13
Добавлен:
23.05.2015
Размер:
2.88 Mб
Скачать

Семантика разделения файлов

Семантика однопроцессорного компьютера

Если за операцией записи следует операция чтения, то результат определяется последней операцией записи

Семантика сессий

Изменения открытого файла видит только тот процесс, который эти изменения проводит, и лишь после закрытия файла изменения становятся доступными всем остальным процессам

Семантика транзакций

Монополизация доступа, а после возврата — обновление

41

Реализация распределенных файловых систем

Использование файлов. Для разработчика главное — понять, как система будет использовать файлы. Ранее были некоторые данные статистики

Структура системы. Для ее определения должны быть получены ответы на три вопроса:

Есть ли разница между клиентом и сервером? Здесь есть два варианта: либо любая машина может предоставить файловый сервис, либо есть специализированные средства сервера

Следует ли объединять файловый сервер и сервер каталогов? Разумным может быть следующее разделение: можно иметь различные серверы каталогов (например, для операционных систем Unix и DOS) и один файловый сервер

Должен ли сервер хранить у себя информацию о клиентах? В зависимости от принятого решения в системе будут либо серверы с состоянием, либо без состояния

42

Реализация распределенных файловых систем (продолжение)

Кэширование. В клиент-серверной схеме с памятью и диском имеются четыре места для хранения файлов или их частей:

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

Память сервера. При этом возникает дополнительный вопрос — помещать файлы в память целиком или частями

Диск клиента. Это место не дает преимуществ перед первыми двумя, но в несколько раз усложняется работа системы

Память клиента. Это место является наиболее разумным для хранения файлов или их частей

Оценить способ и обосновать выбор можно лишь при учете характера приложений и данных о быстродействии процессоров, памяти и сети

43

Hadoop Distributed File System

HDFS — файловая система, предназначенная для хранения файлов больших размеров, поблочно распределённых между узлами вычислительного кластера.

Все блоки в HDFS (кроме последнего блока файла) имеют одинаковый размер, и каждый блок может быть размещён на нескольких узлах, размер блока и коэффициент репликации (количество узлов, на которых должен быть размещён каждый блок) определяются в настройках на уровне файла. Благодаря репликации обеспечивается устойчивость распределённой системы к отказам отдельных узлов.

Файлы в HDFS могут быть записаны лишь однажды (модификация не поддерживается), а запись в файл в одно время может вести только один процесс.

Организация файлов в пространстве имён — традиционная иерархическая: есть корневой каталог, поддерживается вложение каталогов, в одном каталоге могут располагаться и файлы, и другие каталоги.

Развёртывание экземпляра HDFS предусматривает наличие центрального узла имён, хранящего метаданные файловой системы и метаинформацию о распределении блоков, и серии узлов данных, непосредственно хранящих блоки файлов.

Узел имён отвечает за обработку операций уровня файлов и каталогов — открытие и закрытие файлов, манипуляция с каталогами, узлы данных непосредственно отрабатывают операции по записи и чтению данных.

Узел имён и узлы данных снабжаются веб-серверами, отображающими текущий статус

узлов и позволяющими просматривать содержимое файловой системы.

44

 

Административные функции доступны из интерфейса командной строки.

 

План лекции

Файлы

Файловые системы

Централизованные ОС Распределенные ОС

Драйверы устройств

45

Драйверы устройств

Драйвер — это программа операционной системы, обеспечивающая взаимодействие исполняемой программы с отдельным устройством и способствующая его удобному использованию

Существуют, например, драйверы дисплея, мыши, клавиатуры и т.п.

46

Классы драйверов

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

При установке нового устройства операционная система либо находит драйвер в своей поставке, либо просит пользователя установить драйвер (например, с диска, поставляемого с устройством, или с сайта разработчика в сети Интернет)

Примером данного класса драйверов является драйвер мыши

Драйвер логического устройства, обслуживающий логические устройства, относящиеся к одному типу

Примером данного класса драйверов может быть драйвер логических дисков, на которые разбивается физический диск

Драйвер виртуального устройства (псевдоустройства), предоставляющий доступ к виртуальным устройствам, имитируемым программным или аппаратным способом

Примером псевдоустройства является /dev/null в Unix

47

Алгоритм работы драйвера

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

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

Работа с внешним устройством определяется протоколом, который состоит из анализа запроса, передачи команды устройству, ожидания прерывания по завершении этой команды, анализа результата операции и формирования ответа внешнему устройству. Многие запросы приводят к выполнению не одной, а целой последовательности команд.

48

Два типа устройств в операционных системах

Устройства ввода-вывода блоками

Примером блочных устройств ввода-вывода являются диски и ленты

Устройства неструктурированного или посимвольного ввода-вывода

К устройствам посимвольного (побайтного) ввода-вывода относятся практически все остальные устройства, в том числе дисплеи, клавиатуры и сетевое оборудование

Устройства ввода-вывода блоками могут также иметь интерфейс работы посимвольного ввода-вывода. В последнем случае для работы с устройством существуют два драйвера: блочный и посимвольный

49

Пример управления устройствами ввода-вывода

Правильное управление устройствами ввода-вывода может резко повысить эффективность системы

В качестве примера обратимся к такому устройству как диск. Головка считывания-записи должна быть подведена к определенному цилиндру диска, а затем к нужному сектору цилиндра.

Очевидно, что время подвода головки к цилиндру значительно выше, чем время перемещения головки к сектору при вращении диска, и основное внимание в алгоритмах следует обращать на него

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]