Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 38
Текст из файла (страница 38)
Получив имя буфера (будемакусловно называть этот системный объект, хотя в различных операционныхистемах используются и другие термины, например «класс»), задача продолжает144Глава 5, Управление вводом-выводом в операционных системахсвою работу. Здесь очень важно подчеркнуть, что в результате запроса на асинхронный ввод данных задача не переводится супервизором ввода-вывода в состояние ожидания завершения операции ввода-вывода, а остается в состоянии выполнения или в состоянии готовности к выполнению.
Через некоторое времявыполнив необходимый код, который был определен программистом, задача выдает второй запрос на завершение операции ввода-вывода. В этом втором запросек тому же устройству, который, естественно, имеет другой код (или имя запроса),задача указывает имя системного объекта (буфера для асинхронного ввода данных) и в случае успешного завершения операции считывания данных тут же получает их из системного буфера.
Если же данные еще не успели до конца переписаться с внешнего устройства в системный буфер, супервизор ввода-вывода переводитзадачу в состояние ожидания завершения операции ввода-вывода, и далее все напоминает обычный синхронный ввод данных.Асинхронный ввод-вывод характерен для большинства мультипрограммных операционных систем, особенно если операционная система поддерживает мультизадачность с помощью механизма потоков выполнения.
Однако если асинхронныйввод-вывод в явном виде отсутствует, его можно реализовать самому, организовавдля вывода данных отдельный поток выполнения.Аппаратуру ввода-вывода можно рассматривать как совокупность аппаратныхпроцессоров, которые способны работать параллельно друг другу, а также параллельно центральному процессору (процессорам). На таких «процессорах» выполняются так называемые внешние процессы. Например, для печатающего устройства (внешнее устройство вывода данных) внешний процесс может представлятьсобой совокупность операций, обеспечивающих перевод печатающей головки, продвижение бумаги на одну позицию, смену цвета чернил или печать каких-то символов. Внешние процессы, используя аппаратуру ввода-вывода, взаимодействуюткак между собой, так и с обычными «программными» процессами, выполняющимися на центральном процессоре.
Важным при этом является обстоятельство, чтоскорости выполнения внешних процессов будут существенно (порой на порядокили больше) отличаться от скорости выполнения обычных {внутренних) процессов. Для своей нормальной работы внешние и внутренние процессы обязательнодолжны синхронизироваться. Для сглаживания эффекта значительного несоответствия скоростей между внутренними и внешними процессами используют упомянутую выше буферизацию.
Таким образом, можно говорить о системе параллельных взаимодействующих процессов (см. главу 7).Буферы (буфер) являются критическим ресурсом в отношении внутренних (программных) и внешних процессов, которые при параллельном своем развитии информационно взаимодействуют. Через буферы данные либо посылаются от некоторого процесса к адресуемому внешнему (операция вывода данных на внешнееустройство), либо от внешнего процесса передаются некоторому программномупроцессу (операция считывания данных).
Введение буферизации как средстваинформационного взаимодействия выдвигает проблему управления этими системными буферами, которая решается средствами супервизорной части операционной системы. При этом на супервизор возлагаются задачи не только по выделениюи освобождению буферов в системной области памяти, но и по синхронизациипроцессов в соответствии с состоянием операций заполнения или освобождениябуферов, а также по их ожиданию, если свободных буферов в наличии нет, а запрос на ввод-вывод требует буферизации.
Обычно супервизор ввода-вывода длярешения перечисленных задач использует стандартные средства синхронизации,принятые в данной операционной системе. Поэтому если операционная системаимеет развитые средства для решения проблем параллельного выполнения взаимодействующих приложений и задач, то, как правило, она реализует и асинхронный ввод-вывод.Организация внешней памятина магнитных дискахДля организации внешней памяти желательно использовать относительно недорогие, но достаточно быстродействующие и емкие устройства с прямым доступомК данным. К таким устройствам, прежде всего, относятся накопители на жесткихмагнитных дисках (НЖМД).
Нынче чаще всего такие накопители называют «винчестерами», но мы не будем употреблять это название.Детальное изучение этих устройств выходит за рамки темы настоящей книги, в основном их изучают в рамках дисциплины «Устройства ввода-вывода». Однакопоскольку большинство компьютеров имеет накопители на жестких магнитныхдисках и фактически ни одна современная операционная система для повсеместно распространенных персональных компьютеров не обходится без дисковой подсистемы, мы ознакомимся с логической организацией хранения и доступа к данным в этих устройствах, причем применительно к персональным компьютерам.Действительно, дисковая подсистема для большинства компьютеров является одной из важнейших.
Именно на магнитных дисках чаще всего располагается загружаемая в компьютер операционная система, которая и обеспечивает нам удобныйинтерфейс для работы. Благодаря использованию систем управления файлами,данные на магнитных дисках располагаются в виде именованных наборов данных,называемых файлами. Таким образом, помимо файлов самой операционной системы, на дисках располагаются многочисленные прикладные программы и разнообразные файлы пользователей.
Наконец, благодаря тому, что по сравнению с другими устройствами внешней памяти дисковые механизмы обладают большимибыстродействием и вместительностью, а также средствами непосредственной (прямой) адресации блоков данных, дисковую подсистему часто используют для организации механизмов виртуальной памяти, что существенно расширяет возможности компьютера.Основные понятияW3 оперативной памяти в НЖМД и обратно информация передается байтами, а вотзаписывается на диск и считывается с него она уже последовательно (побитно).Из_з а того что запись и считывание бита данных не являются абсолютно надежныИ операциями, информация перед записью кодируется с достаточно большой146Глава 5. Управление вводом-выводом в операционных системахизбыточностью.
Для этой цели применяют коды Рида-Соломона. Избыточноекодирование информации позволяет не только обнаруживать ошибки, но и автоматически исправлять их. Следовательно, перед тем как данные, считанные с поверхности магнитного диска, будут переданы в оперативную память, их нужно предварительно обработать (перекодировать). На эту операцию необходимо время,поэтому в ходе обработки данных быстро, вращающийся диск успевает повернуться на некоторый угол, и мы можем констатировать, что на магнитном диске данные располагаются не сплошь, а порциями (блоками).
Говорят, что НЖМД относится к блочным устройствам. Нельзя прочитать (или записать) байт или несколькобайтов. Можно прочитать сразу только блок данных и уже потом извлекать из негонужные байты, использовать их в своих вычислениях и изменять. Записать потомданные обратно тоже можно только сразу блоком.За счет того что при вращении диска магнитная головка, зафиксированная на некоторое время в определенном положении, образует окружность {дорожку — track),блоки данных на таких окружностях называют секторами (sectors). С некоторыхпор размер сектора стал стандартным и в абсолютном большинстве случаев он равен 512 байт хранимых данных.
Все сектора пронумерованы, и помимо данныхпользователя на магнитных дисках размещается и служебная информация, с помощью которой можно находить искомый сектор. Служебная информация (сервоинформация), как правило, располагается в межсекторных промежутках.Группы дорожек (треков) одного радиуса, расположенные на поверхностях магнитных дисков, образуют так называемые цилиндры (cylinders). Современные жесткие диски могут иметь но нескольку десятков тысяч цилиндров. Выбор конкретной дорожки в цилиндре осуществляется указанием порядкового номера той головки(head) чтения/записи данных, которая и образует эту дорожку.
Таким образом,адрес конкретного блока данных указывается с помощью уже упоминавшихся трехкоординат C-H-S — номеров цилиндра, головки и сектора. Устройство управления НЖМД обеспечивает позиционирование блока головок на нужный цилиндр,выбирает заданную поверхность и находит требуемый сектор. Этот способ адресации нынче считается устаревшим и почти не используется. Второй способ адресации блоков данных основывается на том, что все блоки (секторы) пронумерованы.Логическая структура магнитного дискаДля того чтобы можно было загрузить с магнитного диска операционную систему,а уже с ее помощью организовать работу с файлами, были приняты специальныесистемные соглашения о структуре диска.
Хранение данных на магнитном дискеможно организовать различными способами. Можно поделить все дисковое пространство на несколько частей — разделов (partitions), а можно его и не делить.Деление НЖМД на разделы позволяет организовать на одном физическом устройстве несколько логических; в этом случае говорят о логических дисках. Следует, однако, заметить, что не во всех операционных системах используется понятиелогического диска. Так, UNIX-системы не имеют логических дисков.Разделение всего дискового пространства на разделы полезно по нескольким соображениям. Во-первых, это структурирует хранение данных. Например, выделе-Организация внешней памяти на магнитных дисках147ие отдельного раздела под операционную систему и программное обеспечениеГОГ0Пи ДРУРадела °Д Данные пользователей позволяет отделить последние от системных файлов и не только повысить надежность системы, но и сделать болееудобным ее обслуживание.
Во-вторых, на каждом разделе может быть организована своя файловая система, что иногда бывает необходимо. Например, при установ1ке операционной системы Linux нужно иметь не менее двух разделов , посколькуфайл подкачки (страничный файл) должен располагаться в отдельном разделе. Наконец, в ряде случаев на компьютере может потребоваться установка более однойоперационной системы.нДля того чтобы системное программное обеспечение получило информацию о том,как организовано хранение данных на каждом конкретном накопителе, нужно разместить в одном из секторов соответствующие данные.
Даже если НЖМД используется как единственный логический диск, все равно нужно указать, что имеетсявсего один диск, и его размер. Структура данных, несущая информацию о логической организации диска, вместе с небольшой программой, с помощью которой можноее проанализировать, а также найти и загрузить в оперативную память программузагрузки операционной системы, получила название главной загрузочной записи(Master Boot Record, MBR). MBR располагается в самом первом секторе НЖМД,то есть в секторе с координатами 0-0-1.