Структура и основные компоненты вычислительной системы - polpoz.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Архитектура системы 1 181.41kb.
Миф, религия и мудрость. Специфика, основные проблемы, методы и структура... 1 74.6kb.
Научно-образовательный материал Организация курсов повышения квалификации... 1 132.14kb.
Предмет анатомии, место в ряду биологических дисциплин и в медицине. 1 286.79kb.
Профессор, д ф. м н В. А. Топчий 2010 г 1 49.2kb.
Апреля 2013 года г. Днепропетровск, Украина 1 64.46kb.
Основные понятия система прерываний условного процессора 1 91.84kb.
Вопросы к экзамену Системный подход в педагогике. Понятие и структура... 1 25.15kb.
С. Б. Лавриненко, О. А. Нестеренко, А. Л. Шумеев 1 142.92kb.
1. Основные классы неорганических соединений: структура, номенклатура... 1 34.93kb.
Программапсиходиагностического исследования особенностей компонентов... 3 430.66kb.
Опалисцентная жидкость белого цвета которая при хранении расслаивается... 1 21.43kb.
1. На доске выписаны n последовательных натуральных чисел 1 46.11kb.

Структура и основные компоненты вычислительной системы - страница №1/1




Структура и основные компоненты вычислительной системы

Лекция №1 I. Структура и основные компоненты вычислительной системы Работая на машине, мы взаимодействуем не с аппаратной реализацией, а спрограммным обеспечением. Вычислительная система - объединение программных и аппаратных средств,которые предоставляют услуги пользователю. Структура организации вычислительной системы (ВС):|Прикладные программы ||Системы программирования ||Управление логическими устройствами ||Управление физическими устройствами ||Аппаратные средства |I. Аппаратные средства. Ресурсы ВС разделяются на два типа: 1. не участвующие в управлении программой (объем винчестера и т.д.). 2. участвующие в управлении программой (размер ячейки памяти, объем оперативной памяти, скорость выполнения команд). Ресурсы второго типа называются физическими ресурсами аппаратуры.II. Управление физическими устройствами. Управление физическими устройствами осуществляют программы,ориентированные на аппаратуру, взаимодействующие с аппаратными структурами,знающие "язык" аппаратуры.III. Управление логическими устройствами. Этот уровень ориентирован на пользователя. Команды данного уровня независят от физических устройств, они обращены к предыдущему уровню. На базеэтого уровня могут создаваться новые логические ресурсы.IV. Системы программирования. Система программирования - это комплекс программ для поддержки всеготехнологического цикла разработки программного обеспечения.V. Прикладное программное обеспечение. Прикладное программное обеспечение необходимо для решения задач изконкретных областей. Операционная система (ОС) - программа, обеспечивающая взаимодействиепользователя с ВС, а также управляющая ресурсами ВС (логическими ифизическими). К ОС мы будем относить второй и третий уровень нашейпирамиды.Структура ЭВМ:[pic] Основной функцией центрального процессора (ЦП) является обработкаинформации и взаимодействие с устройствами. Обмениваться данными ЦП можеттолько с ОЗУ (Оперативно Запоминающее Устройство). В ОЗУ размещается выполняемая в данный момент программа. ОЗУ состоитиз ячеек памяти. Каждая ячейка имеет свой уникальный адрес, и каждаяразбита на два поля: поле внутрисистемной информации (которое, например,может содержать бит четности) и машинное слово, содержащее команду илиданные. Машинное слово состоит из некоторого количества двоичных разрядов,которое определяет разрядность системы. ЦП выбирает из ОЗУ последовательность команд для выполнения. ЦПсостоит из двух компонентов: 1. Устройство Управления (УУ) принимает очередное слово из ОЗУ и разбирается - команда это или данные. Если это команда - то УУ выполняет ее, иначе передает АУ. 2. Арифметическое Устройство (АУ) занимается исключительно вычислениями. УУ работает с регистровой памятью, время доступа к которой значительнобыстрее, чем к ОЗУ, и которая используется специально для сглаживаниядисбаланса в скорости обработки информации процессором и скорости доступа кОЗУ. Лекция №2 Мы определили, что вычислительная система (ВС) это некотороеобъединение аппаратных средств, средств управления аппаратурой(физическими ресурсами), средств управления логическими ресурсами, системыпрограммирования и прикладное программное обеспечение.|Прикладные программы ||Системы программирования ||Управление логическими устройствами ||Управление физическими устройствами ||Аппаратные средства | Мы определили, что нижний уровень - это чисто аппаратура, это то,что делается из металла, пластика и прочих материалов, используемых дляпроизводства железа, или hardware компьютера. Следующий уровень это программы, но программы, ориентированные накачество и свойства аппаратуры. Эти программы и разработчики этих программдосконально знают особенности управления каждого типа из аппаратныхкомпонентов. Нижний уровень между физическим уровнем и аппаратурой - этоинтерфейс этого управления, это есть некоторые наборы команд управленияфизическими ресурсами, т.е. каждое устройство имеет свой язык или свойнабор команд управления. Следующий уровень - это уровень, который ориентирован на сглаживаниеаппаратных особенностей. Он целиком и полностью предназначен для созданияболее комфортных условий в работе пользователя. Если предположим мыработаем с устройством внешней памяти «жесткий магнитный диск», топараметрами, которые характерны для конкретного диска, могут быть,предположим, сколько считывающих и записывающих головок имеет этоустройство, сколько поверхностей, на которых находится хранящий информациюслой. И, соответственно, набор команд управления этого устройстваориентирован на эти параметры. И конечно, вам, как программистам, неинтересно работать в терминах: считать бит со второй поверхности десятогоцилиндра такой-то дорожки. Это тяжело и неинтересно. Этот уровеньлогических ресурсов создает некоторое обобщенное устройство одно на всюсистему, и пользователь работает в терминах этого обобщенного устройства. Ауже программы логического уровня разбираются к какой из программ управленияфизическими устройствами надо обратиться чтобы запрос пользователя клогическому устройству правильно оттранслировать к конкретному физическомуустройству. Мы говорили о том, что в разных текстах либо два уровня управления -логический и физический, либо три - логический, физический и системапрограммирования, относят к операционной системе. Мы далее будем считатьоперационной системой два уровня - логический и физический. Мы началирассматривать основные свойства этой иерархии, которую объявили инарисовали достаточно простую и традициоонную схему или структурувычислительной машины:[pic] Это процессорный элемент, т.е. устройство, которое перерабатываетинформацию, это оперативная память (Оперативное Запоминающее Устройство,ОЗУ), и устройства управления внешними устройствами (УУВУ). Мы определилиосновное качество оперативное памяти: именно в оперативной памяти лежитисполняемая в данный момент программа, и процессор все последующие командыисполняемой программы берет из оперативной памяти. Если чего-то не хватает,идет запрос к внешним устройству, информация подкачивается в оперативноуюпамять, и опять-таки из оперативной памяти команды поступают в процессор наобработку. В принципе внешнее устройство можно реализовать на оперативнойпамяти. Если вы знаете, есть такая замечательная программа, котораяназывается MS-DOS. Эта операционная система (хотя она классически неявляется операционной системой) имеет ограничения на размер используемойпамяти 640Кб. А аппаратура реальных машин на сегодняшний день может иметьфизическую оперативную память существенно больших размеров. В этой системеможно создавать логический диск, который размещается на оперативной памяти.Т.е. по всем интерфейсам работа с ним будет осуществляться как с жесткимдиском, но размещаться он будет на оперативной памяти. И здесь разница втом, что из тех 640Кб процессор берет команды на исполнение, а изоставшихся, которые мы объявили логическим диском, не берет, потому что онбудет работать с ним как с обычным жестким диском или любым другимносителем. Мы с вами начали более подробно говорить о процессоре изафиксировали одну из основных проблем, которая имеет место быть в областивычислительной техники. Она формулируется так - это несоответствие вскоростях доступа и обработки информации, различных компонентоввычислительной системы. Почему - у каждого компонента есть свояпредыстория. Где-то это просто реально медленное устройство, где-то влияетна эту скорость вина проводников, которые находятся между процессорнымэлементом и конкретным устройством. Для каждого случая причина своя. Но этоесть проблема. То, что реальная оперативная память на порядки болеемедленна, чем скорость обработки информации в процессоре. И здесь возникаетв общем сумасшедшая проблема: зачем нам повышать производительностьпроцессора, если доступ к памяти (а мы все время что-то берем из памяти,так как работа процессора это обработка информации, которую он берет изпамяти) если доступ к памяти у нас настолько замедлен. Т.е. гарантировано,если ничего не будет сделано конструктивно, то скорость всей системы будетравняться скорости работы компонента, имеющего наименьшую скорость. Регистры. Мы начали смотреть, какие конструктивные решения есть ваппаратуре вычислительной системы, которые предназначены для сглаживанияэтого дисбаланса. И первое о чем мы начали говорить - это регистры. Впроцессоре имеются устройства, способные хранить некоторую информацию. Кэтим устройствам возможен доступ прямым или косвенным способом изпрограммы, выполняемой на машине. При этом есть группа регистров, которыеназываются регистрами общего назначения, которые доступны из всех команд.Эти регистры могут обладать свойством обработки и хранения и обработкиопределенных типов данных - это могут быть вещественные данные, короткиецелые данные, которые используются, предположим, для индексирования, этомогут быть длинные целые данные. При этом скорость доступа к регистрамобщего назначения соизмерима со скоростью обработки информации впроцессоре. При умелом программировании, можно использовать регистры общегоназначения в целях сокращения числа обращений к оперативной памяти. Этоозначает, что торможение на участке процессор-оперативная памятьсокращается. Рассмотрим другие группы регистров. Специальные регистры. К этой группе относятся две подгруппырегистров. 1. Первая подгруппа - это регистры, отвечающие за состояниеисполняемой программы. К этим регистрам относится счетчик команд. Этотрегистр содержит адрес исполняемой в данный момент команды. Это тот самыйрегистр, который можно изменять только косвенно, передав управление куда-то. Второй регистр из этой же подгруппы - регистр результата (flags),содержащий результат выполнения последней команды. По значению этогорегистра можно организовывать те или иные действия. К этой подгруппеотносится также регистр указателя стека. Есть команды, которые работают состеком. Эти команды обычно используются для программирования переходов из ив функцию. Стек в системе используется для передачи параметров иорганизации автоматической памяти. Это память, которая занимаетсяотносительно вершины стека при входе в функцию, и, при выходе, онаосвобождается. Поэтому в автоматических переменных нельзя хранить данныепосле выхода из функции. 2. Вторая подгруппа регистров - это регистры управления компонентамивычислительной системы, или управляющие регистры. Практически в любойвычислительной системе имеются регистры, предназначенные для организациивзаимосвязи процессора с внешним миром. Эти регистры связываются с УУВУ ичерез эти регистры процессор может организовывать управление внешнимиустройствами. Например, если возьмем регистр управления жесткого диска, тоу него могут быть следующие поля: 1) Поле, указывающее кому предназначена информация на этом регистре в данный момент времени (процессору или диску). 2) Если эта команда находится в формате от процессора к устройству, в нем может находиться код операции управления устройством, могут находиться некоторые операнды и т.д. Устройство пытается выполнить эту команду, и по результату ее выполнения возвращается результат тоже в управляющий регистр (это может быть информация о том, что обмен закончен успешно, или обмен незакончен и причина этого). Система прерываний. К средствам, управляющим взаимосвязью с внешнимиустройствами, можно отнести систему прерываний. В каждой вычислительноймашине имеется предопределенный, заданный при разработке и производстве,набор некоторых событий и аппаратных реакций на возникновение каждого изэтих событий. Эти события называются прерываниями. Аппарат прерыванийиспользуется для управления внешними устройствами и для получениявозможности асинхронной работы с внешними устройствами. Синхронная работа,это когда система говорит: «Дай мне блок информации», и затем стоит и ждетэтого блока. Асинхронная - это когда система говорит: «Принеси мне,пожалуйста, блок информации», и продолжает свою работу, а когда приходитблок, она прерывается (по прерыванию завершения обмена) и принимаетинформацию. Такова схема прерываний. Одним из прерываний, которые есть всистеме, является прерывание по завершению обмена. В момент возникновения прерывания, действия в аппаратуре ВС следующие: 1) В некоторые специальные регистры аппаратно заносится (сохраняется) информация о выполняемой в данный момент программе. Это минимальная информация, необходимая для начала обработки прерывания. Обычно, в этот набор данных входит счетчик команд, регистр результата, указатель стека и несколько регистров общего назначения. (Эти действия называются малым упрятыванием). 2) В некоторый специальный управляющий регистр, условно будем его называть регистром прерываний, помещается код возникшего прерывания. 3) Запускается программа обработки прерываний операционной системы. Запущенная программа в начале потребляет столько ресурсов (не более),сколько освобождено при аппаратном упрятывании информации. Эта программапроизводит анализ причины прерывания. Если это прерывание было фатальным(деление на ноль, например), то продолжать выполнение программыбессмысленно и управление передается части операционной системы, котораяэту программу выкинет. Если это прерывание не фатальное, происходитдополнительный анализ, который приводит к ответу на вопрос: можно лиоперативно обработать прерывание? Пример прерывания, которое всегда можнообработать оперативно - прерывание по таймеру. Например, прерывание,связанное с приходом информации по линии связи нельзя обработатьоперативно, т.к. происходит расчищение в системе места для программыоперационной системы, которая займется обработкой этого прерывания.Происходит т.н. полное упрятывание. Теперь прячется не только информация онекоторых регистрах исполнявшейся программы, теперь все регистрысохраняются в таблицах системы (а не в аппаратных регистрах, как раньше) ификсируется то, что пространство оперативной памяти, занимаемое программой,может быть перенесено (при необходимости) на внешнее устройство. Дальшеидет обработка прерывания и возврат из прерывания. Здесь надо отметить одно важное свойство: прерывания могут бытьинициированы схемами контроля процессора (например, при делении на ноль),могут быть инициированы внешним устройством (при нажатии клавиши наклавиатуре возникает прерывание, по которому процессор считывает изнекоторого регистра нажатый символ). Возвращаемся к нашей основной проблеме. ВЗУ на многие порядки болеемедленно, чем оперативная память, т.е. возникает проблема торможения ВС.Если бы все обмены с внешними устройствами происходили в синхронном режиме,то производительность ВС была бы очень низкой. Одной из причин появленияаппарата прерываний было сглаживание скоростей доступа к внешнимустройствам для процессора и оперативной памяти (оперативная память здесьвыступает как более высокоскоростное устройство). То, что, используяаппарат прерываний можно было работать с внешними устройствами васинхронном режиме, т.е. задать заказ на обмен и забыть о нем до прерываниязавершения обмена, позволило в целом увеличить производительность ВС. Регистры буферной памяти (Cache, КЭШ). Следующая группа регистров -регистры, относящиеся к т.н. буферной памяти. Мы возвращаемся к проблемевзаимодействия процессора и оперативной памяти и сглаживанию скоростейдоступа в оперативную память. Предположим, у нас есть некоторая программа, которая производитвычисление некоторого выражения, при этом, процесс вычисления этоговыражения будет представим следующим образом. В какие-то моменты идутобращения за операндами в оперативную память, в какие-то моментыобработанные данные записываются в оперативную память. Есть один изнескольких путей, которые сглаживают несоответствие скоростей процессора иоперативной памяти, который заключается в сокращении реальных обращений коперативной памяти. Процессоры содержат быстродействующую регистровуюпамять, призванную буферизовать обращения к оперативной памяти. Алгоритм чтения из оперативной памяти следующий: 1. проверяется наличие в специальном регистровом буфере строчки, в которой находится исполнительный адрес, совпадающий с исполнительным адресом требуемого операнда. Если такая строчка имеется, то соответствующее этому адресу значение, считается значением операнда и передается в процессор для обработки (т.е. обращение в оперативную память не происходит). 2. Если такой строчки нет, то происходит обмен с оперативной памятью, и копия полученного значения помещается в регистровый буфер и помечается исполнительным адресом этого значения в оперативной памяти. Содержимое операнда поступает в процессор для обработки. При этом решается проблема размещения новой строчки. Аппаратно ищется свободная строка (но она может быть только в начале работы машины), и если таковая не найдена, запускается аппаратный процесс вытеснения из этого буфера наиболее «старой» строчки. Старость определяется по некоторому предопределенному критерию. Например, признаком старения может быть количество обращений к этому буферу при котором нет обращений к этой строчки. В каждом таком случае число в третьем столбце таблицы увеличивается на единицу. Регистровый буфер|Исполнительный |Содержимое |Признак ||адрес | |«старения» || | | ||... |... |... || | | | Короче говоря, аппаратура решает, какую из строк надо вытолкнуть из таблицы, чтобы на ее место записать новое содержимое. При этом учитывается информация о том, были ли обращения к данной строке с использованием команд записи в память. Если такие обращения были, то перед выталкиванием происходит запись в ОЗУ по исполнительному адресу содержимого нашей строчки. Алгоритм записи в оперативную память симметричен. Когда в программевстречается команда записи операнда в память, аппаратура выполняетследующие действия. Проверяется наличие в буфере строки с заданнымисполнительным адресом. Если такая строка есть, то в поле «Содержимое»записывается новое значение, и аппаратно корректируется признак старениястрок. Если такой строчки нет, то запускается описанный выше процессвыталкивания, и затем информация размещается в освободившейся строке. Этот буфер чтения/записи служит достаточно мощным средством дляминимизации обращений к ОЗУ. Наибольший эффект достигается при небольшихциклах, когда все операнды размещаются в буфере, и после этого циклическийпроцесс работает без обращений к ОЗУ. Иногда, эти буфера называют КЭШ-буферами, а также ассоциативной памятью, потому что доступ к этой памятиосуществляется не по адресу (как в ОЗУ), а по значению поля. Реально, всемеханизмы могут быть устроены иначе, чем мы здесь изучаем, т.к. мы изучаемнекоторую обобщенную систему. Следующим компонентом, который мы с вами рассмотрим с точки зрениясистемного подхода, а системный подход подразумевает то, что вырассматриваем вещь не саму по себе, а в контексте взаимосвязи с другимикомпонентами, это некоторые свойства ОЗУ. Оперативная память|1-й блок | |2-й блок |. . . |k-й блок ||0 | |1 |. . . |k-1 ||k | |k+1 |. . . |2k-1 ||. . . | |. . . |. . . |. . . | Использование расслоения памяти. Физически ОЗУ представимо в видеобъединения k устройств, способных хранить одинаковое количество информациии, при этом, способные взаимодействовать с процессором независимо друг отдруга. При этом адресное пространство ВС организовано таким образом, чтоподряд идущие адреса, или ячейки памяти, находятся в соседних устройствах(блоках) оперативной памяти. Программа состоит (в большей степени) из линейных участков. Еслииспользовать этот параллелизм, то можно организовать в процессоре еще одинбуфер, который организован также, но в котором размещаются машинныекоманды. За счет того, что есть параллельно работающие устройства, то этотбуфер автоматически заполняется вперед. Т.е. за одно обращение можнопрочесть k машинных слов и разместить их в этом буфере. Далее, действия сбуфером команд похожи на действия с буфером чтения/записи. Когда нужнаочередная команда (ее адрес находится в счетчике команд) происходит еепоиск (по адресу) в буфере, и если такая команда есть, то она считывается.Если такой команды нет, то опять-таки работает внутренний алгоритмвыталкивания строки, и новая строка считывается из памяти и копируется вбуфер команд. Расслоение памяти в идеале увеличивает скорость доступа в kраз, плюс буфер команд позволяет сократить обращения к ОЗУ. Лекция №3 Мы продолжаем рассмотрение нашей упрощенной схемы. В современныхмашинах имеется еще одно аппаратное средство, которое призвано поддерживатьработу вычислительной системы. Это, так называемая, виртуальная память. Насегодняшний день все вычислительные машины (за исключением особораритетных) работают в мультипрограммном (мультипроцессорном) режиме. Сутьего заключается в том, что имеется несколько процессов, которыеодновременно выполняются в вычислительной системе. Посмотрим, как этотмультипрограммный режим влияет на использование оперативной памяти. Оперативная память|Операционная ||система || ||Задача №1 || ||Задача №2 || ||Задача №3 ||. ||. ||. | Предположим: в начальный момент времени какую-то часть оперативнойпамяти заняла операционная система (так оно и происходит). После этого былазагружена программа №1 , затем программы №2, №3 (и т.д.). Операционнаясистема начала выполнять эти программы в мультипрограммном режиме.Возникает вопрос: всегда ли любую программу можно поместить в произвольныйдиапазон адресного пространства оперативной памяти? Обладает ли программасвойством перемещения по памяти? Насколько задача связана с адреснымпространством, на которое ее запрограммировали? Это первая проблема. Втораяпроблема: этот процесс идет, и понятно, что в какие-то моменты временикакие-то из этих задач заканчиваются (например Задача №2). При этом впамяти образуются свободные фрагменты. Оперативная память Оперативная память|Операционная | |Операционная ||Система | |Система || | | ||Задача №1 | |Задача №1 || | |Задача №6 || | | || | | ||Задача №3 | |Задача №3 ||. | |. ||. | |. ||. | |. | Программа операционной системы, которая загружает задачи в память,может посмотреть, какие из задач ожидают обработки, и если есть задача,которая помещается в один из свободных фрагментов, она может ее загрузить.Но возникает второй вопрос: а как быть, если нет такой задачи, котораяпоместится в освободившийся фрагмент. При этом проблема заключается в том,что даже если найдется задача (№6), которая поместится в указанномфрагменте, то останется еще меньший фрагмент памяти, в который уже нельзяпрактически ничего записать. Количество таких, никому не нужных, фрагментовпостепенно увеличивается. Это процесс фрагментации памяти. Фрагментация может происходить и в оперативной памяти, и на внешнемзапоминающем устройстве. В результате через некоторое время возникаетдостаточно интересная и грустная ситуация: свободного адресногопространства много, но при этом мы не можем загрузить ни одной новойзадачи. Это означает, что система в целом начинает деградировать. Например,если Вы пошлете заказ на выполнение какого-то действия, то Вам придетсянеоправданно долго ждать. Для борьбы с фрагментацией памяти, а также для решения проблемыперемещения программы по адресному пространству, используется, такназываемая, виртуальная память. Суть ее работы заключается в следующем.Пусть имеется некоторое адресное пространство программы, то есть тоадресное пространство, в терминах которого оперирует программа. И имеетсяадресное пространство физическое, которое зависит от времени. Онохарактеризует реальное состояние физической оперативной памяти. В машинах, поддерживающих виртуальную память, существует механизмпреобразования адресов из адресного пространства программы в физическоеадресное пространство, то есть при загрузке задачи в память машиныоперационная система размещает реальную задачу в той оперативной памяти,которая является свободной, вне зависимости от того, является ли этотфрагмент непрерывным, либо он фрагментирован. Это первое действие выполняетоперационная система. Она знает о состоянии своих физических ресурсов:какие свободны, какие заняты. Второе: операционная система заполняет некоторые аппаратные таблицы,которые обеспечивают соответствие размещения программы в реальнойоперативной памяти с адресным пространством, используемым программой. Тоесть можно определить, где в физической памяти какая часть программыразмещена, и какая часть адресного пространства программы поставлена ей всоответствие. После этого запускается программа, и начинает действовать аппарат (илимеханизм) виртуальной памяти. Устройство управления выбирает очереднуюкоманду. Из этой команды оно выбирает операнды, то есть адреса и теиндексные регистры, которые участвуют в формировании адреса. Устройствоуправления (автоматически) вычисляет исполнительный адрес того значения, скоторым надо работать в памяти. После этого автоматически (аппаратно)происходит преобразование адреса исполнительного программного (иливиртуального) в адрес исполнительный физический с помощью тех самых таблиц,которые были сформированы операционной системой при загрузке даннойпрограммы в память. И продолжается выполнение команды. Аналогичновыполняется и, например, команда безусловного перехода на какой-то адрес.Точно так же устройство управления вычисляет сначала адрес исполнительный,после чего он преобразуется в адрес физический, а потом значение этогофизического адреса помещается в счетчик команд. Это и есть механизмвиртуальной памяти. Рассмотрим простейший пример организации виртуальной памяти:вычислительную систему с, так называемой, страничной организацией памяти.Суть страничности памяти заключается в том, что аппаратно все адресноепространство оперативной памяти разделено на блоки фиксированного объема.Обычно размер таких блоков равен степени двойки. При этом сохраняетсясквозная нумерация ячеек памяти. Структура адреса в данной вычислительноймашине такова: адрес любой ячейки памяти представлен в виде двух полей;старшие его разряды являются номером страницы, а младшие разряды являютсясмещением относительно страницы (здесь используется тот факт, что размерстраницы равен степени двойки). Исполнительный адрес|№ Страницы |Смещение относительно || |страницы | Итак, мы имеем машину со страничной организацией памяти. Дляуправления этой страничной памятью, процессор содержит, так называемую,таблицу приписки (ТП). Это аппаратное средство машины, реализованное спомощью регистровой памяти. Структура этой таблицы: Таблица приписки|№ Виртуальной |№ Физической ||страницы |страницы ||0 |25 ||1 |1 ||2 |30 ||. |. ||. |. ||. |. ||L-1 |-1 | ТП имеет L строк, где L - максимальное число страниц, адресуемых вданной машине (то есть адресное пространство программы может состоять неболее чем из L страниц). Каждая строка этой таблицы соответствуетвиртуальной странице программы с номером, совпадающим с номером строки.Строка содержит номер физической страницы, соответствующей даннойвиртуальной странице. При загрузке и запуске программы операционная система размещаетвиртуальные страницы в некоторых физических страницах оперативной памяти, аих соответствие устанавливается в ТП. Например, операционная система взяла0-ую виртуальную страницу памяти и поместила ее в 25-ую страницу физическойпамяти, 1-ую страницу разместила в 1-ой странице, а 2-ую - в 30-ой (и такдалее распределила все страницы). После этого передается управления наначало программы, а за тем работает тот механизм, который был описан выше:по номеру виртуальной страницы из таблицы аппаратно выбираетсясоответствующая строка, и содержащийся в ней номер физической страницыаппаратно подставляется в исполнительный адрес вместо номера виртуальнойстраницы, то есть происходит просто замена старших битов исполнительногоадреса. На самом деле, когда операционная система обращается к какой-тострочке таблицы, то сначала она производит контроль. В действительности,строка ТП содержит некоторый код, который является либо адресом физическойстраницы, либо некоторым специальным кодом, на который схемы управленияпроцессора реагируют определенным образом. Например, если этот код большелибо равен нулю, это значит, что можно продолжать работу. Если же в этойстроке содержится код меньше нуля, например -1, то обращение к нейустройств преобразования виртуального адреса в физический, вызоветпрерывание. Это прерывание обычно называется прерыванием по защите памяти.Дело в том, что операционная система, заполняя ТП, указывает, какие извиртуальных страниц адресного пространства не принадлежат данной программе,и если происходит выход за пределы дозволенной памяти, генерируетсяпрерывание по защите памяти. Для каждой программы нужна своя таблица приписки. При переходе отодной программы к другой содержимое ТП сохраняется операционной системой внекоторой своей программной таблице (массиве) и затем изменяются значения вТП. Продолжение в теме «Операционные системы» (Подкачка, или SWAPPING) Внешние устройства Внешние устройства можно определить как все те устройства, которыеотличаются от процессора и памяти. Управление внешними устройствамиосуществляется через систему прерываний. Внешние устройства можноподразделить на Внешние Запоминающие Устройства (ВЗУ) и УстройстваВвода/Вывода (УВВ) информации. ВЗУ - это устройства, способные хранитьинформацию некоторое время, связанное с физическими свойствами конкретногоустройства, и обеспечивать чтение и/или запись этой информации воперативную память. Если рассматривать ВЗУ с точки зрения использованияразличными компонентами программного обеспечения, то можно выделитьследующие типы устройств: 1. Магнитный барабан. Магнитный барабан - это устройство, котороехарактерно для больших вычислительных комплексов. Обычно оно используетсяоперационной системой для хранения системной информации. Суть работы этогоустройства состоит в следующем. [pic] Имеется металлический цилиндр большого веса (вес здесь имеет значениедля поддержания стабильной скорости вращения), который вращается вокругсвоей оси. Поверхность этого цилиндра покрыта слоем материала, способногохранить информацию (с него можно читать и на него можно записыватьинформацию). Над поверхностью барабана размещается p считывающих головок.Их положение зафиксировано над поверхностями, которые называются треками(track). Каждый трек разделен на равные части, которые называютсясекторами. В каждый момент времени в устройстве может работать только однаголовка. Запись информации происходит по трекам магнитного барабана,начиная с определенных секторов. Координатами информации служат следующиепараметры (№Трека, №Сектора и Объем информации). Для чтения информации с магнитного барабана производятся следующиедействия: включается головка, соответствующая номеру трека, ипрокручивается барабан до появления под головкой начала сектора с заданнымномером. После этого начинается обмен. Практически во всех ВЗУ, основанныхна вращении носителя, существует понятие сектора, и в каждый момент времениустройство знает, над каким сектором оно находится. Магнитные барабаны -это устройства, имеющие одну из самых больших скоростей доступа, так какэлектронные и механические действия в его работе минимальны (вращениебарабана). 2. Магнитные диски. Имеется несколько дисков, размещенных на одной оси, которые вращаютсяс некоторой постоянной скоростью. Каждый такой диск может иметь двеинформационно-несущие поверхности (верхнюю и нижнюю), покрытые слоем,способным фиксировать информацию. Диски имеют номера; поверхности каждогодиска также пронумерованы (0,1). Концентрическим окружностям одногорадиуса на каждом диске соответствует условный цилиндр. Диск также разбитна сектора. Координаты информации на диске (№Диска, №Поверхности,№Цилиндра, №Сектора).[pic] Механически управляемая штанга имеет щупы, на концах которыхнаходятся считывающие и записывающие головки. Количество этих щупов можетбыть равно количеству дисков (считывается либо верхняя, либо нижняяповерхность). Обмен информацией осуществляется следующим образом: на блок управлениядиском подается набор координат с требуемым объемом информации. Блокголовок вводится внутрь диска между поверхностями до заданного номерацилиндра. Затем, включается головка, читающая заданную поверхностьзаданного диска. После этого ожидается подход заданного сектора иначинается обмен. Здесь, в отличие от магнитного барабана, уже двамеханических действия, что ухудшает скоростные свойства магнитных дисков.Примерами магнитных дисков являются винчестер и гибкие диски (floppy). Лекция №4 Мы с вами продолжаем обзор некоторых свойств архитектурывычислительной системы, и я обращаю ваше внимание на то, что мырассматриваем не просто ЭВМ как набор плат, размещенных на них микросхем,каких-то проводников, механических устройств и всего прочего. Мырассматриваем вычислительную систему, то есть систему, объединяющуюаппаратуру и программное обеспечение, а также нюансы их взаимодействия. Мыс вами уже посмотрели и поговорили о некоторых таких взаимосвязях.Виртуальная память и вся та буферизация, о которой мы с вами говорили, -это аппаратные средства, которые поддерживает программное обеспечение сцелью повышения эффективности работы системы в целом. Система прерываний -это также аппаратное средство, которое ориентировано на поддержкупрограммного обеспечения, то есть средство, обеспечивающее взаимодействиепрограммы с внешними устройствами. Я обращаю ваше внимание на то, что эти лекции не есть лекции по UNIX-у, который мы с вами будем рассматривать, это не есть лекции по страничнойорганизации памяти - это лекции, направленные на то, чтобы вы понялизначение слова «система» в термине «вычислительная система». Уже сейчас мызатрагиваем механизмы работы с КЭШами, с буферами и прерываниями. И этодостаточно сложно. А если мы возьмем машину, у которой не один, анесколько процессорных элементов, работающих с одной памятью, то у насвозникают достаточно сложные проблемы с буферизацией работы с памятью. То,что мы с вами рассматриваем на лекции - это очень простой срез (можносказать, лекция для колхозников), чтобы у вас сложилось хотя быконцептуальное понимание, ибо мы не охватим всего. Мы с вами закончили прошлую лекцию рассмотрением некоторых типов ВЗУ:магнитного барабана, магнитных дисков. Мы выявили на концептуальном уровнеотличия этих устройств, потому что цель наших лекций не изучить их работу,а научиться сравнивать те или иные компоненты вычислительной системы. Мы свами выяснили, что ВЗУ, такие как магнитный барабан и магнитные диски,могут характеризоваться степенью участия механических действий в обработкезаказа на обмен. Чем больше механических действий, тем медленнее происходит обмен. Существует экзотический вид внешней памяти - память на магнитныхдоменах. Память на магнитных доменах. Так же, как элементарной единицейэлектричества является электрон, элементарная единица в магнетизме -магнитный домен. Он подобен простому магниту, одна сторона которогозаряжена положительно, а другая - отрицательно. [pic] Есть барабан, у которого так же есть треки, и так же над каждымтреком расположена головка для обмена, но сам барабан не вращается, а засчет некоторых магнитно-электрических эффектов осуществляется перемещениепо треку цепочки доменов. При этом каждый домен однозначно ориентирован, тоесть либо он бежит стороной, заряженной «+», либо стороной, заряженной «-».Так кодируются ноль и единица. Эта память очень быстродейственна, так как вней нет никаких механических действий. Эти устройства обычно используютсяво встроенных вычислительных системах. (Например, она используется вамериканских ШАТЛах). Теперь рассмотрим ВЗУ иначе - по методам доступа. Суть почти любогозапоминающего устройства заключается в том, что информация в немзаписывается некоторыми блоками, или записями. В некоторых устройствахразмер блока фиксирован и чем-то напоминает страничную организацию памяти.В некоторых устройствах размер блока может быть переменным, и определяетсянекоторым начальным и конечным маркером, который можно программно записатьна носитель этого устройства. В контексте работы с блоками, ВЗУ можноподразделить на два типа: устройства прямого доступа и устройствапоследовательного доступа. В бытовом плане можно рассмотреть компакт диск(CD) и аудиокассету. Воспроизведение десятой записи на компакт дискеначинается почти сразу после соответствующей команды, за счет своей системыкоординат, подобной системе координат магнитного диска. Это устройствопрямого доступа. Устройство последовательного доступа - это аудиокассета.Если вам надо воспроизвести пятую песню, то приходится, перематываякассету, искать начало, так или иначе прослушивая предыдущие четыре.Устройства последовательного доступа, это те устройства, которые для чтенияi-той записи, должны просмотреть предыдущие (i-1)-ну запись. Прямой доступлишен этого недостатка. Примеры устройств прямого доступа - это магнитныйбарабан, всевозможные вариации магнитных дисков, память на магнитныхдоменах и прочее. Устройства последовательного доступа - это либо магнитнаялента на больших машинах, либо стримерные устройства, которые используютдля организации долговременного хранения данных на маленьких машинах. Вот два взгляда на внешние устройства. Теперь рассмотрим внешниеустройства с точки зрения управления. На ранних стадиях устройствоуправления внешними устройствами в большей мере являлось некоторыминтерфейсом в получении всех управляющих команд от процессора и передачи ихконкретному внешнему устройству. Это означает, что центральный процессор(ЦП) должен был отрабатывать практически все действия, предусмотренныесистемой команд управления конкретного устройства. Несмотря на то, что приэтом уже был реализован и использовался аппарат прерываний, позволяющийпроводить обмен асинхронно с работой центрального процессора, у нас былидостаточно большие потери за счет того, что процессор должен был частопрерываться на выполнение последовательности небольших по размеру указанийдля управления внешним устройством. Поэтому появились специализированныеустройства, которые называются каналами. Канал - это специализированная вычислительная машина, имеющаяспециализированный процессорный элемент и необходимую память. Канал обычноимеет следующую структуру: у него есть высокоскоростной канал связи соперативной памятью основной машины, управляющие каналы для взаимодействияс ЦП и имеется некоторое количество каналов для подключения внешнихустройств. [pic] Функцией канала является выполнение макрокоманд, обеспечивающихввод/вывод. То есть ЦП подает не последовательность команд (к примеру,включить двигатель магнитных головок, переместить магнитную головку назаданный цилиндр, дождаться нужного сектора, произвести чтение порцииданных, произвести проверку правильности и т.п.), а макрокоманду(произвести обмен заданного объема по заданным координатам), и необходимуюпоследовательность команд выполняет канал. Таким образом, канал разгружаетЦП. При этом каналы могут быть достаточно интеллектуальны. В канале можетбыть организована буферизация за счет своей внутренней памяти (аналогичнобуферизации при работе с оперативной памятью). Современная вычислительнаямашина может иметь несколько таких каналов, которые позволяюторганизовывать управление внешними устройствами, а с другой стороныосвобождают процессор от лишней работы. Мультипрограммирование Давайте рассмотрим еще один внутрисистемный аспект, который можетпродемонстрировать взаимное влияние программного обеспечения и аппаратуры.Этот аспект связан с мультипрограммированием.[pic] Нарисуем простую диаграмму: Ось абсцисс связана со временем. На оси ординат отмечены выполняемыезадачи. Пусть процессор работает над Задачей №1. В какой-то момент емупотребовались данные, которые находятся на ВЗУ. Формируется заказ на обмен,но данные с устройства еще не поступили (мы знаем, что скорость обменанизка). И какое-то время процессор простаивает. Затем обмен завершился, ипрограмма начала выполняться далее. Затем эта ситуация повторяется (опятьпростой и т.д.). В зависимости от типа или класса решаемой на этой машинезадачи, таких простоев может быть от 99% всего времени до единиц процентовв том случае, если программа долго что-то вычисляет, не обращаясь к внешнимустройствам. Но в любом случае эта ситуация приводит к неэффективной работевычислительной системы, поэтому было бы неплохо при наличии асинхронноработающих устройств (то есть тех устройств, которые работают подуправлением аппарата прерываний) в промежутки времени, когда одна программане может выполняться (так как она ожидает данные), запускать другуюпрограмму (Задачу №2). Задача №2 будет жить по тем же правилам (то есть впериоды обмена Задачи №2 и Задачи №1 с внешними устройствами будетзапускаться третья задача, и так далее). Режим работ программного обеспечения и аппаратуры, обеспечивающийодновременное выполнение нескольких программ, называется мультипрограммнымрежимом. Изначально мультипрограммирование появилось в целях максимальнойзагрузки процессора, поскольку когда-то это устройство было самымдорогостоящим. На сегодняшний день это устройство одно из самых дешевых вкомпьютере. Посмотрим, что нужно от аппаратуры вычислительной системы дляподдержания режима мультипрограммирования. Давайте перечислим те проблемы,которые могут возникнуть, когда, кроме некоторой управляющей программы(операционной системы) и одной программы пользователя, появилась еще однапрограмма пользователя. То есть, если ранее все ошибки и некорректности вотношении системы приводили к наказанию самого себя, то теперь, припоявлении чужих программ в памяти возникают новые проблемы. Первая проблема: кто-то взял и записал в пространство моей программысвою информацию или считал из пространства моей программы мою информацию(может быть, конфиденциальную). Если программа испорчена, то будет сбой всистеме. Следовательно, возникает проблема защиты памяти, то есть ввычислительной системе должен быть реализован на аппаратном уровнемеханизм, обеспечивающий защиту адресного пространства каждой из программот несанкционированного доступа других программ. Это означает, что этотмеханизм при выполнении доступа по исполнительным адресам будетконтролировать корректность доступа. На прошлой лекции мы с вами рассматривали механизм виртуальной памятина примере страничной организации памяти. Если в таблице приписки в какой-то строке находился код меньше нуля, это означало, что эта виртуальнаястраница недоступна. И при попытке обратиться к этой странице, срабатываетаппарат защиты памяти. А срабатывает он таким образом: в системе возникаетпрерывание по защите памяти, при обработке этого прерывания операционнаясистема (ОС) смотрит, а действительно ли этой страницы памяти у даннойпрограммы нет (то есть это чужая страница). Если эта страница действительночужая, то прерывание прекращает выполнение данного процесса с диагностикойобращения в чужую память. Возможна и другая ситуация: если какие тостраницы еще не загружены в память и ОС в своих внутренних программныхтаблицах отметила, что на самом деле у меня есть эта страница и что,предположим, она находится на внешнем устройстве. В этом случае прерываниеигнорируется, так как ошибки нет (просто нет еще достаточно информации дляпродолжения программы). Так устроена защита памяти. Вторая проблема: пусть в вычислительной системе есть принтер, и естьдва процесса, которым он нужен. И пусть один из процессов обратился квнешнему устройству с командой напечатать строку (а он печатает, скажем,ведомость на экзамен, а другой процесс печатает, предположим, докладнуюдекану). И первая строчка напечаталась: «Ведомость». После этого другойпроцесс пишет: «Декану факультета ВМК чл. корр. РАН Д.П. Костомарову», итоже обращается к устройству печати. Устройство печати печатает вторуюстрочку, и так далее. В итоге получается документ, который остается толькосжечь, так как там напечатан бред. Это первый пример. Второй пример: мы свами говорили о виртуальной памяти и о том, что таблицы припискизаполняются оперативной системой программно (существуют команды, которыепозволяют записать некоторую информацию в таблицу приписки). И пусть,появились два лихих программиста, которые решили отвести себе побольшепамяти, и каждый из них исправил соответственно таблицу приписки, выделивсебе всю память. Но память-то одна, и получилось нехорошо. И в первом и вовтором примере программам пользователя были доступны команды управлениякомпонентами вычислительной системы (в первом случае - команды управлениявнешним устройством, во втором случае - оперативной памятью), что и привелок некорректности в работе. Это означает, что, пока эти команды доступны, токорректный режим мультипрограммирования организовать невозможно, потому чтовсегда найдутся два молодца, которые чего-нибудь да испортят (даже неспециально, а просто по незнанию). Итак, вторым условием для организации мультипрограммного режимаявляется наличие привилегированного режима в системе. Привилегированныйрежим - это режим работы центрального процессора, в котором программедоступны все возможные команды. Непривилегированный режим (еще его называютпользовательским) - режим, в котором доступно лишь некоторое подмножествокоманд. В пользовательском режиме программы пользователя не смогутобратиться напрямую к управлению компонентами вычислительной системы. Может возникнуть вопрос: а если все-таки надо печатать, и работаютнесколько программ, как быть? Обычно во всех системах имеются средстваобращения к ОС (ОС работает в привилегированном режиме и ей доступно все).Программа пользователя может передать заказ на некоторые действия ОС (вразных системах это реализовано по-разному), например, с помощьюпрерываний. Вернемся к примеру с принтером. Теперь процесс не вызываетконкретную команду, а обращается с заказом напечатать строку к ОС. Онапринимает заказ и строку, и буферизует эту информацию в некоторых своихпрограммных буферах. Реальной печати при заказе не происходит, очереднаястрочка просто попадает в буфер, который относится к моей программе. Печатьэтого буфера будет происходить только при завершении программы, когда ужеясно, что заказов на печать больше не будет. Третья проблема: в одной из программ появилась ошибка, программазациклилась и система зависла. Что в этом случае может помочь? Может помочьнекоторое средство, которое будет периодически прерывать выполнениепрограммы. Для нашего примера это должно быть прерывание по таймеру, чтобыодин раз в какой-то промежуток времени процесс прерывался, и управлениепередавалось ОС. Она же сама должна решать, как ей поступить в этом случае. Вот три условия на аппаратуру вычислительной системы, которые должныбыть выполнены, если необходимо организовать мультипрограммный режимработы. Аппарат подкачки Следующая проблема: в системе, работающей в мультипрограммном режиме,находится много программ. Пусть есть реальная оперативная память состраничной организацией. Какую-то часть памяти занимает ОС, какую-то частьзанимает Задача №1, какую-то часть - Задача №2 и т.д. В простейшем случае,в системе может находится столько программ, сколько может разместить в себеоперативная память. Это достаточно неэффективно, потому что выполняемый вданный промежуток времени код программы локализован в несколькихвиртуальных страницах (например, какой-то цикл или функция, которыевыполняются в данный момент). Если мы будем размещать в оперативной памятивесь код и все данные нашей программы, то большая часть оперативной памятибудет простаивать, потому что мы до нее еще должны добраться. Появляетсяестественное желание держать в оперативной памяти только те фрагментыадресного пространства, которые в данный момент используются. Для этогоиспользуется аппарат подкачки (или swapping). Это программно-аппаратноесредство. Суть его заключается в следующем. Мы говорили о виртуальной памяти ио том, что в строке таблицы приписки содержится некий код. В этой строкеможет быть еще одно поле, характеризующее частоту обращения к странице. Этополе формируется аппаратно. Аппарат подкачки работает примерно так же, какв буфере чтения записи в оперативную память (также собирается информация остарении страниц). По этим данным ОС может откачивать редко используемыестраницы, принадлежащие конкретному процессу во внешнюю память (в большихмашинах для этих целей обычно используются магнитные барабаны). При этом,если страница откачивается, то в таблицу приписки записываетсяотрицательный код, который, в случае обращения к ней, вызовет прерывание(оно определит, что это не чужая страница), и страница подкачиваетсяобратно (а в это время опять же может начать выполняться другая задача).Этот механизм подкачки достаточно эффективен. Он позволяет держать воперативной памяти от каждой из выполняемых программ некоторую (самуюважную) часть, а когда в памяти находится большое количество программ, тоэто означает, что всегда будет готова очередь программ на случай обмена. С одной стороны, подкачка - это функция, которая поддерживаетсяаппаратурой (старение страниц памяти без аппаратной поддержки сложноорганизовать), а с другой стороны все реальное управление программное. Теперь вернемся к нашей пирамиде:|Прикладные программы ||Системы программирования ||Управление логическими устройствами ||Управление физическими устройствами ||Аппаратные средства | Мы видим, что все то, о чем говорилось в предыдущих лекциях тесновзаимосвязано. То есть нельзя организовать в системе (корректный)мультипрограммный режим без аппаратной поддержки, и наоборот, если естьаппаратная поддержка, но нет программы, которая использует эти аппаратныесредства, то мультипрограммный режим также невозможен.-----------------------ОСОСОС


izumzum.ru