Операционные системы

Методы обработки прерываний. Распределение оперативной памяти в Windows. Файловая система NTFS. Модель Холта для проблемы тупика. Разработка и реализация алгоритма. Защищенный режим работы процессора с точки зрения обработки прерываний. Прямой ввод-вывод.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 22.05.2012
Размер файла 334,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Минимально допустимый объем оперативной памяти, начиная с которого эти операционные системы могут функционировать, равен 4 Мбайт для Windows 95 и 8 Мбайт для Windows 98. Однако при таких маленьких объемах физической памяти пробуксовка столь велика, что быстродействие системы становится слишком малым, и практически работать нельзя.

Страничный файл, с помощью которого реализуется механизм виртуальной памяти, по умолчанию располагается в каталоге самой системы Windows и имеет переменный размер. Система отслеживает его длину, увеличивая или сокращая этот файл при необходимости. Вместе с фрагментацией файла подкачки это приводит к тому, что быстродействие системы становится меньше, чем если бы этот файл был фиксированного размера и располагался в смежных кластерах (был бы дефрагментирован). Создать файл подкачки заданного размера можно либо через специально разработанный для этого апплет (Панель управления * Система * Быстродействие * Файловая система), либо просто прописав в секции [386Enh] файла SYSTEM.INI строки с указанием диска и имени файла подкачки, например:

PagingDrive=C:

PagingFi1е=С:\PageFiIe.sys

MinPagingFi1eSize=65536

MaxPagingFi1eSize=262144

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

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

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

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

Поэтому в ряде случаев имеет смысл ограничивать «аппетит» драйвера VCache.

Сделать это можно путем редактирования все того же файла SYSTEM.INI. Только теперь нужно найти другую секцию файла -- [VCache]. В эту секцию следует добавить строки и прописать значения для максимального и минимально объемов оперативной памяти, которую операционная система будет предоставлять подсистеме кэширования.

Выглядеть эти новые строки могут, например, так.

MinFileCache=16384

MaxFileCache=65536

ChunkSize=2048

NameCache=4096

DirectoryCache=128

Назначение первой и второй строк представляется очевидным. Третья строка описывает размер блока, четвертая строка -- количество хранимых в кэше имен файлов, а последняя -- количество каталогов. Прописанные в приведенных строках значения, естественно, зависят от объема оперативной памяти, имеющейся в компьютере. В данном случае компьютер имеет 512 Мбайт оперативной памяти. Кстати, если персональный компьютер имеет более 256 Мбайт памяти, то наличие первых двух строк в секции [VCache] файла SYSTEM.INI обязательно. В противном случае из-за недальновидности разработчиков драйвера виртуального устройства VCache он может запросить у системы более 256 Мбайт памяти, причем она может выделить ему эту память. Это неминуемо приведет к критической ошибке в его дальнейшей работе и краху вычислительного процесса.

Часть 3. Файловая система NTFS

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

Целью файловой системы NTFS является следующее:

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

· Предоставление платформы дополнительной функциональности.

· Поддержка требований POSIX.

· Устранение ограничений, характерных для файловых систем FAT и HPFS.

Надежность.

Для обеспечения надежности файловой системы NTFS особое внимание было уделено трем основным вопросам: способности к восстановлению, устранению неустранимых ошибок одного сектора и экстренному исправлению.

Для обеспечения способности к восстановлению NTFS отслеживает все транзакции в отношении файловой системы. Выполнение команды CHKDSK в файловой системе FAT или HPFS служит для проверки последовательности указателей в пределах каталога, размещения и таблицы файлов. Файловая система NTFS хранит журнал операций с этими компонентами. Таким образом, для восстановления связности системы необходимо с помощью команды CHKDSK выполнить «откат» транзакций до последней точки фиксации.

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

Дополнительные функции.

Основное предназначение конфигурации операционной системы Windows NT на любом уровне является обеспечение платформы, которую можно использовать в качестве модуля при построении других систем, и NTFS не является исключением. Эта файловая система представляет собой гибкую платформу с широкими функциональными возможностями, которую могут использовать другие файловые системы. Кроме того, вNTFS полностью реализована модель безопасности Windows NT и поддержка нескольких потоков данных. Файл данных перестал быть отдельным потоком данных. Кроме того, пользователи могут добавлять собственные атрибуты файлов.

Поддержка POSIX.

Из всех поддерживаемых файловых систем NTFS наиболее полно соответствует POSIX.1. В ней реализована поддержка следующих требований POSIX.1:

· назначение имен с учетом регистра;

· согласно POSIX. README.TXT, Readme.txt и readme.txt - это разные файлы;

· дополнительная отметка времени;

· дополнительный штамп времени для сохранения времени последнего доступа к файлу;

· жесткие связи.

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

Устранение ограничений.

Во-первых, в NTFS значительно - до 2^64 байт (16 экзабайт или 18 446 744 073 709 551 616 байт) - увеличен допустимый раздел файлов и томов. В NTFS для решения проблемы фиксированного размера сектора снова применена концепция кластеров, ранее использованная в файловой системе FAT. Это было сделано для улучшения аппаратной независимости операционной системы Windows NT при ее использовании с жесткими дисками, изготовленными по другой технологии. Таким образом, была принята точка зрения, что деление диска на секторы размером 512 не всегда является оптимальным. Размер кластера определяется кратным числом единичных блоков жесткого диска. Кроме того, для задания имен файлов используется кодировка Юникод и наряду с длинными именами обеспечена поддержка формата 8.3.

Преимущества файловой системы FAT.

NTFS лучше всего подходит для использования с томами размером более 400 МБ. С увеличением размера тома производительность файловой системы NTFS не падает, как FAT.

Благодаря способности к восстановлению в NTFS отсутствует необходимость использования каких-либо программ восстановления диска.

Недостатки файловой системы NTFS.

Из-за дополнительного расхода дискового пространства файловую систему NTFS не рекомендуется использовать с томами размером менее 400 МБ. Такой расход объясняется необходимостью хранения системных файлов NTFS (в разделе размером 100 МБ для этого требуется около 4 МБ).

В настоящее время NTFS не имеет встроенного шифрования файлов. Следовательно, можно загрузить MS-DOS (или другую операционную систему) и воспользоваться низкоуровневой программой редактирования диска для просмотра хранящихся в томе NTFS данных.

С помощью файловой системы NTFS нельзя форматировать дискеты. Windows NT форматирует дискеты с помощью FAT, так как объем служебной информации, необходимой для функционирования NTFS, не помещается на дискете.

Соглашения именования в NTFS.

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

В настоящее время из командной строки можно задать имя файла длиной не более 253 символов.

Часть 4. Модель Холта для проблемы тупика. Разработка и реализация алгоритма

Предположим, что система отводит 200К основной памяти заданиям пользователей и что задание потребует или 100К или 200К памяти для своего выполнения. Допустим, что с самого начала загружены два 100К-байтовых задания, и очередь заданий всегда содержит некоторые 100К-байтовые задания. Тогда, если новое задание выбирается для загрузки сразу же после завершения какого-то задания и в качестве критерия выборки используется доступность памяти, 200К-байтовое задание никогда не будет выполняться. Это можно предотвратить без „чрезвычайных мер" с помощью задержки распределения памяти для 100К-байтовых заданий, если 200К-байтовое задание уже ожидало в течение достаточно долгого времени, Такой вид ситуации, в которой планировщик или распределитель может препятствовать процессу продолжаться до завершения, даже если это логически возможно сделать, был назван Холтом „полезным тупиком". Полезный тупик может также встретиться, например, в системе, которая присваивает наивысший приоритет самым коротким заданиям и поддерживает длинные (с большим объемом вычислений) задания в состоянии ожидания до тех пор, пока не завершатся все короткие задания.

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

· Распознавание. Каким образом можно определить при данной системе процессов, разделяющих ресурсы и взаимодействующих друг с другом, вошло ли некоторое множество из них в тупик? Одним из ключей к решению этой п роблемы, полученной из рассмотрения первых пяти примеров, является существование в графах типа „процесс-ресурс" цикла (направленного пути от некоторой вершины к ней самой).

· Восстановление. Каковы „наилучшие" способы выхода из тупика? „Чрезвычайные" системные меры необходимы, но нужно как можно меньше вторгаться в ход выполнения работ.

· Предотвращение. Главный вопрос -- как можно избежать тупика?

Теорема о тупике

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

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

Стратегия распознавания тупика состоит в моделировании наиболее благоприятного развития для каждого незаблокированного процесса при немультипрограммном (последовательном) режиме работы. Незаблокированный процесс приобретает любые ресурсы, в которых он нуждается, освобождает все свои ресурсы и затем „засыпает"; освобождение ресурсов может „разбудить" некоторые ранее заблокированные процессы.

Это продолжается до тех пор, пока не останется незаблокированных процессов.

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

Процесс P1 заблокирован, если он не способен выполнить ни одну из трех операций, определенных в последнем разделе.

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

Наиболее благоприятные действия для незаблокированного процесса pt могут быть представлены редукцией (сокращением) графа повторно используемых ресурсов:

· Граф повторно используемых ресурсов сокращается процессом pi, который не является ни заблокированной, ни изолированной вершиной, с помощью удаления всех ребер, входящих в рi и выходящих из pi.

Эта процедура является эквивалентной приобретению процессом рi неких ресурсов, на которые он выдал ранее запросы, а затем освобождению всех его ресурсов; тогда PI становится изолированной вершиной.

· Граф повторно используемых ресурсов несокращаем, если он не может быть сокращен ни одним процессом.

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

Граф сокращений представлен на рисунке.

Граф сокращений

Граф в состоянии S полностью сокращаем.

Теорема:

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

Доказательство:

Предположим, что S есть состояние тупика и процесс pi находится в тупике. Тогда для всех Т, таких, что S-->Т, pi заблокирован в Т. Так как сокращения графа идентичны для серии операций процессов, то конечное несокращаемое состояние в последовательности сокращений должно оставить процесс pi блокированным. Следовательно, граф не является полностью сокращаемым.

Предположим, что S не является полностью сокращаемым. Тогда существует процесс рi, который остается заблокированным при всех возможных последовательностях сокращений. Так как любая последовательность сокращений, оканчивающаяся несокращаемым состоянием, гарантирует, что все ресурсы типа SR, которые могут когда-либо стать доступными в действительности освобождены, то pi навсегда заблокирован и, следовательно, находится в тупике.

Подходы к разрешению проблемы тупиков

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

· стратегией предотвращения (предупреждения) тупиков;

· стратегией обхода тупиков;

· стратегией распознавания (обнаружения) тупиков и последующего восстановления .

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

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

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

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

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

алгоритм память windows прерывание

Часть 5.1 Прямой ввод/вывод

Устройства ввода-вывода.

Устройства делят на две категории (некоторые не попадают ни в одну):

· блочные устройства - информация считывается и записывается по блокам, блоки имеют свой адрес (диски)

· символьные устройства - информация считывается и записывается посимвольно (принтер, сетевые карты, мыши)

Контроллеры устройств.

Устройства ввода-вывода обычно состоят из двух частей:

· механическая (не надо понимать дословно) - диск, принтер, монитор

· электронная - контроллер или адаптер

Если интерфейс между контроллером и устройством стандартизован (ANSI, IEEE или ISO), то независимые производители могут выпускать совместимые как контроллеры, так и устройства. Например: диски IDE или SCSI.

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

Отображаемый на адресное пространство памяти ввод-вывод.

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

У многих устройств есть буфер данных (например: видеопамять).

Реализации доступа к управляющим регистрам и буферам:

· номер порта ввода-вывода - назначается каждому управляющему регистру 8- или 16-рзрядное целое число. Адресные пространства ОЗУ и устройства ввода-вывода в этой схеме не пересекаются.

Недостатки:

- для чтения и записи применяются специальные команды, например: IN и OUT

- необходим специальный механизм защиты от процессов

- необходимо сначала считать регистр устройства в регистр процессора

· отображаемый на адресное пространство памяти ввод-вывод - регистры отображаются на адресное пространство памяти.

Недостатки:

- при кэшировании памяти, могут кэшироваться и регистры устройств

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

· смешанная реализация - используется в х86 и Pentium, от 0 до 64К отводится портам, от 640 до 1М зарезервировано под буферы данных.

Прямой доступ к памяти (DMA - Direct Memory Access).

Прямой доступ к памяти реализуется с помощью DMA - контроллера. Контроллер содержит несколько регистров:

· регистр адреса памяти

· счетчик байтов

· управляющие регистры, могут содержать:

· - порт ввода-вывода

· - чтение или запись

· - единицы переноса (побайтно или пословно)

Без контроллера происходит следующее:

1. Процессор дает команду дисковому контроллеру прочитать данные в буфер,

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

3. Контроллер диска инициирует прерывание

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

С контроллером происходит следующее:

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

2. Процессор дает команду дисковому контроллеру прочитать данные в буфер

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

4. Контроллер DMA посылает запрос на чтение дисковому контроллеру

5. Контроллер диска поставляет данные на шину, адрес памяти уже находится на шине, происходит запись данных в память

6. Когда запись закончена, контроллер диска посылает подтверждение DMA контроллеру

7. DMA контроллер увеличивает используемый адрес и уменьшает значение счетчика байтов

8. Все повторяется с пункта 4, пока значение счетчика не станет равной нулю.

9. Контроллер DMA инициирует прерывание

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

Прерывания.

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

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

Контроллер прерываний - обслуживает поступающие прерывания от устройств.

1. Если необработанных прерываний нет, прерывание выполняется немедленно.

2. Если необработанных прерываний есть, контроллер игнорирует прерывание. Но устройство продолжает удерживать сигнал прерывания на шине до тех пор, пока оно не будет обработано.

Алгоритм работы:

· Устройство выставляет сигнал прерывания

· Контроллер прерываний инициирует прерывание, указывая номер устройства

· Процессор начинает выполнять обработку прерывания, вызывая процедуру

· Эта процедура подтверждает получение прерывания контроллеру прерываний

Принципы программного обеспечения ввода-вывода.

Задачи программного обеспечения ввода-вывода.

Основные задачи, которые должно решать программное обеспечение ввода-вывода:

· Независимость от устройств - например, программа, читающая данные из файла не должна задумываться с чего она читает (CD, HDD и др.). Все проблемы должна решать ОС.

· Единообразное именование - имя файла или устройства не должны отличаться. (В системах UNIX выполняется дословно).

· Обработка ошибок - ошибки могут быть отловлены на уровне контроллера, драйвера и т.д.

· Перенос данных - синхронный и асинхронный (в последнем случае процессор запускает перенос данных, и переключается на другие задачи до прерывания).

· Буферизация

· Проблема выделенных (принтер) и невыделенных (диск) устройств принтер должен предоставляться только одному пользователю, а диск многим. ОС должна решать все возникающие проблемы.

· Три основных способа осуществления операций ввода-вывода:

· Программный ввод-вывод

· Управляемый прерываниями ввод-вывод

· Ввод-вывод с использованием DMA

Программные уровни и функции ввода-вывода.

Четыре уровня ввода-вывода:

1. Уровень пользователя

2. Устройство-независимое программное обеспечение ОС

3. Драйверы устройств

4. Обработчики прерываний

Драйверы устройств.

Драйвер устройства - необходим для каждого устройства. Для разных ОС нужны разные драйверы.

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

Это одна из основных причин приводящих к краху операционных систем. Потому что драйверы, как правило, пишутся производителями устройств, и вставляются в ОС.

Драйвера должны взаимодействовать с ОС через стандартные интерфейсы. Стандартные интерфейсы, которые должны поддерживать драйвера:

· Для блочных устройств

· Для символьных устройств

Раньше для установки ядра приходилось перекомпилировать ядра системы. Сейчас в основном ОС загружают драйверы. Некоторые драйверы могут быть загружены в горячем режиме.

Функции, которые выполняют драйвера:

· обработка запросов чтения или записи

· инициализация устройства

· управление энергопотреблением устройства

· прогрев устройства (сканера)

· включение устройства или запуска двигателя

Независимое от устройств программное обеспечение ввода-вывода

Функции независимого от устройств программного обеспечения ввода-вывода:

· Единообразный интерфейс для драйверов устройств

· Буферизация

· Сообщения об ошибках

· Захват и освобождение выделенных устройств (блокирование)

· Размер блока, не зависящий от устройств

Единообразный интерфейс для драйверов устройств

Кроме интерфейса, в него также входят проблемы:

· именование устройств

· защита устройств

Обработчики прерываний.

Прерывания должны быть скрыты как можно глубже в недрах операционной системы, чтобы как можно меньшая часть ОС имела с ними дело. Лучше всего блокировать драйвер, начавший ввод-вывод.

Алгоритм:

1. Драйвер начинает операцию ввод-вывод.

2. Драйвер блокирует сам себя:

- выполнив на семафоре процедуру down

- выполнив на переменной состояния процедуру wait

- выполнив на сообщении процедуру receive

3. Происходит прерывание

4. Обработчик прерываний начинает работу

5. Обработчик прерываний может разблокировать драйвер (например, выполнив на семафоре процедуру up).

Буферизация.

Рассмотрим несколько примеров буферизации

a) Не буферизованный ввод - после ввода каждого символа происходит прерывание

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

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

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

Сообщения об ошибках.

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

Захват и освобождение выделенных устройств.

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

Независимый от устройств размер блока.

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

Программное обеспечение ввода-вывода пространства пользователя.

Функции этого обеспечения:

· Обращение к системным вызовам ввода-вывода (через библиотечные процедуры).

· Форматный ввод-вывод (меняют формат, например, в ASCII)

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

Обобщение уровней и функций ввода-вывода.

Часть 5.2 Защищенный режим работы процессора с точки зрения обработки прерываний

В защищенном режиме все прерывания делятся на два типа:

· Обычные прерывания - по команде INT и внешние прерывания;

· Исключения - аппаратные прерывания в оборудовании микропрцессора.

Для обращения к подпрограммам обслуживания прерываний создается дескрипторная таблица прерываний IDT (Interrup Descriptor Table). Эта таблица содержит системные дескрипторы - вентили прерываний, исключений и задач.

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

Программы обработки прерываний оформляются в виде задач.

Исключения в защищенном режиме:

Исключения возникают при обнаружении процессорм некорректной ситуации. Перед передачей управления обработчику исключений процессор помещает в стек (если это необходимо) 16-ти битовый код ошибки

INDEX - Содержит индекс дескриптора при обращении к которому произошла ошибка;

TI, I - Определяют какая из ТРЕХ таблиц имеется в виду (I=1 -> IDT; I=0,

TI=0 -> GDT; I=0, TI=1 -> LDT);

EXT - Устанавливается, если прерывание произошло по независящим от программы причинам - прерывание от устройства ввода/вывода или при обращении к сегменту со сброшенным битом присутствия.

Код ошибки формируется только для пяти исключений:

· 08h - двойная ошибка;

· 0Ah - недействирельный TSS;

· 0Bh - отсутствие сегмента в памяти;

· 0Ch - ошибка при работе стека;

· 0Dh - нарушение защиты памяти.

После устранения причины возникновения исключения можно перезапустить большинство команд, выполнив команду IRET (для таких команд в стек помещается ТЕКУЩИЙ адрес).

Повторно НЕ запускаются:

· 01h - прерывания для пошаговой работы;

· 08h - двойная ошибка;

· 09h - превышение сегмента арифметическим сопроцессором;

· 0Dh - нарушение защиты памяти;

· 10h - ошибка операции с плавающей точкой.

Обработка аппаратных прерываний:

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

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

Обработка программных прерываний:

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

6. ЛИТЕРАТУРА

1. Современные операционные системы. Э. Таненбаум

Размещено на Allbest.ru


Подобные документы

  • Проектирование механизма обработки прерываний. Контроллер прерываний Intel 82C59A. Ввод-вывод по прерыванию. Программируемый контроллер интерфейса Intel 82C55A. Роль процессора в обработке прерывания ввода-вывода. Обзор алгоритма обработки прерывания.

    контрольная работа [8,0 M], добавлен 19.05.2010

  • Принципы и алгоритмы обработки прерываний. Набор действий по реализации этапов обработки прерываний микропроцессора. Разработка структуры и алгоритма резидентной программы. Реализация программы на языке Ассемблер, методы её отладки и тестирования.

    курсовая работа [348,7 K], добавлен 22.12.2014

  • Принципы организации и особенности обработки прерываний на основе контроллера 8259A. Общая характеристика аппаратных средств системы прерываний PIC (Programmable Interrupt Controller). История разработки и порядок работы с технологией Plag and Play.

    курсовая работа [305,1 K], добавлен 29.07.2010

  • Прерывание и его природа. Контролер прерываний. Обработка прерываний в реальном режиме. Характеристики реального режима работы микропроцессора. Схема обработки прерываний в реальном режиме. Написание собственного прерывания. Разработка в общем случае.

    доклад [347,0 K], добавлен 22.09.2008

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

    реферат [995,8 K], добавлен 22.06.2011

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

    реферат [17,4 K], добавлен 24.12.2010

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

    реферат [35,0 K], добавлен 30.04.2010

  • Основные возможности файловой системы NTFS. Введение механизма транзакции. Модель распределения дискового пространства. Объектная модель безопасности NT. Количество файлов в корневом и некорневом каталогах. Структура и атрибуты файла в системе NTFS.

    реферат [19,8 K], добавлен 23.10.2011

  • Файловая система как "пространство", в котором размещаются файлы. Типы файлов, их логическая организация. Файловая система FAT32: структура и кластеры. Структура файловой системы NTFS, ее каталоги. Сравнительная характеристика систем FAT32 и NTFS.

    статья [436,0 K], добавлен 14.05.2010

  • Хранение файлов, доступ к ним, установка и изменение атрибутов. Операционные системы DOS, Windows 95/98/Me, Windows NT/2000/XP. Файловая система FAT 16. Уменьшение потерь дискового пространства. Количество секторов в кластере. Главная загрузочная запись.

    реферат [72,9 K], добавлен 19.01.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.