- •Введение
- •Организация кэш-памяти
- •1. Где может размещаться блок в кэш-памяти?
- •2. Как найти блок, находящийся в кэш-памяти?
- •3. Какой блок кэш-памяти должен быть замещен при промахе?
- •4. Что происходит во время записи?
- •Принципы организации основной памяти в современных компьютерах Общие положения
- •Увеличение разрядности основной памяти
- •Память с расслоением
- •Использование специфических свойств динамических зупв
- •Виртуальная память и организация защиты памяти Концепция виртуальной памяти
- •Страничная организация памяти
- •Сегментация памяти
- •Управление вводом-выводом
- •Физическая организация устройств ввода-вывода
- •Организация программного обеспечения ввода-вывода
- •Обработка прерываний
- •Драйверы устройств
- •Независимый от устройств слой операционной системы
- •Пользовательский слой программного обеспечения
- •Системы ввода вывода Организация ввода - вывода микропроцессорного устройства
- •Ввод вывод в режиме прямого доступа к памяти
- •Ввод вывод
- •Защищенный режим
- •Дескрипторы
- •Привилегии
- •Переключение задач
- •Страничное управление памятью
- •Режим виртуального 86 (v86)
- •Характеристика системы команд процессора
- •Простые типы данных. Операции над простыми данными.
- •Машинные форматы данных.
- •Слово. Полуслово. Двойное слово.
- •Числа с плавающей запятой
- •Представление простых типов данных языков программирования
- •Вместо заключения
- •2.2 Типы данных
- •Логическое устройство компьютеров
- •1. Принцип программного управления. Из него следует, что программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности.
- •3. Принцип адресности. Структурно основная память состоит из перенумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка.
- •Основные принципы функционирования компьютеров
- •Принципы Неймана
- •Общее устройство компьютеров
- •Арифметические основы компьютера
- •Перевод чисел в десятичную систему счисления
- •Перевод чисел из десятичной системы в двоичную, восьмеричную и шестнадцатиричную
- •Перевод чисел из двоичной системы счисления в восьмеричную и шестнадцатиричную и обратно
- •Арифметические операции в позиционных системах счисления
- •Сложение
- •Вычитание
- •Триггер
- •Сумматор
- •Принципы организации основной памяти в современных компьютерах Общие положения
- •Увеличение разрядности основной памяти
- •Память с расслоением
- •Использование специфических свойств динамических зупв
- •Виртуальная память и организация защиты памяти Концепция виртуальной памяти
- •Страничная организация памяти
- •Сегментация памяти
- •Глава 5 Управление памятью
- •Глава 1. Общие принципы организации памяти эвм
Пользовательский слой программного обеспечения
Хотя большая часть программного обеспечения ввода-вывода находится внутри ОС, некоторая его часть содержится в библиотеках, связываемых с пользовательскими программами. Системные вызовы, включающие вызовы ввода-вывода, обычно делаются библиотечными процедурами. Если программа, написанная на языке С, содержит вызов
count = write (fd, buffer, nbytes),
то библиотечная процедура writeбудет связана с программой. Набор подобных процедур является частью системы ввода-вывода. В частности, форматирование ввода или вывода выполняется библиотечными процедурами. Примером может служить функцияprintfязыка С, которая принимает строку формата и, возможно, некоторые переменные в качестве входной информации, затем строит строку символов ASCII и делает вызовwriteдля вывода этой строки. Стандартная библиотека ввода-вывода содержит большое число процедур, которые выполняют ввод-вывод и работают как часть пользовательской программы.
Другой категорией программного обеспечения ввода-вывода является подсистема спулинга (spooling). Спулинг - это способ работы с выделенными устройствами в мультипрограммной системе. Рассмотрим типичное устройство, требующее спулинга - строчный принтер. Хотя технически легко позволить каждому пользовательскому процессу открыть специальный файл, связанный с принтером, такой способ опасен из-за того, что пользовательский процесс может монополизировать принтер на произвольное время. Вместо этого создается специальный процесс - монитор, который получает исключительные права на использование этого устройства. Также создается специальный каталог, называемый каталогом спулинга. Для того, чтобы напечатать файл, пользовательский процесс помещает выводимую информацию в этот файл и помещает его в каталог спулинга. Процесс-монитор по очереди распечатывает все файлы, содержащиеся в каталоге спулинга.
Системы ввода вывода Организация ввода - вывода микропроцессорного устройства
Ввод _ вывод _ это процесс обмена данными между ядром микропроцессорного устройства и периферийными устройствами. В микропроцессорном устройстве применяют три режима:
программный;
по прерываниям;
прямой доступ к памяти.
Группа бит, к которым обращается микропроцессор при вводе _ выводе, называется портом или регистром ввода _ вывода. При вводе выводе периферийные устройства представлены следующей программной моделью (рис.10).
Все реестры имеют адрес, в зависимости от конкретной реализации порты могут объединяться. Признак готовности периферийного устройства к вводу _ выводу обычно содержится в одном из разрядов порта состояния, различают изолированный и неизолированный ввод _ вывод. В первом случае в системе команд есть специальные команды ввода _ вывода, в которых содержится номер порта, указываемый во втором слове код операции ввода _ вывода. Адресное пространство портов и ячеек памяти в этом случае изолированы, так как для пересылки в память имеются особые команды. В этом случае адреса портов ввода _ вывода, некоторых, ячеек могут совпадать. Во втором случае адресные пространства едины и совпадения адресов нет. При постоянном способе ввода _ вывода инициализируется программой выполняемой в микропроцессорном устройстве. При вводе _ выводе важна проверка готовности периферийного устройства, то есть состояние определяющего бита порта состояния. В некоторых микропроцессорах, это делается независимо от вида команды и при неготовности периферийного устройства микропроцессор переходит в состояние ожидания. Тем самым достигается согласование во времени работы микропроцессора и более медленных периферийных устройств. При асинхронном вводе _ выводе в программу включаются специальные команды проверки готовности. Микропроцессор проверяет бит готовности с помощью одной или нескольких команд. Если бит установлен в единицу, то инициируется собственно ввод или вывод одного или нескольких слов данных. Если бит сброшен, то микропроцессор выполняет цикл из двух-трех команд, проверяющих состояние бита до тех пор пока периферийное устройство не будет готово к вводу выводу. Этот цикл называется циклом ожидания. Из-за него микропроцессор непроизводительно теряет время, что является главным недостатком программного ввода вывода, достоинство: простота реализации без дополнительных аппаратных затрат. Ввод вывод по прерываниям лишен недостатка программного ввода вывода и применяется при работе в реальном времени. Периферийное устройство подает сигнал `запрос прерывания' на соответствующий вход микропроцессора. Микропроцессор после выполнения текущей команды приостанавливает выполнение основной программы, вырабатывает сигнал подтверждения прерывания и переходит к подпрограмме обработки прерывания, расположенной в фиксированной области памяти. После выполнения этой подпрограммы происходит возврат к основной программе. Для реализации подпрограммы обработки прерывания в микропроцессоре должны выполнятся следующие действия:
идентификация источника прерывания;
сохранение состояния основных регистров микропроцессора с тем, чтобы обеспечить возможность возобновления прерванной программы;
собственное выполнение программы обработки прерывания;
восстановление запомненного состояния основных регистров микропроцессора;
возврат к выполнению основной программы.
Данная последовательность действий может реализоваться в двух вариантах : с опросом периферийных устройств и по вектору прерывания. Наиболее распространенным является второй способ. В этом случае в ответ на сигнал подтверждения прерывания периферийное устройство посылает в микропроцессор параллельный двоичный код, вектор прерывания по которому управление передается соответствующей подпрограмме обслуживания прерываний. При наличии нескольких периферийных устройств возможна ситуация при которой во время обслуживания запроса прерывания от одного периферийного устройства поступает запрос от другого. Если оно более приоритетно, то происходит вложение прерываний ( т.е. прерывание прерывания). Для создания систем приоритетных прерываний используются контроллеры прерываний. С помощью специальных команд запрещающих прием запроса прерывания можно управлять способностью микропроцессора реагировать на запрос прерывания, например для защиты определенных критичных по времени частей программы, некоторые прерывания, например связанные с аварией питания замаскировать нельзя.