- •4 Курс, 1 семестр
- •Оглавление
- •1 Введение в ос unix
- •1.1 История создания
- •1.2 Базовые концепции
- •1.3 Архитектура unix
- •1.4 Пользователи системы
- •1.5 Пользовательская среда Unix.
- •2 Файловая подсистема
- •2.1 Понятие
- •2.2 Логическая структура файловой системы
- •2.3 Имена файлов в ос unix
- •2.4 Типы файлов
- •2.5 Права доступа к файлам
- •2.6 Физическое размещение файловой системы
- •2.7 Особенности размещения файловой системы sVfs
- •2.8 Особенности размещения файловой системы ffs (ufs)
- •2.9 Монтирование файловых систем
- •2.10 Восстановление файловой системы
- •2.11 Типы файловых систем unix
- •3 Подсистема управления процессами
- •3.1 Понятие процесса
- •3.2 Логическая организация процессов
- •3.3 Жизненный цикл процесса
- •3.4 Реализация процессов
- •3.4.1 Состав процесса
- •3.4.2 Структуры управления процессом
- •3.4.3 Файловая система /proc
- •3.5 Нити (потоки)
- •Причины появления нитей
- •Типы нитей
- •3) Прикладные нити. Существует возможности поддержки нитей полностью на прикладном уровне, при этом ядру об их существовании ничего не известно.
- •3.5 Планирование
- •3.5.1 Задачи планировщика
- •3.5.2 Приоритеты процессов
- •3.5.3 Реализация планировщика
- •3.5.4 Расчет приоритета
- •3.5.5 Особенности планирования в Linux
- •3.6 Взаимодействие между процессами (Interprocess Communication, ipc)
- •3.6.1 Введение
- •3.6.2 Взаимодействие родственных процессов
- •3.6.3 Взаимодействие произвольных процессов
- •Разделяемая память.
- •Передача сообщений.
- •Семафоры.
- •3.6.4 Межпроцессное взаимодействие с помощью файловой системы
- •4 Управление памятью
- •4.1 Понятие виртуальной памяти
- •4.2 Свопинг
- •4.3 Страничное замещение
- •4.4 Стратегия замещения страниц
- •5 Подсистема ввода-вывода
- •5.1 Основные задачи
- •5.2 Типы устройств ввода-вывода в ос
- •5.3 Общая схема
- •5.4 Драйвера
- •5.5 Буферизация
- •5.6 Поддержка операций ввода-вывода
- •6 Unix в сетях
- •6.1 Конфигурация tcp/ip
- •6.2 Основные сетевые утилиты
- •6.3 Основные сетевые интерфейсы
- •6.4 Доступ к сетевым ресурсам
- •6.5 Сетевые службы Unix
5.5 Буферизация
Основной особенностью организации работы с блок-ориентированными устройствами является возможность буферизации обмена. Суть заключается в следующем. В оперативной памяти системы организован пул буферов, где каждый буфер имеет размер в один блок. Каждый из этих блоков может быть ассоциирован с драйвером одного из физических блок-ориентированных устройств.
Рассмотрим последовательность действий при исполнении заказа на чтение N-ого блока из устройства с номером M.
В буферном пуле ищется заданный блок. Если он обнаружен, фиксируем номер этого буфера. В этом случае, обращение к реальному физическому устройству не происходит, а операция чтение идет из найденного буфера. Переходим на шаг 4.
Если буфер не найден, то в буферном пуле ищется свободный буфер. Если такой есть (реально, эта ситуация возможна только при старте системы), фиксируем его номер и переходим к шагу 3. Если нет, то выбирается буфер, к которому не было обращений самое долгое время. Фиксируем его номер и переходим к пункту 3.
Осуществляется чтение N-ого блока устройства М в найденный буфер.
Происходит обнуление счетчика времени в данном буфере и увеличение на единицу счетчиков в других буферах.
Передаем в качестве результата чтения содержимое данного буфера.
Преимущества:
- минимизируются реальные обращения к физическому устройству.
- согласуются скорости генерации данных и их чтения
Недостатки
- система чувствительна выключениям питания, т.е. ситуация, когда буфера системы не выгружены, а питание прервалось может привести к потере информации.
- за счет буферизации разорваны во времени факт обращения к системе за обменом и реальный обмен. Предположим, при реальном физическом обмене происходит сбой, блок успешно записался в буфер, но когда система реально запишет этот блок на ВЗУ, неизвестно. При этом может возникнуть ситуация, что запись может не пройти, предположим, из-за дефектов носителя.
Для устранения таких недостатков,
- в системе предусмотрен параметр, который определяет периоды времени, через которые осуществляется сброс системных данных.
- есть пользовательская команда SYNC. По этой команде осуществляется сброс данных на диск.
- система обладает некоторой избыточностью, позволяющей в случае потери информации, восстановить некоторые блоки
Буферизация может быть
в оперативной памяти. Это эффективно, но буферизация только на основе оперативной памяти в подсистеме ввода-вывода оказывается недостаточной — разница между скоростью обмена с оперативной памятью, куда процессы помещают данные для обработки, и скоростью работы внешнего устройства часто становится слишком значительной
в качестве буфера используется дисковый файл, называемый также спул-файлом (Типичный пример применения спулинга дает организация вывода данных на принтер)
в буферной памяти в контроллерах внешних устройств (когда помещение данных на диск слишком замедляет обмен. Например, в контроллерах графических дисплеев применяется буферная память, соизмеримая по объему с оперативной, и это существенно ускоряет вывод графики на экран).