Главная » Просмотр файлов » Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС

Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС (1114685), страница 58

Файл №1114685 Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС (Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС) 58 страницаКурынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС (1114685) страница 582019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 58)

Например, для таймера скорее всего будутотсутствовать функции чтения и записи, причем при попытке чтения или записи система должна«ругнуться» (т.е. заглушка типа nodev()).Некоторые из перечисленных точек входа являются специализированными. С помощьюфункции βioctl() можно производить разного рода настройки и управление драйвером. Функцияβintr() вызывается при поступлении прерывания, ассоциированного с данным устройством.Традиционно часть функций драйверов может быть реализовано синхронным способом, адругая часть — асинхронным способом. Соответственно, синхронная часть драйвера называетсяtop half, а асинхронная — bottom half.6.2.3Ситуации, вызывающие обращение к функциям драйвераСписок ситуаций, при которых происходит обращение к функциям драйверов, четкодетерминирован.

Во-первых, это старт системы и инициализация устройств и драйверов. Пристарте системы она имеет перечень устройств, которые могут быть к ней подключены. Этотперечень — содержимое каталога /dev. После этого она просматривает данный перечень иопределяет те устройства, которые есть в наличии, а затем подключает их посредством вызовасоответствующей функции коммутатора (функции βioctl()).Во-вторых, это обработка запросов на обмен. Если процессу необходимо произвестисчитывание или запись данных, то в этом случае происходит обращение к соответствующей точкевхода в драйвер.В-третьих, это обработка прерывания, связанного с данным устройством.

Например, былинициирован обмен, и он закончился (успешно или неуспешно), или же по линии связи пришелкакой-то сигнал, который необходимо обработать. В этом случае возникает прерывание,обработка которого происходит в соответствующем драйвере.И, в-четвертых, это выполнение специальных команд управления устройством. Функцииуправления могут быть самыми разными, их наполнение зависит от конкретного устройства и отконкретного драйвера.6.2.4Включение, удаление драйверов из системыИзначально Unix-системы предполагали, как и большинство систем, «жесткие» статическиевстраивание драйверов в код ядра.

Это означало, что при добавлении нового драйвера илиудалении существующего необходимо было выполнить достаточно трудоемкую операциюперетрансляции (когда ядро создается «с нуля») или, как минимум, перекомпоновку (когда естьготовые объектные модули) ядра. Соответственно, эти операции требовали серьезных навыков отсистемного администратора. Чтобы минимизировать число перекомпоновок ядра, надо быломаксимизировать число драйверов, встроенных в систему. Но такая модель была неэффективной,поскольку в системе присутствовали драйверы, которые никак не используются.Альтернативной моделью, существующей и по сей день, является модель динамическогосвязывания драйверов. В этом случае в системе присутствуют программные средства,позволяющие динамически, «на лету» подключить к операционной системе тот или иной драйвер.Данная модель предполагает решение следующих задач.

Во-первых, это задача именованияустройства. Во-вторых, инициализация драйвера (т.е. формирование системных областей данныхи т.п.) и устройства (приведение устройства в начальное состояние). В-третьих, добавлениеданного драйвера в соответствующую таблицу драйверов устройств (либо блок-, либо байториентированных). И, наконец, «установка» обработчика прерывания, т.е. предоставление ядруинформации, что при возникновении определенного прерывания управление необходимо передатьв соответствующую точку входа в данный драйвер.223Для реализации указанной модели в различных системах имеются разные средства: разныесистемные вызовы и разные, соответственно, команды, при этом обычно присутствуют каккоманды подключения драйверов, так и симметричные команды удаления драйверов.6.2.5Организация обмена данными с файламиВ этом разделе мы рассмотрим механизм организации обмена данными с файлами, послечего станет понятным, что происходит в системе, когда один и тот же файл открывается в системеодновременно несколькими процессами, а в каждом из них, возможно, по нескольку раз.Для организации операций обмена в ОС Unix используются системные таблицы иструктуры, часть которых ассоциирована с каждым процессом (т.е.

они располагаются в адресномпространстве процесса), а часть — с самой ОС.Таблица открытых файлов (ТОФ) создается в адресном пространстве процесса. Каждаязапись этой таблицы соответствует открытому в процессе файлу. Говоря о номере дескриптораоткрытого в процессе файла, — т.н. файловый дескриптор — подразумевается соответствующийномер записи в таблице открытых файлов процесса. Размер данной таблицы определяется принастройке операционной системы: этот параметр декларирует предельное количество открытых водном процессе файлов.Каждая запись ТОФ содержит целый набор атрибутов, который в данный момент нам неинтересен, но в этом наборе имеется один достаточно важный атрибут — это ссылка на номерзаписи в таблице файлов операционной системы (ТФ).

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

Здесь также хранится целый набор параметров,среди которых имеется и счетчик кратности.Для иллюстрации рассмотрим следующий пример (6.2.5). Пускай в системе запущенПроцесс1, для которого система при его создании сформировала ТОФ1. Затем этот процесспосредством обращения к системному вызову open() открывает файл с именем name.

Это означает,что в свободном месте этой таблицы заводится файловый дескриптор для работы с даннымфайлом. В этой записи ТОФ хранится ссылка на соответствующую запись в ТФ. Если файлоткрывается впервые в системе, то в ТФ заводится новая запись для работы с этим файлом. Вданной записи хранится указатель чтения/записи, а также коэффициент кратности, который вначале устанавливается в значение 1 — это означает, что с данной записью ТФ ассоциированаединственная запись из какой-либо ТОФ. И, конечно, в данной записи ТФ хранится ссылка назапись в ТИДОФ, содержащую актуальную копию индексного дескриптора обрабатываемогофайла.

Таблицы ТФ и ТИДОФ хранят оперативную информацию, поэтому они располагаются вОЗУ. Соответственно, файловая система, работая с блоками открытого файла, оперирует данными,хранимыми именно в ТИДОФ.224ТИДОФТОФ1ТФname22pointer1ТОФ3Дескрипт.1pointer2fork()nameТОФ2nameРис. 148.Организация обмена данными с файлами.Пускай в системе позже был запущен Процесс2, который также открыл файл name. В этомслучае в ТФ заводится новая запись, в которой устанавливается свой указатель чтения/записи, ноэта запись ТФ будет ссылаться на тот же номер записи в ТИДОФ. Такой механизм позволяеткорректно (с системной точки зрения) обрабатывать ситуации одновременной работы с одним итем же файлом: поскольку в итоге все сводится к единственной актуальной копии индексногодескриптора в ТИДОФ, то работа ведется с соответствующими блоками файла. При этом данныепроцессы работают с файлом каждый «по-своему», т.к. каждый из них оперирует независимымиуказателями чтения/записи, хранимыми в различных записях ТФ.Теперь предположим, что после открытия файла name, Процесс1 обращается к системномувызову fork() и порождает своего потомка — Процесс3.

При обращении к системному вызовуfork() ТОФ родительского процесса копируется в ТОФ сыновнего процесса. Соответственно, всезаписи ТОФ3 будут ссылаться на те же записи ТФ, что и записи ТОФ 1. Это означает, что припорождении сыновнего процесса в соответствующих записях ТФ происходит увеличение на 1счетчика кратности. Заметим, что подобный механизм наследования подразумевает, что дочернийпроцесс будет работать с теми же указателями чтения/записи, что и родительский процесс.Рассмотренная модель организации обмена данными с файлами имеет свои достоинства инедостатки.

Так, ТИДОФ располагается в оперативной памяти. Это означает, что становитсяэффективнее работа с файловой системой, поскольку уменьшается число обращений кпространству индексных дескрипторов файловой системы, т.е. этот механизм можно считатькэшированием системных обменов. Но эта модель имеет главный недостаток, связанный снекорректным завершением работы операционной системы: если в системе происходит сбой, тосодержимое ТИДОФ будет потеряно, а это означает, что будут потери и в файловой системе.6.2.6Буферизация при блок-ориентированном обменеОдним из достоинств ОС Unix является организация многоуровневой буферизации привыполнении неэффективных действий.

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

Характеристики

Тип файла
PDF-файл
Размер
1,6 Mb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6376
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее