Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
12. Буферный ввод-вывод. Так как скорости работы центрального процессора и периферийных органов сильно различаются, применяют «буферизацию» ввода-вывода. Буфер специальная область памяти которая служит передаточным звеном между программой пользователя и ПУ, используется для временного хранения передаваемых данных. Программа пользователя, обменивались данными с ПУ на самом деле считывает или записывает данные в буфер. В свою очередь буфер служит источником или приемником информации для ПУ. Например: для обмена данных между центральным процессором и магнитным диском используется буфер в оперативной памяти, а для вывода данных на принтер может быть использована буферизация на диске. Для изучения буферного ввода-вывода рассмотрим упрощенную модель, описываемую следующими спецификациями: при обмене с периферийными устройствами используются записи фиксированной длины; размер буфера фиксирован и составляет N записей; для программы пользователя обмен с буфером должен имитировать обмен с периферийным устройством, следовательно, должен сохраняться порядок передачи информации между буфером и периферийным устройством и ни одна запись не должна быть потеряна; бесполезное ожидание должно быть сведено к минимуму как для центрального процессора, так и для периферийного устройства; возможности носителей не ограничены: при чтении постоянно обеспечивается данными устройство ввода, при записи - устройство вывода; будем считать для нашей модели, что передача осуществляется без ошибок. В качестве буфера используется структура, работающая по принципу FIFO(первый вошел первый вышел), для работы с очередью будем использовать следующие функции: Поместить (запись, буфер) поместить запись в буфер; Изъять (запись, буфер) Изъять запись из буфера; Состояние очереди определяется переменными: Буфер_пустой, Буфер_полный. Состояние передачи канала или ПДП определяется переменной: Передача
Запрос прерывания от канала процессору проступает по окончанию передачи очередной записи.
ПРОЧИТАТЬ(ЗАПИСЬ) {--вызов супервизора--}
If not БУФЕР_ПУСТОЙ then
begin
ИЗЪЯТЬ(ЗАПИСЬ,БУФЕР); If not ПЕРЕДАЧА then ЗАПУСТИТЬ_КАНАЛ;
end;
else
begin
If not ПЕРЕДАЧА then ЗАПУСТИТЬ_КАНАЛ; ОЖИДАНИЕ:=true; Сохранить контекст, перейти к другой активности end
{--обработчик прерывания--}
if not БУФЕР_ПОЛНЫЙ then Запустить_канал;if ОЖИДАНИЕ
then
Begin
:
Востоновить контекс, повторить чтение записи
:
End;
15. Понятие интерфейса, спецификации интерфейса.
Любой интерфейс связан либо с абстрактной машиной, либо с некоторым классом объектов. Он представляет пользователю инструкцию 3-х типов:
Обычно правила пользования отражают структуру и ограничения на данные и процедуры и могут принимать разные формы.
Например:
Пример спецификации интерфейса для процедур языка PASCAL
Динамическое выделения памяти.
Имя процедуры
GetMem (p,size)
Описание процедуры
Производит динамическое выделения памяти размера Size в куче (оставшееся от выделения стека для пок и сегмента данных для поб). Указатель на выделенную память присевается переменной p.
Формальные параметры:
Size размер значения типа word, определяет размер требуемой памяти в битах.
Выходные параметры:
p- переменная типа pointer, которой присваивается длинный указатель на выделенную память.
Ошибки:
Если память требуемых размеров выделить не удалось, то параметр p получает значение nil (нулевой адрес)
Побочные эффекты: нет
Замечание:
Выделенная данной процедурой память должна быть освобождена процедурой FreeMem
Проблема представлений спецификации интерфейса не имеет в настоящие время достаточно удовлетворительного общего решения, наиболее распространенных способов выражения спецификации является естественный язык. Часть спецификации может быть выражена формальным образом и поддается автоматической верификации. Это как правило спецификации типа переменных, параметров процедур и т.д.
Для учета ошибок исходя из спецификации используется как правило 2 метода:
Здесь в каждую процедуру вводится дополнительный параметр код ошибки, этот параметр может быть изменен процедурой и его конечное значение указывает на результат завершения процедуры.
Здесь с каждой потенциально возможной ошибкой связывается специальная процедура, как только возникает ошибка на соответствующий механизм автоматически вызывает эту процедуру.
17. Организация простейшей ОС для одного пользователя: машина ввода вывода.
Физическая организация.
Для упрощения будем считать, что формат диска фиксирован, диск разбит на N дорожек, каждая дорожка содержит n секторов, каждый сектор содержит m байтов.
Сектор представляет собой единицу передачи информации. При обмене данными с диском используется буферизация в частности, удобно считать содержимое всей дорожки сразу. Т.к. в этом случае для всех секторов дорожки возникшей лишь одна задержка т.о. можно зарезервировать k буферов, имеющих объем одной дорожки каждый буфер.
Предположим, что необходимо причитать сектор с номером nсект на дорожке с номером нд. Если один из буферов содержит эту дорожку, чтение происходит без обращения к диску с использованием соответствующего сектора из буфера.
Операция записи выполняется немного сложнее. Для уменьшения числа передач буфер копируется на диск как можно позже. Все то время пока можно находится в буфере, буфер отражает текущее состояние секторов дорожки и последовательное обращение к сектору не влекут за собой обращение к диску. Предположим что надо произвести запись в сектор nсект дорожки нд. Если дорожка нд представлена в каком либо из буферов соответствующий сектор изменяется и на этом операция заканчивается, если дорожка не представлена в буфере она предварительно считывается в буфер и далее операция сводится к предыдущей операции.
Буфер копируется на диск только в 2 случаях:
Стратегия выбора буфера.
Алгоритм переназначения буфера основан на свойстве локальности ссылок: вероятность обращения к некоторой инструкции тем больше, чем ближе по времени ее предшествующее использование. Т.о. буферы хронологический упорядочиваются по времени последних обращений к ним. Если нужен новый буфер, он выбирается по следующему порядку:
В первую очередь выбирается свободный, еще неиспользованный буфер
Во вторую очередь заменяемый буфер ни изменявшийся во времени заполнения.
В третью очередь буфер среди оставшихся, который имеет самую раннюю ссылку на обращение к нему (дольше всего не использовавшийся).
система управления файлами.
Логическая организация. Для обнаружения файлов 2 уровневая схема. Имя файла имеет вид:
<имя носителя>:<идентификатор>.<тип>
Имя носителя идентифицирует физический носитель файла (используемый дисковод). В самой дискете или томе схема наименований плоская 2х параметрическая где тип обозначает природу файла, идентификатор именует сам файл. Организация файлов является последовательно для записи фиксированного размера. Система предоставляет способы последовательного доступа к записям, все остальные функции доступа должны конструироваться на основе этих базовых.
Физическая организация. Единицей размещения данных на носителя является блок, который представляет собой совокупность фиксированного числа последовательных секторов, выделения соответствующих частей дискеты описывается с помощью таблицы занятости, которая связывает с каждым блоком 1 бит, т.е.
N- блоков
Таблица занятости, N битов, каждый бит соответствует своему блоку
Если блок свободен (вес), то таблица занятости 00000000…
1 файл
2 файл
3 файл
таблица занятости 11110000
Удаляем 2 файл, получаем
1 файл
3 файл
таблица занятости 11010000
Если другой файл записать большего размера.
1 файл
3 файл
таблица занятости 11111000
Получаем фрагментацию файла.
19. Понятие процесса
Понятие процесса дает возможность моделировать активное состояние непрерывного выполнения программы на машине.
Пусть время, в течение которого прослеживается изменение состояния машины, представляется параметром , принимающим последовательность возрастающих дискретных значений, которые выбираются в начале и конце выполнения каждой инструкции, т.е. в точках
Событием назовем состояние машины, наблюдаемое в некоторый момент времени .
События позволяют отмечать изменения состояния машины. Начало и конец каждого действия являются событиями, соответствующие числовые значения параметра которых обозначим и ; имеем .Последовательность действий , для каждого элемента которой , называется последовательным процессом или просто процессом.
Процесс можно описать рядом следующих друг за другом событий: . Такая последовательность данных и состояний машины называется временным следом (историей или трассой) процесса.
Контекстом процесса назовем ту информацию, которую действия процесса могут проверять или изменять.
Контекст процесса, связанного с выполнением программы, включает: