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

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


контрольная работа Контрольная работа по дисциплине: «Системное программное обеспечение»

Информация:

Тип работы: контрольная работа. Добавлен: 29.05.13. Сдан: 2013. Страниц: 18. Уникальность по antiplagiat.ru: < 30%

Описание (план):


МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ  ОТКРЫТЫЙ УНИВЕРСИТЕТ

ИМЕНИ В.С. ЧЕРНОМЫРДИНА

ФАКУЛЬТЕТ КОМПЬЮТЕРНЫЕ И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

 

 

 

 

 

 

 

 

 

КОНТРОЛЬНАЯ РАБОТА

По дисциплине: «Системное программное обеспечение»

 

 

 

 

Выполнил: *.

Специальность: *

Шифр: *

Преподаватель: *

 

 

 

 

 

                                           

Москва, МГОУ, 201*

Задание 1.

Вопрос 13: Системный вызов, особенности его реализации в микроядерной архитектуре. Сравнение с классической архитектурой.

 

Ответ:

Большинство современных ОС – хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Единой архитектуры ОС не существует, но есть универсальные подходы к структурированию ОС

Наиболее общий подход к структуризации ОС – разделение ее модулей на две  группы:

- модули, выполняющие основные функции ОС (ядро)

- модули, выполняющие вспомогательные функции ОС

Модули ядра управляют процессами, памятью, УВВ. Ядро – сердцевина ОС, без него она неработоспособна

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

Интерфейс прикладного  программирования (API, Application Programming Interface) – функции ядра ОС, которые могут вызываться приложениями

Функции модулей ядра – наиболее часто используемые функции ОС, поэтому  скорость их выполнения определяет производительность системы в целом. Для обеспечения  высокой скорости работы ОС все модули ядра или большая их часть постоянно  находятся в ОП, то есть являются резидентными

Некоторые компоненты ОС оформлены  как обычные приложения – в  виде исполняемых модулей стандартного для данной ОС формата, поэтому сложно провести грань между ОС и такими приложениями:

Вспомогательные модули ОС:

- утилиты – программы, решающие отдельные задачи управления и сопровождения компьютерной системы

- системные обрабатывающие программы – текстовые и графические редакторы, компиляторы, компоновщики, отладчики

- программы предоставления дополнительных услуг – специальный вариант пользовательского интерфейса, калькулятор, игры

- библиотеки процедур упрощают разработку приложений (математические функции, функции ввода-вывода)

Для надежного управления выполнением  приложений ОС имеет по отношению  к приложениям определенные привилегии, иначе некорректно работающее приложение может вмешаться в работу ОС и, например, разрушить часть ее кодов. Обеспечить привилегии ОС невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать минимум два режима работы – пользовательский (user mode) и привилегированный – режим ядра (kernel mode)

 

 

 

Архитектура ОС с ядром  в привилегированном режиме:

 

Приложения подчинены за счет запрета  выполнения в пользовательском режиме критичных команд, связанных с  переключением процессора с задачи на задачу, управлением УВВ, доступом к механизмам распределения и  защиты памяти

Между количеством уровней привилегий, реализуемых аппаратно, и количеством  уровней привилегий, поддерживаемых ОС, нет прямого соответствия. Например, на базе четырех уровней, обеспечиваемых процессорами Intel, ОС OS/2 строит трехуровневую систему привилегий, а Windows NT, UNIX и некоторые другие ОС ограничиваются двухуровневой системой. На основе двух режимов привилегий процессора ОС может построить сложную и гибкую систему индивидуальной защиты ресурсов, пример которой – типичная система защиты файлов и каталогов (позволяет задать для любого пользователя права доступа к каждому из файлов и каталогов)

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

Смена режимов при выполнении системного вызова к привилегированному ядру:

 

ВС, работающую под управлением  ОС на основе ядра, можно рассматривать  как систему, состоящую из трех иерархически расположенных слоев: нижний – аппаратура, промежуточный – ядро, верхний – утилиты, обрабатывающие программы и приложения

 

Трехслойная схема ВС:

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

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

Ядро может состоять из следующих  слоев:

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

- машинно-зависимые компоненты ОС – модули, в которых отражается специфика аппаратной платформы компьютера; в идеале этот слой полностью экранирует вышележащие слои ядра от особенностей аппаратуры

- базовые механизмы ядра – программное переключение контекстов процессов, диспетчеризация прерываний, перемещение страниц из памяти на диск и обратно

- менеджеры ресурсов (процессов, ввода-вывода, ФС, ОП)

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

Приведенное разбиение ядра ОС на слои условное, в реальной системе  количество слоев и распределение  функций между ними может быть иным

Архитектура ОС, основанная на привилегированном  ядре и приложениях пользовательского  режима, стала, по существу, классической. Ее используют многие популярные ОС, в  том числе многочисленные версии UNIX, IBM OS/390, OS/2 и с определенными  модификациями – Windows NT

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

Перенос основного объема функций ядра в пользовательское пространство:

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

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

Реализация системного вызова в микроядерной архитектуре:

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

Достоинства микроядерной архитектуры:

- переносимость: весь машинно-зависимый код изолирован в микроядре, поэтому для переноса системы на новый процессор требуется меньше изменений

- расширяемость

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

- надежность: каждый сервер выполняется в виде отдельного процесса в своей собственной области памяти, то есть защищен от других серверов ОС (в традиционной ОС модули ядра могут влиять друг на друга)

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

Недостаток микроядерной архитектуры – меньшая производительность: при классической организации ОС выполнение системного вызова сопровождается двумя переключениями режимов, при микроядерной – четырьмя:

 

Именно по этой причине микроядерный подход не получил такого широкого распространения, которое ему предрекали. Пример микроядерной ОС – VM/370 (используется в мейнфреймах)

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

 

Вопрос 33: Виртуальная память и механизмы преобразования адресов. Виды организации памяти: сегментная, страничная память.

Ответ:

Система управления памятью. Организация виртуальной памяти     

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

Существует два способа распределения  памяти : статический и динамический.  

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

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

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

Организация виртуальной  памяти  

Виртуальная память (Virtual Memory) представляет собой программно-аппаратное средство расширения пространства памяти, предоставляемой  программе в качестве оперативной. Эта память физически реализуется  в оперативной и дисковой памяти под управлением соответствующей  операционной системы. Требуется так  организовать работу процессора с дисковой памяти, чтобы возникала иллюзия  работы только с оперативной памятью.

Виртуальное пространство памяти разбито  на страницы фиксированного размера, а  в физической оперативной памяти в каждый момент времени присутствует только часть из них. Остальные страницы хранятся на диске, откуда операционная система может "подкачать" их в  физическую память, предварительно выгрузив на диск часть неиспользуемых в данный момент модифицированных страниц. Обращение  процессора к ячейке виртуальной  памяти, присутствующей в физической памяти, происходит обычным способом. Если же затребованная область в  данный момент не отображена в физической памяти, процессор вырабатывает исключение (внутреннее прерывание), по которому операционная система программно организует замещение страниц, называемое свопингом (Swapping). Виртуальную память поддерживают процессоры, работающие в защищенном режиме, начиная с 80286, но реально ее широко стали использовать только в операционных системах и оболочках для 32-разрядных процессоров (80386 и далее).  Максимальный объем  виртуальной памяти определяется размером файла подкачки (Swap File), выделяемом на жестком диске для нужд виртуальной памяти.    

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

  • Трансляцию виртуального адресного пространства процесса на физическую память. Это позволяет ссылаться на конкретные адреса физической памяти потокам процесса, работающим в  виртуальном адресном пространстве.
  • Подкачку части содержимого памяти с диска, когда потоки пытаются задействовать больший объем физической памяти, чем тот, который имеется в наличии, и выгрузку страниц обратно по мере необходимости.   
     
    Виртуальная память может использовать страничную и сегментную адресации. При использовании страничной адресации в специальные сегментные регистры процессора загружаются селекторы, базовые адреса которых равны нулю, а размер сегмента составляет 4 Гбайта. И хотя для микропроцессора  механизм сегментной адресации продолжает работать, основным механизмом формирования адреса становится страничная адресация. Такая модель памяти и называется плоской (FLAT). Логическая адресация в такой модели определяется только  смещением. Для программиста область памяти, адресуемая смещением, находится в полном распоряжении. Это и есть логический адрес, который преобразуется операционной системой в физический.

 

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

 Логический адрес формируется  при обращении к виртуальному  адресному пространству. 
 Блок сегментации транслирует логический адрес в линейный.  
Физический  адрес образуется после преобразования линейного адреса блоком страничной переадресации.  
    И так, выполняемая программа загружается в оперативную память не целиком, а отдельными страницами (рис1.). Страница с которой работает процессор называется активной.

Рис.1.  Отражение страниц дискового пространства 
 на пространство оперативной памяти.       

В случае  динамического распределения памяти (по запросу программы), адрес содержит номер виртуальной страницы и номер слова в странице. Для защиты памяти от записи и чтения другими процессами необходима соответствующая схема трансляции адреса, которая разрешает доступ к данной области памяти только определенной задаче.      
Для переадресации используется глобальная ( GDT) и локальная (LDТ)  таблицы переадресации.  
                     

 

 

 

 

 

 

 Динамическая трансляция виртуального адреса в реальный

Рис.2. Преобразование виртуального адреса       

Рассмотрим систему переадресации  с сегментацией памяти (рис2.). 
    В глобальной таблице компьютера хранятся сведения о нахождении таблицы сегментов каждой задачи. Адрес таблицы сегментов для выполняемой задачи загружается в управляющий регистр. По адресу таблицы и номеру сегмента виртуального адреса определяется адрес таблицы страниц. По адресу таблицы страниц и номеру страницы виртуального  адреса определяется адрес страницы в таблице страниц (виртуальный адрес, который  преобразуется в реальный в буфере быстрой переадресации). Из буфера быстрой переадресации считывается реальный адрес страницы. Полный реальный адрес равен реальному адресу страницы плюс номер ячейки памяти (смещение в странице). 
        Если разбиение на сегменты не используется, то для трансляции логического адреса используется двухуровневая таблица страниц. Виртуальный адрес интерпретируется как совокупность 3 элементов: указателя каталога страниц, указателя таблицы страниц и указателя слова на странице.  
    У каждого процесса (каждой задачи) есть один каталог страниц, который содержит адреса всех таблиц страниц для данного процесса. Указатель каталога страниц применяется для поиска каталога, из каталога определяется указатель таблицы страниц для данного процесса, по указателю таблицы страниц находится нужная таблица, из которой читается адрес, содержащий указатель для требуемой страницы (ее физический адрес). Остается определить реальный адрес данных, расположенных на этой странице.  Указатель слова  позволяет найти конкретный адрес на физической странице. 
    Но что делать, если количество  страниц во всех линейных адресных пространствах выполняемых процессов превышает объем оперативной  памяти и поэтому невозможно поставить в соответствие каждой из них свою страницу реальной памяти? Для решения этой проблемы  дополнительно ведется учет присутствия страницы в физической памяти (вводится дескриптор страницы где предусмотрен флаг (бит) реального присутствия страницы в оперативной памяти). Наличие такого бита позволяет отметить часть страниц, непомещающихся в физической памяти, как временно отсутствующие.  
    Если происходит обращение к такой странице, то процессор формирует прерывание. Получив прерывание по отсутствию страницы, операционная система может записать одну из присутствующих в памяти страниц на диск и отметить ее как временно отсутствующую во всех адресных пространствах, в которых она была видна. На освободившееся место  с диска считывается та страница, из-за которой произошло прерывание. Заполняются все таблицы, по которым ведется поиск данной страницы и в дескрипторе страницы устанавливается флажок ее реального присутствия в оперативной памяти. 
     После возврата из программы - обработчика прерывания процессор повторит попытку доступа к памяти, но теперь нужная страница уже отмечена как присутствующая и прерывания не произойдет. Если  вновь потребуется та страница, которая была записана на диск, то снова произойдет прерывание, ведь эту страницу пометили как временно отсутствующую в памяти. В ответ на это прерывание на диск будет перемещена еще какая-нибудь страница, а на ее место с диска будет загружена требуемая. 
 Этот процесс называется страничным обменом или свопингом (paging или swapping). Страницы, помещаемые на диск хранятся в специальном файле, файле подкачки (swap-файле). Взаимодействие с файлом подкачки происходит значительно медленнее, чем с оперативной памятью компьютера, поэтому оптимизация работы с этим файлом зачастую дает возможность увеличить скорость работы системы памяти. Теоретически, наиболее оптимальным считается объем файла подкачки, превышающий объем установленной на компьютере оперативной памяти примерно в два раза. 
     Если страница не изменялась с момента последнего считывания с диска, то при ее замене другой страницей нет необходимости повторно записывать ее на диск. Можно просто пометить ее как отсутствующую. Для слежения за изменением страницы современные процессоры поддерживают еще один флаг в дескрипторе страницы. Другой важный флаг, который поддерживается аппаратурой процессора - это флаг обращения. Он устанавливается всегда, когда происходит обращение к странице на чтение или запись. Операционная система может время от времени просматривать страничные таблицы, проверять и сбрасывать этот бит, выявляя те страницы, которые часто используются программами.   

 Для того, чтобы уменьшить количество дисковых операций, операционная система использует ту или иную стратегию страничного обмена. Оптимальная стратегия  состоит в том, чтобы возвращать на диск ту страницу, которая дольше всего не понадобиться программам. Одной из лучших стратегий страничного обмена является LRU (Least Recently Used). Алгоритм LRU предполагает, что на диск надо переносить ту страницу, которая дольше всего не использовалась. Существуют и более сложные алгоритмы, но обычно они базируются на LRU. 
     В некоторых случаях операционная система заранее знает, что определенные страницы, которые сейчас находятся на диске, понадобятся ей (или прикладным программам) в ближайшее время. Тогда она может заранее перенести их в оперативную память, не дожидаясь прерываний по отсутствию страницы. Такая операция называется страничной предвыборкой (page prefetch). Аналогичный прием может быть использован и для записи на диск пассивных страниц раньше, чем будет затребовано место, занимаемое этой страницей.

Сегментная организация виртуальной  памяти

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

Виртуальный адрес при сегментной организации памяти может быть представлен  парой (g, s), где g — номер сегмента, а s — смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s.

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

Страничная организация  виртуальной памяти

В большинстве современных операционных систем виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Процессор преобразует номер виртуальной страницы в адрес соответствующей ей физической страницы при помощи буфера ассоциативной трансляции. Если ему не удалось это сделать, то требуется обращение к таблице страниц (так называемый Page Walk), что может сделать либо сам процессор, либо операционная система (в зависимости от архитектуры). Если страница выгружена из оперативной памяти, то операционная система подкачивает страницу с жёсткого диска (см. свопинг). При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются тех частей, которые отвечают за обработку аппаратных прерываний, работу с таблицей страниц и использование файла подкачки).

Сегментно-страничный способ организации виртуальной памяти

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

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

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

В целом, преобразование виртуального адреса в физический адрес происходит в два этапа:     

• На первом этапе исходный виртуальный  адрес, заданный в виде пары (номер  сегмента, смещение), преобразуется  в промежуточный линейный виртуальный  адрес байта. Линейный виртуальный  адрес вычисляется путем сложения базового адреса сегмента, извлеченного из дескриптора, и смещения (если доступ к сегменту разрешен).

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

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

Вопрос 53: Реальный и защищенный  режим работы процессора i80x86. Системные регистры микропроцессоров i80x86. Структуры данных реального режима.

 

Ответ: Реальный и защищенный режимы работы процессора.

Широко известно, что первым микропроцессором, на базе которого был создан персональный компьютер IBM PC, был Intel 8088. Этот микропроцессор отличался от первого 16-разрядного микропроцессора фирмы Intel (микропроцессора 8086), прежде всего, тем, что у него была 8-разрядная шина данных, а не 16-разрядная (как у 8086). Оба этих микропроцессора предназначались для создания вы- числительных устройств, работающих в однозадачном режиме, то есть специальных аппаратных средств для поддержки надежных и эффективных мультипрограммных операционных систем в них не было.

Однако к тому времени, когда  разработчики осознали необходимость  включения специальной аппаратной поддержки мультипрограммных вычислений, уже было создано очень много  программных продуктов. Поэтому  для совместимости с первыми  компьютерами в последующих версиях  микропроцессоров была реализована  возможность использовать их в двух режимах: реальном (real mode) — так назвали режим работы первых 16-разрядных микропроцессоров — и защищенном (protected mode), означающем, что параллельные вычисления могут быть защищены аппаратно-программными механизмами.


и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.