ТОП 10:

Два способа организации файловых операций



Файловая система ОС должна предоставлять пользователям набор операций работы с файлами, оформленный в виде системных вызовов Этот набор обычно состоит из таких системных вызовов, как creat (создать файл), read (читать из файла), write (записать в файл) и некоторых других.

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

Какие бы операции не выполнялись над файлом, ОС необходимо выполнить ряд универсальных для всех операций действий:

  • По символьному имени файла найти его характеристики, которые хранятся в файловой системе на диске.

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

  • На основании характеристик файла проверить права пользователя на выполнение запрошенной операции (чтение, запись, удаление, просмотр атрибутов файла).
  • Очистить область памяти, отведенную под временное хранение характеристик файла.

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

Операционная система может выполнять последовательность действий над файлом двумя способами (рис. 7.26):

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

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

Рис. 7.26. Два способа выполнения файловых операций

При втором способе в файловой системе вводятся два специальных системных вызова: open — открытие файла, и close — закрытие файла.

Системный вызов открытия файла open выполняется перед началом любой последовательности операций с файлом, а вызов закрытия файла close — после окончания работы с файлом. Основной задачей вызова open является преобразование символьного имени файла в его уникальное числовое имя, копирование характеристик файла из дисковой области в буфер оперативной памяти и проверка прав пользователя на выполнение запрошенной операции. Вызов close освобождает буфер с характеристиками файла и делает невозможным продолжение операций с файлом без его повторного открытия.

Операции открытия и закрытия файла в той или иной форме утвердились в операционных системах очень давно. Даже в такой «старой» операционной системе, как OS/360, существовала макрокоманда OPEN, по которой в специальном буфере, называемом DCB (Data Control Block), собирались из различных источников все нужные характеристики набора данных (понятие, близкое к современному понятию файла), используемые затем при выполнении операций чтения и записи.

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

 

Планирование в системах пакетной обработки данных. Планирование в интерактивных системах. Планирование в системах реального времени.

1. Введение в планирование.

 

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

  • создание процесса;
  • завершение процесса;
  • блокировка процесса на различных операциях;
  • прерывание ввода/вывода.

 

2. Категории алгоритмов планирования.

Всё многообразие алгоритмов планирования может быть разделено на невытесняющие (назовем их неприоритетными) и вытесняющие (назовем их приоритетными).

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

Использование того или иного алгоритма планирования зависят от типа решаемых ОС задач. В этом смысле ОС можно разделить на:

 

  • системы пакетной обработки;
  • интерактивные системы;
  • системы реального времени.

 

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

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

Системы реального времени могут использовать как неприоритетный, так и приоритетный алгоритмы.

 

Задачи алгоритмов планирования

 

К задачам алгоритмов планирования относятся:

  • для всех систем

- справедливость (каждому процессу справедливую долю процессорного времени);

- контроль за выполнением принятой политики;

- баланс (поддержка занятости всех частей системы так, чтобы, например, были заняты процессор и устройства ввода/вывода);

  • для систем пакетной обработки

- пропускная способность (количество задач в час);

- оборотное время (минимизация времени на ожидание обслуживания и обработку задач);

- использование процессора (процессор должен быть всегда занят);

  • для интерактивных систем

- время отклика (быстрая реакция на запросы);

- соразмерность (выполнение ожиданий пользователя);

  • для систем реального времени

- окончание работы к сроку (предотвращение потери данных);

- предсказуемость (предотвращение ухудшения качества в мультимедийных системах).

 

3. Планирование в системах пакетной обработки данных

Планирование в системах пакетной обработки данных может происходить по следующим алгоритмам:

1) «Первый пришел – первым обслужен»

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

2) «Кратчайшая задача – первая» (рис. 3.9)

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

 
 

Рис. 3.9. Выполнение алгоритма «Кратчайшая задача – первая»

 

3) Наименьшее оставшееся время выполнения

Аналог предыдущего, но если приходит новый процесс, его полное время выполнения сравнивается с оставшимся временем выполнения текущего процесса

4) Трехуровневое планирование (рис. 3.10)

 

Рис. 3.10. Трехуровневое планирование

 

Планировщик доступа выбирает задачи оптимальным образом (например: процессы, ограниченные процессором и вводом/выводом).

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

 

4. Планирование в интерактивных системах

 

Планирование в интерактивных системах может происходить по следующим алгоритмам:

1) Циклическое планирование

Самый простой и часто используемый алгоритм планирования. Каждому процессу предоставляется квант времени процессора. Когда квант заканчивается, процесс переводится планировщиком в конец очереди. При блокировке процессор выпадает из очереди. Пример алгоритма показан на рис. 3.11.

 

 

Рис. 3.11. Пример циклического планирования

 

Преимущества: простота, справедливость. Недостатки: при частых переключениях уменьшается производительность; при редких переключениях увеличивается время ответа на запрос.

2) Приоритетное планирование

Каждому процессу присваивается приоритет, и управление передается процессу с самым высоким приоритетом.

 

5. Планирование в системах реального времени

 

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

Внешние события, на которые система должна реагировать, могут быть периодические и непериодические (непредсказуемые).

Для планирования системы реального времени необходимо выполнение следующего условия:

 
 

 


где m – число периодических событий; Ti – время, которое уходит на обработку события; Pi – период поступления события.

Таким образом, перегруженная система реального времени является не планируемой.

 







Последнее изменение этой страницы: 2017-02-06; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 35.175.121.230 (0.011 с.)