Горнец Н.Н., Рощин А.Г. Организация ЭВМ и систем (2006) (1186251), страница 56
Текст из файла (страница 56)
При планировании распределения времени работы ЦП межлу отдельными процессами возникает несколько проблем: выбор величины кванта времени работы ЦП, выделяемого выполняемому процессу; стратегия выбора процесса, который будет выполняться ЦП, из множества процессов, готовых к выполнению и размещенных в БОП. В случае планирования очереди запросов на обмен решаются задачи определения порядка обработки запросов и проблемы взаимосвязанных запросов на обмен. Комплексное решение проблем планирования однозначно определяет основные эксплуатационные характеристики и тип ОС. Рассмотрим примеры реализации задачи планирования в ОС различного типа.
Пакетная ОС. Пусть имеется пакет программ — некоторая совокупность программ, обладающих общим свойством — для выполнения каждой из которых требуется значительное время работы 266 ггП. Необходимо обработать все программы пакета за минимальное время. В этом случае используют специализированные пакетные ОС. )7дя данных ОС не является важным порядок выполнения программ пакета и время, за которое они были выполнены. Критерием эффективности пакетной ОС является уменьшение времени, затраченного на выполнение всего пакета за счет минимизации, в свою очередь, непроизводительной работы ЦП. Основной задачей системы планирования пакетной ОС является максимальная загрузка процессора мультипрограммным выполнением программ-процессов пользователей.
В частности, должно быть минимизировано время работы ОС. Это достигается за счет стратегии планирования, основанной на переключении выполнения одной программы-процесса на другую только в одном из следующих случаев: завершение выполнения программы-процесса; возникновение при выполнении программы-процесса прерывания (например, обращение к ВУ); фиксация ОС факта зацикливания процесса. При подобной организации планирования соотношение времени работы процессора, затраченного на выполнение программ пользователей, ко времени, затраченному на выполнение функций ОС, будет максимально. Операционные системы разделения времени.
В такой системе одновременно работает некоторое число пользователей, например терминальный класс, в котором проходит практические занятия группа студентов, и каждый пользователь работает со своей копией программы редактора или транслятора (или любой другой программой). Качеством работы пользователей в этой ситуации является создание у него иллюзии, что он работает в системе один, т.е.
время, в течение которого пользователь ожидает ответ системы на запрос, должно быть минимально (запросом может быть нажатие кнопки исполнения на клавиатуре или отправка на выполнение отладочной программы и т.п.). Для работы системы в таких условиях используются ОС разделения времени. Суть функционирования подобных систем заключается в следующем. В системе определено понятие кванта времени ЦП вЂ” некоторый фиксированный промежуток времени работы ЦП. Каждому выполняющемуся в системе процессу выделяется квант времени ЦП, пеРеключение выполнения на другой процесс осуществляется: при исчерпании процессом выделенного кванта времени; завершении выполнения программы-процесса; возникновении при выполнении программы-процесса прерывания (например, обращение к ВУ); фиксации ОС факта зацикливания процесса.
Характеристики конкретной системы разделения времени зависят от деталей стратегии распределения квантов ЦП, их величины, критериев выбора очередного процесса для выполнения. 267 Операиионные системы реального времени. Существует класс за дач компьютерного управления теми или иными техническими объектами. Спецификой этих задач является реакция на события возникающие при управлении, в сроки, когда эта реакция имее,. смысл (если кто-то звонит по телефону, то имеет смысл поднят~ трубку до того времени, пока звонящий не опустил свою трубку поднятие трубки позднее — бессмысленно).
Примеров подобных задач множество — от сложных и крайне ответственных, напри мер управления автопилотом самолета, до прозаических и менее ответственных задач, например управления посудомоечной ма шиной. В общем случае все подобные задачи имеют фиксирован ный набор некоторых событий, реакция на произвольное возникновение и обработка которых должна быть осуществлена за некоторое гарантированное время (для каждого события это время может быть своим). Операционная система является системой реального времени, если она при функционировании может обработать возникновение любого из данных событий (прерываний) за время, не превосходящее некоторое предельное значение.
Системы реального времени являются специализированными системами, в которых все функции планирования ориентированы на достижение поставленной цели. 10.6. Файловые системы Файловая система (ФС) — часть ОС, представляющая собой совокупность организованных наборов данных, хранящихся на внешних запоминающих устройствах, и программных средств, гарантирующих именованный доступ к этим данным и их защиту. Данные называются Файлами, их имена — именами 4айлов.
Файловые системы классифицируют по степени персонификации доступа к содержимому файлов на однопользовательские и многопользовательские файловые системы. В однопользовательской ФС не регламентируется доступ к содержимому файлов от имени любого пользователя. Многопользовательские ФС предусматривают работу только идентифицированных системой пользователей; их основным свойством является наличие защиты данных, содержащихся в файлах, от несанкционированного доступа. Файлы обладают следующими свойствами: 1. Файл представляет собой некую сущность, имеющую имя я позволяющую оперировать со своим содержимым через ссылку на имя файла. 2.
Реальное месторасположение данных файлов определяется файловой системой и в общем случае срыто от пользователя. 268 3. Определен фиксированный программный интерфейс для работы с содержимым файла. Операционная система однозначно определяет набор функций, обеспечивающих обмен с файлом. Этот набор функций содержит следующие возможности по работе с файлами: 1) открытие файла. Эта функция обеспечивает установление взаимосвязи между программой и хранящимся на внешнем носителе файлом. Это средство объявляет ОС тот факт, что с данным файлом будет работать тот или иной процесс.
Операционная система, исходя из этой информации, может принять решения по изменению статуса файла (например, блокировать, разрешить или синхронизировать доступ к этому файлу со стороны других процессов и т.п.). При открытии файла система формирует внутренние наборы данных, необходимые для работы с содержимым файла. С этими наборами данных ассоциируется понятие файлового дескриптора; 2) закрытие файла.
Закрытие файла — информация ОС о том, что работа с файлом завершена. При этом меняется статус доступа к файлу со стороны процессов. Операция закрытия файла осуществляется двумя функциями — закрыть и сохранить текущее содержимое файла; уничтожить файл; 3) создание нового файла. Функция создает новый файл. В некоторых ОС создание файла осуществляется по функции открытия файла; 4) чтение-запись. Обычно обмен с файлами производится некоторыми блоками данных. С одной стороны, размеры этих блоков данных могут варьироваться программистом, с другой стороны, реальные физические ресурсы имеют блочную структуру и, следовательно, определенный размер блока. Поэтому эффективность обменов, а следовательно, и эффективность работы всей ВС в целом в данном случае зависит от квалификации программиста.
В современных ОС заложены механизмы сглаживания подобного рода несоответствий; 5) управление файловым указателем. С каждым открытым файлом связано понятие файлового указателя. Этот указатель в каждый момент времени показывает на следующий относительный адрес по файлу, с которым можно произвести обмен. После обмена с данным блоком указатель переносится на позицию через блок. Для организации работы с файлами необходимо уметь управлять этим указателем. В ОС определена функция, позволяющая произвольным образом перемещать указатель в пределах файла. Доступ к содержимому файла может быть прямым или последовательным.
Файловый указатель — это некоторая переменная, доступная программе, которая создается при открытии файла. 4. Персонификация и защита данных. Персонификация — возможность системы «опознавать» конкретного пользователя и ас- 269 социировать с ним его файлы. Зашита доступа к содержимому файлов обычно включает в себя назначение и проверку прав на выполнение чтения, записи и исполнения содержимого как про цесса. Отметим, что персонификация и защита данных — свой ство всей ОС в целом. Одноуровневая организация ФС с непрерывными сегментами. На внешнем запоминающем носителе выделяется некоторая непрерывная область.
Данные размещаются в подряд идущих единицах этого носителя. В этой области, в свою очередь, выделяется подобласть для хранения информации о файлах, которая называется каталогом. Каталог представляет собой таблицу, имеющую три колонки: имя файла, координаты начала и конца файла, указанные в блоках (табл. 10.1). Имя файла в таблице должно быть уникальным (отсюда и термин — «одноуровневая»), При создании файла в эту таблицу добавляется строка с перечисленными выше характеристиками. В случае уничтожения соответствующая строка удаляется из таблицы. Функция открытия уже существующего файла сводится к нахождению в каталоге имени файла, определении его начала и конца.
Операции чтения-записи происходят почти без дополнительных обменов, так как при открытии файла пользователь получает диапазон размещения данных (более того каталог можно хранить в оперативной памяти). К несомненным достоинствам одноуровневой организации относятся простота реализации и эффективность операций обмена. Особенностью этой организации является физическая непрерывность файла на внешнем носителе. Следовательно, при создании файла необходимо знать его максимальный размер, так как в случае необходимости добавления данных в файл может не оказаться достаточно места. Система может отказать в выполнении такой операции или попытаться найти новую непрерывную область достаточного размера, чтобы переписать туда данные.
Последняя операция трудоемка и приведет к внешней фрагментации, когда появятся незаполненные отрезки памяти между файлами. Выделение файлу места «заведомо достаточного» приведет к внут- ренней фрагментации. Можно Табл и ца 1О.1 осуществлять регулярную компрессию данных, но это операция также достаточно трудоемка. Такого рода организация может быть пригодна для однопользовательской файловой системы. Это объясняется следующим. При большом числе поль- зователей очень быстро произой- дет фрагментация, а постоянный 270 запуск компрессии приведет к неэффективности работы системы; кроме того, ограниченность числа файлов в каталоге и необходимость уникального именования файлов делают многопользовательский режим крайне неудобным.
Файловая система с блочной организацией файлов. В данном случае на пространстве внешней памяти выделяется непрерывная область данных, в которой размещается каталог. Вся оставшаяся внешняя память, предназначенная для файловой системы, разбивается на блоки, удобные для обмена. Число строк в каталоге совпадет с числом этих блоков. Каждая строка таблицы соответствует 1-му блоку файловой системы. Каждый файл занимает, как минимум, один блок памяти. Таблица разбивается на столбцы.