Самодел 1 (Старые версии Машбука или нечто подобное), страница 7

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

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

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

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

Текст 7 страницы из документа "Самодел 1"

Аппаратные средства компьютера, необходимые для поддержания мультипрограммного режима

Аппарат защиты памяти. Если выполняется одна программа, то надо, чтобы она не смогла испортить память, занятую другой. Надо выделить каждой программе по «куску» памяти, установить права доступа до каждого куска и, если программа залезает не в свой кусок, выдавать прерывание.

А) пример защиты с помощью анализа, (применялся на заре программирования)

Программа – непрерывная область памяти. Выделялось два регистра: в одном адрес начала программы, в другом – конец. Каждый раз смотрим, не залезли ли в «чужую» область памяти.

Б) защита по ключу

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

Специальный режим операционной системы : все множество машинных команд разбивается на 2 группы. Первая группа – команды, которые могут исполняться всегда (пользовательские команды). Вторая группа – команды, которые могут исполняться только в том случае, если ЦП работает в режиме ОС. Если ЦП работает в режиме пользователя, то попытка выполнения специализированной команды вызовет прерывание – "Запрещенная команда”.

прерывание по таймеру

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

Некоторые проблемы

1. Вложенные обращения к подпрограммам

В вызываемую подпрограмму нужно передать параметры. Возникает проблема сохранения регистров. Требуются лишние затраты времени.

2. Накладные расходы при смене обрабатываемой программы:

• необходимость включения режима блокировки прерываний;

• программное сохранение / восстановление содержимого регистров при обработке прерываний;

3.Перемещаемость программы по ОЗУ

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

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

4. Фрагментация памяти

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

Фрагментация памяти приводит к деградации системы.

Один из способов решения – это компрессия (но при этом возможны потери памяти). Существуют и другие решения.

4.2.1 Регистровые окна ( register window )

Один из способов решения проблемы вложенных процедур – регистровые окна.

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

Каждое регистровое окно делится на части:

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

Б) область локальных регистров подпрограмм

В)область временных регистров

Возможна кольцевая схема организации регистровых окон.

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

Рассмотрим, что происходит при непосредственной работе:

Обращаемся к 1-й программе, ей выделяется 0-е регистровое окно. Дальше пошли в глубину на 2-й уровень, выделилось 1-е регистровое окно и т.д. до тех пор, пока не дошли до последнего. Что будет, когда этот круг обойдем? Начинается откачка этих окон в ОП. Эта схема гарантирует эффективную работу программ с вложенностью не более фиксированного, если вложенность больше, то возникают проблемы, но все равно начинается работа с КЭШем и мы все равно не опускаемся на уровень общения с ОП. Соответственно система может иметь специальный регистр-указатель текущего окна и указатель сохраненного окна.

При обращении в функцию происходят следующие действия:

Увеличиваем указатель текущего окна на единичку по модулю N.

Сравниваем, получилось ли: (указатель на новое содержимое текущего окна) = (указатель на сохраненное окно), если получилось, то мы дошли до ситуации, в которой пытаемся обратиться за окном, которое уже занято, т.е. пошли по второму кругу этого цикла. Происходит прерывание. Мы откачиваем в память текущее окно, после этого меняем указатель на сохраненное окно и используем освобожденное текущее окно, так новое. Если не равно, то идем на «Использование окна CWP, вызов функции».

При выходе из функции мы начинаем действовать в следующим образом:

  • Сначала уменьшаем модулю,

  • Сравнивает полученный результат с указанием сохраненных, если он равен, то это означает, что мы сохраняли это окно. Происходит прерывание, мы восстанавливаем это окно, мы соответственно уменьшаем этот указатель и продолжаем выполнение, если не равен, это означает, что это окно у нас не сохранялось и мы просто переходим на «Продолжение выполнения» (проталкиваем туда).

Рассмотрим пример:

Main –программа, которая изначально имеет некоторое состояние 0. Т.е. у нас 2 регистровых окна. 0-е регистровое окно принадлежит программе Main, 1-е – свободное. Если количество операций выхода из функции будет больше, чем количество обращений, то возникнут проблемы. Рассмотрим, что происходит при (ложном) обращении к таким функциям.

  1. Мы обратились к функции А1, согласно алгоритму текущее окно будет первым, сохраненное остается нулевым.

  2. Обратились к А2, увеличили текущий указатель по модулю 2, и получили, что он стал равным нулю. Равный нулю, равен указателю нулевого (сохраненного). Это означает, что мы обратились к окну, которое занято. Происходит то, что окно, которое было main, выталкивается, его место занимает функция А2, ну и указатель SWP становится равным единичке.

  3. Обратились к функция А3. Увеличили текущий на 1. И получили опять совпадение – «занято». Вытолкнули А1 и изменили и т.д.

Есть такой процессор Itanium – это 64-х разрядный процессор. В нем используется модель, в которой считается, что регистровое окно, доступное программе в каждый момент, состоит из 128 регистров общего назначения. Соответственно 32 регистра – это статические регистры, которые остаются всегда неизменными, оставшиеся регистры (96)– динамические (виртуальные), т.е. которые отображаются на кольцевой список физических регистров. Размер этого кольцевого списка может варьироваться от … и до… . «Динамическое» окно – можно заказать окно произвольного размера (от регистра GR32 до регистра GR32+N (N=0,..,95).

Происходит оптимизация работы с физическими регистрами

 

Системный стек

Использование системного стека может частично решать проблему минимизации накладных расходов при смене обрабатываемой программы и/или обработке прерываний. Частично стек реализуется на регистрах, таким образом существенно ускоряется работа. Что лучше использовать: стек или регистры? Однозначного ответа нет.

Виртуальная память.

Давайте рассмотрим схему подготовки исполняемого кода. Мы имеем исходный текст, который обрабатываем компилятором. В результате получается объектный модуль. Из достаточного количества объектных модулей с помощью редактора внешних связей сформировали исполнительный модуль. И потом когда-то этот исполнительный модуль мы запустим на выполнение. Т.е. исполнительный модуль – это есть уже программа в коде машины, которая использует определенную адресацию. Эта адресация называется программная или логическая или виртуальная адресация – т.е. те адреса, которые используются в программе, они программные, логические или виртуальные адреса. При выполнении программы имеется проблема установления соответствия между виртуальными адресами и реальными адресами ОП (физическими адресами). Аппарат– это аппаратные средства компьютера, которые обеспечивают преобразование виртуальных адресов, используемых в программе в физические адреса ОП, в которых размещена данная программа при выполнении. Соответственно за время развития вычислительной техники была целая совокупность моделей организации виртуальной памяти. Т.е. моделей аппаратной реализации вот этого установления соответствия, такого чтобы программа, которая уже откомпилирована и собрана, в относительно произвольный момент времени могла спокойно выполняться на компьютере без преобразования.

1-м способом организации виртуальной памяти можно считать организацию базирования.

Базирование адресов.

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

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

В <Rбазы> загружается адрес начала программы в памяти. Исполняемые адреса, используемые в модуле будут автоматически преобразовываться в адреса физического размещения данных путем их сложения с регистром Rбаз..

Базирование адресов – решение проблемы перемещаемости программы по ОЗУ.

Благодаря базированию адресов виртуальное адресное пространство программы отображается в физическую память взаимнооднозначно.

Аппарат базирования не решает проблемы фрагментации.

Страничная память.

Пусть одна система команд ЭВМ позволяет адресовать и использовать m страниц размером 2k каждая.

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

В ЦП ЭВМ имеется аппаратная таблица страниц.

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

Содержимое таблицы определяет соответствие виртуальной памяти физической для выполняющейся в данный момент программы/процесса. Соответствие определяется следующим образом: i-я строка таблицы соответствует i-й виртуальной странице.

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