В. Столлингс - Операционные системы, страница 6
Описание файла
DJVU-файл из архива "В. Столлингс - Операционные системы", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 6 - страница
В идеале основная память должна была бы производиться по той же технологии, что и регистры процессора, чтобы время цикла па. и.ла памяти было сравнимо со временем цикла процессора. Однако эта стратегия привод иво ит к слишком большим затратам. Решением проблемы стало использование принципа локализации, при котором между процессором и основной памятью помещается память с небольпюй емкостью и быстрым временем доступа, а именно — кэш.
Принципы работы кэша Кэш предназначен для того. чтобы приблизить скорость доступа к памяти " максимально возможной, и в то же время обеспечить большой объем памяти цене более дешевых типов полупроводниковой памяти. Эта концепция представлена на рис. 1.16. Итак, наряду с относительно большой и более медле"ной основной памятью у нас есть кэш, обладающий меньшей емкостью, но " меньшим временем доступа. В кэше хранится копия фрагмента основной па"ти. Когда процессор пытается прочесть слово из памяти, выполняется проерка на наличие этого слова в кэше. Если оно там есть, слово передается про- цессоРУ.
Если же его там нет, в кэш считывается блок основной памяти, со- ~~" щий из слов с определенными адресами. Вследствие локализации ращений при считывании в кэш блока данных, содержащего одно из требуех слов, последующие обращения к данным с высокой вероятностью тоже ут выполняться к словам из этого блока.
Гл лава 1. Обзор компьютерных систем Фдтес памятн Блок Рис. 1ЛВ. Кзш и основная память ,к — длина — м слова 61 Основная память Часть 1. Основные понят На рис. 1.17 показана структура основной памяти и каша. Основная- мять состоит из 2" адресуемых слов каждое из к т е з которых характеризу ' своим уникальным и-битовым адресом. Предполагае с гается, что вся память,' 'Г', стоит из определенного количества блоков фиксиров н й ванно длины, в ка из которых входит К слов. Таким образом всего име М =2"уК э имеется М =2 уК бло" Нэш состоит из С слотов, по К слов в каждом. При эт ри этом количество сл ' намного меньше количества блоков (С«Х)4. Некотор екоторое подмножество бл основной памяти хранится в слотах каша.
Если ели нужно прочесть из па слово из какого-то блока, которого нет в каше, каше, то этот блок передаетс один из слотов кэша. Из-за того что блоков боль 1 ольше, чем слотов, нельзя крепить за каждым блоком свой слот. Поэтому к . й му кажды слот должен со ' жать дескриптор, идентифицирующий хранящийся в нем блок, В роли д эиптора обычно выступает число, состоящее из старши б х итов адреса, и; вему происходит обращение ко всем адресам, которые начинаются этой :ледовательностью битов. Рассмотрим п той :к ипто ы— рост й пример, в котором адреса состоят из шести би т й ' т итов,а : р р — из двух. Дескриптор 01 указывает на то, что в слоте наход ИО1ОО 0101 'лок, в который входят следутощие адреса: 010000, 010001 010010 01, 010110, 010111, 011000, 011001, 011010, 011011 0111 ~11101, 011110, 011111. Ф На ис.
1.1 р ..18 показана блок-схема операции чтения слова из пам 1роцессор генерирует адрес слова, которое нужно прочесть. Если это сл ранится в каше оно пе о передается процессору. В противном случае блок, ержащий это слово заг ружается в кэш, и слово передается процессо ле загрузки блока в кэш. ору имвол «оэначаепт "намного меньше, чем . а символ > > означает нанна Ф Рис. 1ЛУ.
Сптрукптура кэтиа и основной памяти 1лава 1. Обзор компьютерных систе~ Обратиться к блоку основной памяти, в котором седерхамн запрошенное слово Содержится ли блок с зтим словом в каше? Получить из кжа запрошенное слова и передатьего процессору Выбрать слет каша для загрузки блока основной памяти Выполняется параллельна Загрузить блок основной памяти в слет катав Конец работы Рис. 1.к8. Операция кптения из канта е Размер кэша; е размер блока; ° функция отображения; ° алгоритм замещения; ° стратегия записи. С такой характеристикой, как размер каша, мы уже знакомы. Оказывае то даже сравнительно маленький кэш может оказать значительное влияние Роизводительность компьютера.
Другим важным параметром является разм пока з , задающий величину порции данных, которая передается из основной Внутреннее устройство кэша В,данной книге внутреннее устройство кэша подробно не рассматривае " 3 этом разделе кратко перечислены лишь основные его элементы. В дальней ~итатель сможет убедиться, что при изучении устройства виртуальной пзмя ~искового каша мы имеем дело с похожими вопросами.
Все их можно разбить ледующие категории: тн в в кэш. При увеличении размера блока в соответствии с принципом локали- ацни обращений растет результативность поиска, поскольку в кэш попадает тыне полезных данных. Однако есть некое предельное значение, при превы° торого результативность поиска начинает уменьшаться. Это происходит гда вероятность использования вновь считанных данных становится да, ко ем вероятность повторного использования данных, которые необходи- меньнте, ч злить из кэша, чтобы освободить место для нового блока. мо уд — '" ч П считывании в кэш нового блока данных функция отображения опредеПри считы лнет* како -ое место будет отведено для этого блока. Разрабатывая эту функцию, необходимо У ' мо учитывать два фактора, накладываюгцих на нее определенные огра- ничения.
. Во-первых при считывании блока, вероятно, он заменит другой блок в . Хотелось бы сделать это таким образом, чтобы свести к минимуму вероят- кэкне. ность тог , того что заменяемый блок понадобится в ближайшем будущем. Чем более гнбкон яв " является Функция отображения, тем больше возможностеи для разработ- ки таког .ого алгоритма замены который бы позволил увеличить результативность к поиска, Во-вторых, с увеличением гибкости функции отображения должны ус- ложняться схемы, позволяющие определить наличие в кэше требуемой инфор- мации и обеспечить ее поиск.
При загрузке блоков в кэш в конце концов наступает момент, когда все слеты заполняются и новый блок нужно записывать на место, занятое каким-то другим блоком. Выбор этого блока осуществляется в соответствии с алгоритмом замещения, на который накладывает ограничения отображающая функция. При этом желательно было бы убрать именно тот блок, который, скорее всего, не по- надобится в ближайшем будущем.
Хотя достоверно определить его невозможно, достаточно эффективной стратегией является замена блока, к которому дольше всего не было обращений. Такая стратегия называется политикой недавнего ис- пользования блока (1еав1-гесеп$1у-ттзес1 — ЬВБ). Для определения используемости блоков необходим соответствующий аппаратно реализованный механизм.
Перед изменением содержимого слота каша его старое содержимое необхо- димо записать в основную память. Случаи, когда нужно выполнять операции за- писи, определяются стратегией записи. Одним из предельных случаев является такой, когда запись производится при каждом обновлении блока.
В другом слу- чае запись производится только при замене данного блока новым. Такая страте- гия сводит к минимуму количество операций записи в память, но при этом в блоках основной памяти содержится устаревшая информация, что может при- вести к ошибкам при многопроцессорной работе, а также при прямом доступе к памяти со стороны модулей ввода-вывода.
Возможны три метода выполнения операций ввода-вывода: программируемый ввод-вывод; ввод-вывод с использованием прерываний; прямой доступ к памяти (й.гесс птепюгу ассеев — ПМА). О Часть 1. Основные поняти дава 1. Обзор компьютерных систем $4 й Ю~ Ф г~ й Й Ф ~ % 3 ОФ Я 'О л % С3. о Ф в фЖ фО$ 1 Про*раммируемый ввод-вывод "'=".''-,.'..';.'',-'..-'; Когда процессору при выполнении программы встречается команда, свя ~ая с вводом-выводом, он выполняет ее, передавая соответствующие ко контроллеру ввода-вывода. При программируемом вводе-выводе это устрой, выполняет требуемое действие, а затем устанавливает соответствующие би ": эегистрах состояния ввода-вывода.
Контроллер ввода-вывода больше не посыл' процессору никаких сигналов, в том числе и сигналов прерываний. Таким об юм, ответственность за периодическую поверку состояния модуля ввода-в внесет процессор; он должен производить проверку до тех пор пок р, пока опер ьвода-вывода не завершится. При использовании такого метода процессор отвечает за извлечение из осно щмяти данных, предназначенных для вывода, и размещение в ней данных, и тившнх с устройств ввода.
Программное обеспечение для ввода-вывода разраба ,тся таким образом, что процессор непосредственно управляет операциями в вывода, включая опознание состояния устройства, пересылку команд чтенияс передачу данных. Таким образом, в набор используемых команд входят ком ~вода-вывода, принадлежащие следующим категориям. е Управление. Команды этой категории истюлъзуются для того, чтобы вести внешнее устройство в действие и сообщить ему„что нужно дел Например, блоку с магнитной лентой можно отдать команду перемотки перемещения вперед на одну запись.
е Состояние. Используется для проверки состояния контроллера ввода-вы и соответствующих периферийных устройств. ° Передача. Используется для чтения и/или залиси данных в регистры проц ра и внешние устройства и из регистров процессора и внешних устройств. На рис. 1.19 приведен пример использования программируемого вво ывода для считывания в память блока данных, поступивших из внешнего у ойства (например, записи с магнитной ленты). Данные считываются по одн лову.
При считывании каждого слова процессор должен выполнять цикл и ерки состояния, пока он не обнаружит, что это слово уже доступно в регис ' анных модуля ввода-вывода. На приведенной блок-схеме видны основные остатки такого метода: процессор выполняет большое количество операций Э ,к рых можно было бы избежать; теряется много времени. ~вод-вывод с иснользованием прерываний Проблема программируемого ввода-вывода состоит в том, что процесс элжен долго ждать, пока контроллер ввода-вывода будет готов читать или пр ' имать новые данные. Во время ожидания процессор должен постоянно прои злить оп ос чтобы а р, б узнать состояние модуля ввода-вывода.
В результате знач ' -'льно падает производительность всей системы. При альтернативном подходе процессор может передать контроллеру к . аиду ввода-вывода, а затем перейти к выполнению другой полезной работы ~тем, когда контроллер ввода-вывода снова будет готов обмениваться данны процессором, он прервет процессор и потребует, чтобы его обслужили. Процес 'Р передает ему новые данные, а затем возобновляет прерванную работу. х 3 х е Щ М 3 н о о М Ф, Ф> й„ Часть 1.
Основные поняти 65 Часть 1. Основные понят Рассмотрим для начала, как все это выглядит с точки зрения ко лера ввода-вывода. Сначала он получает от процессора команду ВЕА0 и ходит к считыванию данных из связанного с ним периферийного устрой Как только эти данные поступят в регистры контроллера, он посылает цессору по шине управления сигнал прерывания и ожидает, когда проце запросит эти данные.