Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Функции ОС по управлению памятью

Анализ и проверка домашней работы

Организационный момент.

Ход лекции.

3. Ответьте на вопросы:

1. Расскажите об устройстве жесткого диска.

2. Дайте определение понятиям сектор, кластер.

3. Назовите основные критерии эффективности физической организации файлов.

4. Дайте краткую характеристику системе FAT.

5. Дайте краткую характеристику системе S5.

6. Дайте краткую характеристику системе NTFS.

7. Дайте характеристику файлов NTFS.

8. Чем отличается переключение по прерыва­нию от переключения по команде безусловно­го перехода?

9. На какие классы делятся прерывания в зависимости от источника?

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

11. Как называются процедуры, вызываемые по прерываниям?

12. Какие действия выполняет диспетчер прерываний?

13. Опишите способы с помощью которых шины выполняют пре­рывания?

14. Опишите процедуру регистра­ции вектора обработки прерываний для определенного устройства?.

Под памятью ( memory) здесь подразумевается оперативная память компьюте­ра. В отличие от памяти жесткого диска, которую называют внешней памятью (storage), оперативной памяти для сохранения информации требуется постоян­ное электропитание.

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

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

Функциями ОС по управлению памятью в мультипрограммной системе явля­ются:

· отслеживание свободной и занятой памяти;

· выделение памяти процессам и освобождение памяти по завершении процес­сов;

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

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

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

Защита памяти — это еще одна важная задача операционной системы, которая состоит в том, чтобы не позволить выполняемому процессу записывать или чи­тать данные из памяти, назначенной другому процессу. Эта функция, как прави­ло, реализуется программными модулями ОС в тесном взаимодействии с аппа­ратными средствами.

Типы адресов

Для идентификации переменных и команд на разных этапах жизненного цикла программы используются символьные имена (метки), виртуальные адреса и фи­зические адреса.

1. Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.

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

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

Совокупность виртуальных адресов процесса называется виртуальным адресным пространством. Диапазон возможных адресов виртуального пространства у всех процессов является одним и тем же. Например, при использовании 32-разрядных виртуальных адресов этот диапазон задается границами 0000000016, FFFFFFFF16. Тем не менее, каждый процесс имеет собственное виртуальное адресное пространство — транслятор присваивает виртуальные адреса переменным и кодам каждой программе независимо.

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

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

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

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

Существуют два принципиально отличающихся подхода к преобразованию вир­туальных адресов в физические.

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

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

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

Необходимо различать максимально возможное виртуальное адресное простран­ство процесса и назначенное (выделенное) процессу виртуальное адресное про­странство.В первом случае речь идет о максимальном размере виртуального адресного пространства, определяемом архитектурой компьютера, на котором работает ОС, и, в частности, разрядностью его схем адресации (32-битная, 64-бит­ная и т. п.). Например, при работе на компьютерах с 32-разрядными процессорами Intel Pentium операционная система может предоставить каждому процессу вир­туальное адресное пространство до 4 Гбайт (232). Однако это значение представ­ляет собой только потенциально возможный размер виртуального адресного пространства, который редко на практике бывает необходим процессу. Процесс использует только часть доступного ему виртуального адресного пространства.

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

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

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

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

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

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

Обычно виртуальное адресное пространство процесса делится на две непрерыв­ные части: системную и пользовательскую. В некоторых ОС (например, Win­dows NT, OS/2) эти части имеют одинаковый размер — по 2 Гбайт, хотя в прин­ципе деление может быть и другим, например 1 Гбайт — для ОС, и 2 Гбайт — для прикладных программ. Часть виртуального адресного пространства каждо­го процесса, отводимая под сегменты ОС, является идентичной для всех процес­сов. Поэтому при смене активного процесса заменяется только вторая часть вир­туального адресного пространства, содержащая его индивидуальные сегменты, как правило, — коды и данные прикладной программы. Архитектура современных процессоров отражает эту особенность структуры виртуального ад­ресного пространства, например, в процессорах Intel Pentium существует два тина системных таблиц: одна — для описания сегментов, общих для всех процес­сов, а другая — для описания индивидуальных сегментов данного процесса. При смене процесса первая таблица остается неизменной, а вторая заменяется новой. Описанное выше назначение двух частей виртуального адресного пространства - для сегментов ОС и для сегментов прикладной программы — является типичным, по не абсолютным. Имеются и исключения из общего правила, В некоторых ОС существуют системные процессы, порожденные для решения внутри системных задач ОС. В этих процессах отсутствуют сегменты прикладной программы, они могут расположить некоторые свои сегменты (сегменты ОС) в общей части виртуального адресного пространства, а некоторые — в индивидуальной части, обычно предназначенной для прикладных сегментов. И наоборот, в об­щей, системной части виртуального адресного пространства размещаются сегменты прикладного кода, предназначенные для совместного использования несколькими прикладными процессами.

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

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

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

Домашнее задание: конспект.

Закрепление материала:

Ответьте на вопросы:

1. В чем состоит принципиальное отличие состояний «ожидания» и «готовности» потока, ведь и в том и в другом он ожидает некоторого события?

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

3. Как делится виртуальное адресное пространство процесса?

4. Что из себя представляет назначенное виртуальное адресное пространство?

5. В чем состоит различие максимально возможного виртуального адресного простран­ство процесса и назначенного (выделенного) процессу виртуального адресного про­странства?.

6. Что называется виртуальным адресным пространством?

7. Как идентифицируются переменные и команды на разных этапах жизненного цикла программы?

8. В чем состоит функция защиты памяти?

9. Перечислите функции ОС по управлению памятью в мультипрограммной системе.

 

Литература:

1. Богумирский Б. Энциклопедия Windows 98 (второе издание). — СПб.: Питер, 1999,896с.

2. Борланд Р. Знакомство с Windows 98. — М.: Microsoft Press Русская редакция,1997,376с.

3. Борланд Р. Эффективная работа с Word 97. - СПб.: Питер, 1998,960 с.

4. Коварт Р., Уотерс Б. Windows NT Server 4: Учебный курс. — СПб.: Питер, 1999, 448с.

5. Мэтьюз М. Windows 98: Книга ответов. - СПб.: Питер, 1999, 464 с.

6. Немнюгин С. Pascal: Учебный курс. — СПб.: Питер, 1999.

7. Новейший самоучитель работы на компьютере. Под ред. Симоновича С. — М.: Десс;

 

<== предыдущая лекция | следующая лекция ==>
Анализ конечных автоматов | Сутність підприємництва і його початковість
Поделиться с друзьями:


Дата добавления: 2014-01-13; Просмотров: 2106; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.044 сек.