DAY02 (Старые версии Машбука или нечто подобное)

2019-05-08СтудИзба

Описание файла

Файл "DAY02" внутри архива находится в следующих папках: Старые версии Машбука или нечто подобное, Лекции (Машечкин 1998). Документ из архива "Старые версии Машбука или нечто подобное", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "DAY02"

Текст из документа "DAY02"

1


Лекция 2

Лекция №2

На прошлой лекции мы начали обсуждать проблему ВС, рассмотрели ее структуру, которая представляет собой пирамиду, две ступени которой ( управление логическими (виртуальными) устройствами и управление физическими устройствами) - это то, что мы называем операционной системой. Мы также кратко рассмотрели структуру ЭВМ и основные свойства оперативной памяти и ЦП. Перед нами возникла проблема несоответствия скорости работы ЦП и времени доступа к ОЗУ. Мы поговорили об одном из решений этой проблемы, а именно об организации регистровой памяти, которая позволяет сглаживать это несоответствие в скоростях. Нами была также затронута тема прерываний и их обработки.


Здесь надо отметить одно важное свойство: прерывания могут быть инициированы как схемами контроля процессора (деление на ноль), так и внешним устройством (при нажатии клавиши на клавиатуре происходит прерывание, по которому процессор считывает из некоторого регистра код нажатой клавиши). Прерывания позволяют частично разрешить такую большую проблему, как проблему несоответствия скоростей работы внешних запоминающих устройств (ВЗУ) и ОЗУ. Если бы все обмены с ВЗУ происходили в синхронном режиме, то производительность ЭВМ была бы очень низкой. Но аппарат прерываний позволяет сгладить несоответствие в скоростях доступа к ВЗУ и ОЗУ благодаря работе в асинхронном режиме, т.е. можно дать заказ на обмен и забыть о нем до прерывания по завершению обмена. Это позволяет в целом значительно увеличить производительность ЭВМ. Сделаем еще одно замечание по теме обработки прерываний. Возникает вопрос, что произойдет если два внешних прерывания пресекутся. На этот случай существует режим работы CPU, обеспечивающий функционирование программы без реакции на внешние прерывания. (Этот режим включается и выключается автоматически, когда информация из буферных регистров перенеслась в таблицы ОС.)

Регистры буферной памяти. КЭШ (Cache).

Вернемся к нашей глобальной проблеме, проблеме несоответствия скорости доступа к RAM и скорости работы CPU. На прошлой лекции мы обсудили тот факт, что при умело организованном алгоритме работы с регистрами общего назначения можно минимизировать число обменов с ОЗУ, а следовательно увеличить эффективность программы. Но этот способ решения данной проблемы имеет большой недостаток. Эффективность работы системы в целом сильно зависит от качества программы (и следовательно от уровня программиста). Мы приходим к необходимости искать аппаратное решение данной проблемы. В современных ЭВМ имеются средства аппаратной минимизации обращения в RAM. Процессоры содержат быстродействующую регистровую память призванную буферизировать обращение к оперативной памяти, которая называется КЭШ-памятью (cache).

Рассмотрим алгоритм чтения из ОЗУ при использовании cache:

  1. Происходит ассоциативный поиск в специальном буферном регистре строки, в которой находится исполнительный адрес, совпадающий с исполнительным адресом необходимого нам операнда. (Мы - это CPU, а конкретнее АЛУ). Если такая строчка имеется, то соответствующее этому адресу значение, считается значением операнда и передается в процессор для дальнейшей обработки. (При этом никакого обращения в ОЗУ не происходит!).

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

Регистровый буфер

Исполнительный адрес

Содержимое

Значение признака “старения”

...

...

...

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

Алгоритм записи в ОЗУ симметричен. Когда в программе встречается команда записи в память, аппаратура выполняет следующие действия. Проверяется наличие в буфере строки с заданным исполнительным адресом. При ее наличии в поле “Содержимое” записывается новое значение и аппаратно корректируется значение признака “старения” данной строки. Если же такой строчки нет, то запускается описанный выше процесс выталкивания, и затем информация размещается в освободившейся строке.

Наибольший эффект при работе с cache достигается при небольших циклах, когда операнды размещаются в буфере, и после этого программа работает без обращений к RAM. Иногда КЭШ называют ассоциативной памятью, т. к. доступ к этой памяти осуществляется не по адресу (как в RAM), а по значению поля. В современных компьютерах используются намного более сложные cache-механизмы (многоуровневый cache), а мы на лекциях рассматриваем более упрощенную и обобщенную систему.

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

Механизм расслоения памяти.

Мы говорили о том, что адресация в оперативной памяти сквозная (0..n-1). При механизме расслоения памяти используется следующая схема организации оперативной памяти. Оперативная память представляется в виде объединения k запоминающих устройств, каждое из которых имеет свой канал взаимодействия с CPU. В адресном пространстве ОЗУ все пары соседних адресов находятся в разных устройствах (блоках) ОЗУ:

Оперативная память

1-й блок 2-й блок ... k-й блок

0

1

...

k-1

k

k+1

...

2k-1

...

...

...

...


За счет этого достигается возможность распараллеливания работы процессора с RAM при выполнении программы. Если нам надо обработать структурные данные, массивы мы можем считывать их буфера параллельно, т. е. за одно обращение можно прочесть до k машинных слов и разместить их в буфере. Схема работы буфера была рассмотрена нами выше. Итоговая скорость чтения может быть увеличена в k раз.

Отойдем теперь от рассмотрения hardware и затронем проблему мультипрограммирования.

Мультипрограммирование.

Обсудим систему, которая появилась в самом начале развития вычислительной техники. Это однопрограммная система. Рассмотрим диаграмму выполнения процесса в однопрограммной системе. Оси абсцисс будет соответствовать течение времени, а ось ординат - статус работы программы: ордината точки равна 0, значит программа не работает (простаивает), в это время происходит обмен, например, с жестким диском; если ордината равна 1, то в данный момент времени t программа работает (в том смысле, что CPU производит вычисления):


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

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


По оси абсцисс отложим время, а на оси ординат отметим выполняемые задачи. Пусть процессор начал работу над задачей №1. В какой-то момент времени ему потребовались данные, находящиеся на ВЗУ. Процессор формирует заказ на обмен, но пока происходит обмен система в целом не будет простаивать - начнет свое выполнение задача №2. Как только ей понадобится считать информацию с ВЗУ запустится задача №3 и т. д. В зависимости от типа и класса решаемых задач такой подход позволить сэкономить от 1 до 99% всего времени.

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

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

  2. Все программы при мультипрограммировании должны находится в ОЗУ. И будет “плохо” если одна программа “залезет” (например, при записи) в область памяти, занимаемую другой программы. Вторая проблема - механизм защиты (оперативной) памяти.

  3. Третью проблему можно проиллюстрировать примером. Все программы в рамках мультипрограммной системы подали команду на принтер напечатать строку. Ничего хорошего из этого не выйдет. Не хорошо обычным программам предоставлять возможность работы с конкретными физическими устройствами. Это означает, что во множестве машинных команд должно быть выделено подмножество общедоступных команд и группа команд, доступных только ОС. Мы пришли к необходимости наличия поддержки привилегированного режима работы. А при попытке выполнения недоступной команды должно происходить прерывание. Вернемся к принтеру. Как быть с ним? В разных ОС есть разные способы взаимодействия программ и ОС. Проблему с принтером можно решить, например, так. Есть буфера (программные), которые располагаются в RAM или во внешних устройствах. В них аккумулируем заказы, поступающие от программ на печать. А принтер по очереди печатает заказы, находящиеся в этом буфере.

Организация работы оперативной памяти.

С этого момента мы говорим о мультипрограммных ВС. Итак, рассмотрим структуру ОЗУ. В некоторой ее части находится ОС. Эта часть является локализованной. Оставшуюся часть могут использовать программы пользователя или же те программы, которые подгружает ОС.



Обсудим тот случай, когда программы жестко привязаны к конкретным физическим адресам оперативной памяти. Пусть одна задача использует диапазон адресов A1..A2, другой задаче необходимо адресное пространство B1..B2, где A1<=B1<=A2. В этом случае, если одна из задач начнет писать в область памяти B1..A2, это повлечет за собой порчу данных другой программы. Т. е. в этом случае имеются участки памяти, которые являются пересечением областей данных двух разных задач. Эта проблема называется проблемой нехватки адресного пространства (заметьте, не объема!).

Рассмотрим другой случай. Пусть в ОЗУ загружены задачи №1, №2 и №3. Но эти задачи находятся в памяти, не следуя строго одна за другой - между ними есть свободные участки памяти - фрагменты. У нас есть еще и 4-ая задача, готовая к загрузке в ОЗУ, но объема каждого фрагмента не достаточно для того, чтобы загрузить эту задачу в память, несмотря на то, что суммарный объем фрагментов быть может даже превышает объем памяти, необходимой для загрузки 4-й задачи. Происходит деградация схемы работы программ. Перед нами появляется еще одна проблема - проблема фрагментации.

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

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
428
Средний доход
с одного платного файла
Обучение Подробнее