Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Понятие интерфейса, спецификации интерфейса

Любой интерфейс связан либо с абстрактной машиной, либо с некоторым классом объектов. Он представляет пользователю инструкцию 3-х типов:

1) структура данных

2) Процедуры

3) 3) правила пользования этими процедурами

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

Например:

1) ограничения на доступ к данным (только для чтения)

2) Ограничения на порядок выполнения процедур

3) Режим одновременного выполнения процедур или одновременного доступа к данным.

Пример спецификации интерфейса для процедур языка PASCAL

Динамическое выделения памяти.

Имя процедуры

GetMem (p,size)

Описание процедуры

Производит динамическое выделения памяти размера Size в куче (оставшееся от выделения стека для пок и сегмента данных для поб). Указатель на выделенную память присевается переменной p.

Формальные параметры:

Size – размер значения типа word, определяет размер требуемой памяти в битах.

Выходные параметры:

p- переменная типа pointer, которой присваивается длинный указатель на выделенную память.

Ошибки:

Если память требуемых размеров выделить не удалось, то параметр p получает значение nil (нулевой адрес)

Побочные эффекты: нет

Замечание:

Выделенная данной процедурой память должна быть освобождена процедурой FreeMem

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

Для учета ошибок исходя из спецификации используется как правило 2 метода:

1. просмотр кодов ошибок.

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

2. Присоединение процедуры обработки.

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

Организация простейшей ОС для одного пользователя исходя из метода нисходящей декомпозиции (МНД)

Рассмотрим на основе концепции МНД пример организации минимальной ОС представляемой для управления микро ЭВМ.

Спецификация и общая организация

I Функции системы

1. под управлением ОС в составе персонального компьютера находится процессор, оперативная память, периферийное устройство (экран, клавиатура, дисководы, принтеры).

Процессор обеспечивает согласованную работу всех устройств(возможность ПДП отсутствует)

2. ОС решает следующие задачи

а) сохранение информации в файлах на дискетах

б) обмен информации между файлами и периферийными устройствами (ПУ).

в) создание, отладка, хранение и эксплуатация программ.

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

II Пользовательский интерфейс

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

<команда>::=<имя команды>{<параметр>}

<имя команды>::=<имя базовой команды>|<имя файла, содержащего выполняемую команду>

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

В целом структура подобной ОС выглядит следующим образом:

Машины Функции Интерфейсы
Пользователь   Командный язык
интерпретатор командного языка (ИКЯ) Интерпретация команд Операция над файлами и потоками
Система управления файлами (СУФ) Управления файлами Примитивный ввод вывод
Машина ввода вывода (МВВ) Управление ввода вывода Машинный код
Физическая машина (ФМ) Физическая машина  

Абстрактная машина, которая представляет внешней интерфейс пользователю, называется ИКЯ –интерпретатор командного языка.

Общая схема работы ИКЯ представляется бесконечным циклом и выглядит следующим образом

Инициализировать_систему;

While true do

Begin

Инициализировать_команду;

Прочитать_команду;

If команда_правельная then

begin подготовить_среду_выполнения;

начать_выполнение;

end

else диагностика_ошибки;

end.

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

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

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

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

Система управления файлами.

Логическая организация

Для обнаружения файлов 2 уровневая схема.

Имя файла имеет вид:

<имя носителя>:<идентификатор>.<тип>

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

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

Физическая организация.

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

N- блоков

Таблица занятости, N битов, каждый бит соответствует своему блоку

Если блок свободен (вес), то таблица занятости 00000000

таблица занятости 11110000

Удаляем 2 файл, получаем

таблица занятости 11010000

Если другой файл записать большего размера.

таблица занятости 11111000

 

Получаем фрагментацию файла. Увеличивая механическую работу поиска.

Даже если будет записан 1 бит, будет занят целый блок и туда записать будет еще что-то нельзя.

Поиск свободного блока заключается в определении первого нулевого бита в таблице занятости, его номер совпадает с номером искомого блока.

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

1) имя файла (идентификатор и тип)

2) размер файла (число записей в нем)

3) номер ближайшей записи, предназначенного для чтения или записи)

4) таблица размещения данного файла

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

Файлы больших размеров называемые многосекционными могут быть построены за счет организации сцепления между собой ряда дескрипторов. FAT(file allocation table – 16, 32 битный)

Дескрипторы всех файлов дискеты располагаются в специальной зоне, совокупность этих дескрипторов образует каталог (директиву) тома.

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

Операции над файлами осуществляются следующем образом. При открытии файла происходит загрузка его дескриптора в предварительно выделенную область оперативной памяти.

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

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

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

Каталог и таблица занятости пересматриваются.

Машина ввода вывода.

Физическая организация.

Для упрощения будем считать, что формат диска фиксирован, диск разбит на N дорожек, каждая дорожка содержит n – секторов, каждый сектор содержит m байтов.

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

Предположим, что необходимо причитать сектор с номером nсект на дорожке с номером нд. Если один из буферов содержит эту дорожку, чтение происходит без обращения к диску с использованием соответствующего сектора из буфера.

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

Буфер копируется на диск только в 2 случаях:

1. когда буфер переназначается для загрузки новой дорожки в память

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

Стратегия выбора буфера.

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

В первую очередь – выбирается свободный, еще неиспользованный буфер

Во вторую очередь заменяемый буфер ни изменявшийся во времени заполнения.

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

 

<== предыдущая лекция | следующая лекция ==>
Метод нисходящей декомпозиции | Понятие процесса. Понятие процесса дает возможность моделировать активное состояние непрерывного выполнения программы на машине
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 1282; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.043 сек.