Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
26-37.doc
Скачиваний:
10
Добавлен:
15.04.2019
Размер:
106.5 Кб
Скачать

33. Физическое и логическое адресное пространство. Механизм преобразования дыр в озу. Дефрагментация озу.

Адресное пространство — это просто диапазон адресов, обозначающих определенное место в памяти. Физические адреса — это реальные, аппаратные адреса, доступные в системе. Если в системе имеется 64 Мб памяти, в ней допустимые физические адреса могут находиться в диапазоне от 0 до 0x3fffffff (в шестнадцатиричном формате). Каждый адрес соответствует одному набору транзисторов в микросхемах SIMM, установленных вами (или изготовителем), и отдельному сочетанию сигналов на адресной шине процессора.

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

• Обычно программист обращается к памяти через

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

адреса

• Физический адрес – номер ячейки в микросхеме

памяти; выставляется на шине адреса.

• Привязка к физическим адресам – при загрузке

программы в память перед исполнением

• Имена переменных связываются с адресами ячеек в

2 этапа:

– система программирования (символьное имя – логический

адрес)

– ОС (логический адрес – физический адрес)

Преобразование адресов

– Отображение одного адресного

пространства на другое

– Пространство (в математике) - множество всех

возможных значений

Дефрагментация — процесс обновления и оптимизации логической структуры раздела диска с целью обеспечить хранение файлов в непрерывной последовательности кластеров. После дефрагментации ускоряется чтение и запись файлов, а следовательно и работа программ. Другое определение дефрагментации: перераспределение файлов на диске, при котором они располагаются в непрерывных областях.Длинные файлы занимают несколько кластеров. Если запись производится на незаполненный диск, то кластеры, принадлежащие одному файлу, записываются подряд. Если диск переполнен, на нем может не быть цельной области, достаточной для размещения файла. Тем не менее, файл все-таки запишется, если на диске много мелких областей, суммарный размер которых достаточен для записи. В этом случае файл записывается в виде нескольких фрагментов.Процесс разбиения файла на небольшие фрагменты при записи на диск называется фрагментацией. Если на диске много фрагментированных файлов, скорость чтения носителя уменьшается, поскольку поиск кластеров, в которых хранятся файлы, требует времени.Дефрагментация чаще всего используется для таких файловых систем, как File Allocation Table для MS-DOS и Microsoft Windows, так как в программах для работы с ними обычно не предусмотрено никаких средств для предотвращения фрагментации, и она появляется даже на почти пустом диске и небольшой нагрузке.

34. Многосекционная, много страничная организация памяти. Виртуальная память, таблица адресов страниц. Шина адреса.

Виртуа́льная па́мять (англ. Virtual memory) — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем или иным способом на физические адреса в памяти ЭВМ. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых адресных пространств (англ.), и обеспечить защиту памяти между различными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых страниц на вторичное хранилище.Шина адреса — компьютерная шина, используемая центральным процессором или устройствами, способными инициировать сеансы DMA, для указания физического адреса слова ОЗУ (или начала блока слов), к которому устройство может обратиться для проведения операции чтения или записи.Основной характеристикой шины адреса является её ширина в битах. Ширина шины адреса определяет объём адресуемой памяти. Например, если ширина адресной шины составляет 20 бит, и размер слова памяти равен одному байту (минимальный адресуемый объём данных), то объём памяти, который можно адресовать, составляет 220 = 1 048 576 байтов (1 МБайт) как в IBM PC/XT.С точки зрения архитектуры микропроцессорной системы, если не применять мультиплексирование, каждый бит в адресе определяется одним проводником (линией) в магистрали, по которой передаётся адрес.Если рассматривать структурную схему микро-ЭВМ, то адресная шина активизирует работу всех внешних устройств по команде, которая поступает с микропроцессора.

35.

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

36.

Фрагментация данных происходит, когда часть данных в памяти разбита во многие части. Инструмент дефрагментации должен перестроить блоки на диске так, чтобы блоки каждого файла были непрерывны. Есть два типа фрагментаций. Они - Внешняя Фрагментация и Внутренняя Фрагментация. Во внешней фрагментации, свободное пространство, которое является доступным для памяти, разделено на многие маленькие части. Складские площади имеют много различных размеров. В динамическом распределении памяти, можно было бы требовать блок, но непрерывный блок имеет свободное пространство. Есть десять блоков 300 байтов свободного пространства, отделенного распределенными областями; каждый все еще не может распределять требуемый блок 1000 байтов. Внешняя фрагментация также происходит в системах файла, так много файлов различных размеров созданы, размер изменения, и удалены. Эффект еще хуже, если файл, который разделен на многие маленькие части, удален, потому что это оставляет подобно маленькие области свободного пространства. Во внешней фрагментации, процесс перемещен в один большой смежный блок, оставляя все остающееся свободное пространство в одном большом блоке. Сборщики мусора перемещены, чтобы улучшить динамическую работу распределения памяти, и инструменты, которые дисководы выполняют. Во Внутренней фрагментации, потрачено впустую место. это часто принимается взамен увеличенной эффективности или простоты. Например, во многих системах файла, файлы всегда начинаются в начале сектора, который упрощает организацию и облегчает выращивать файлы. Любое место, перенесенное между последним байтом файла и первого байта следующего сектора - внутренняя фрагментация. Точно так же программа, которая распределяет единственный байт данных, часто распределяется много дополнительных байтов для metadata и выравнивания. Это дополнительное пространство - также внутренняя фрагментация. Другой общий пример: Письма часто сохраняются в 8-битовых байтах даже при том, что в стандартных строках ASCII 8-ой бит каждого байта - всегда ноль."Потраченные впустую" биты - внутренняя фрагментация. Подобные проблемы с отъездом сохраненных неиспользованных ресурсов появляются во многих других областях. Например, адреса IP могут только быть сохранены в блоках определенных размеров. Это вносит свой вклад в нехватку адреса IPv4. В отличие от других типов фрагментации, внутренняя фрагментация трудна исправить; обычно лучший способ удалять это - с изменением дизайна. Например, в динамическом распределении памяти, объединения памяти решительно вырезают внутреннюю фрагментацию, распространяя место наверху по большему числу объектов. Теперь продукты, проданные между фирмами различными странами - компоненты вместо конечных продуктов. Конечные продукты могут быть проданы внешней стороне область, в которой случается фрагментация. Производители в менее развитых странах получают позиции цепочки производства, которые добавляют меньше значения к конечному продукту. Их вызов должен "подняться вверх" на межнациональной цепочке производства. Цепочки производства - часто вертикальные иерархии, в которых большие многонациональные компании могут быть теми, кто продает конечные продукты и устанавливал стандарты производства для "меньших" производителей. Этот вид фрагментации - важная часть современной глобализации. Фрагментация имеет различное значение, фрагментация в терминах экономики означает организацию, которая используется для различных стадий производства, которые разделены среди различных поставщиков, которые расположены в различных странах.

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

Непрерывное распределение памяти

Такая схема распределения памяти предполагает её разбиение на 3 части:

1) область операционной системы;

2) область загрузки (размещается исполняемая программа);

3) свободная область.

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

Такая схема распределения сопровождается двумя видами потерь вычислительных ресурсов:1) потери процессорного времени, когда задача ожидает окончания операций ввода/вывода;2) неэффективное использование или потери оперативной памяти, т.к. задача не занимает память целиком. Тем более, если режим работы однопрограммный. Примером подобного распределения является распределение памяти в MS-DOS, когда реализация распределения недорогая, и от многих функций ОС можно отказаться (например, защита памяти). Но, увы, это однопрограммная ОС.В случаях, когда логическое (и виртуальное) адресное пространство превышает объём свободной области памяти, используется оверлейное распределение памяти (от overlay − перекрытие). При этом программа разбивается на сегменты, один из которых – главный. В оперативной памяти располагается главный сегмент и несколько неперекрывающихся рабочих сегментов. Остальные сегменты располагаются во внешней памяти. После выполнения текущего сегмента происходит обращение к ОС с указанием следующего сегмента, который должен быть активизирован, либо этим занимается главный сегмент.Существует несколько подходов к организации сегментирования. Первоначально порядок сегментирования и очерёдность вызова сегментов в оперативную память определяли сами программисты, затем этим стали заниматься системы программирования, которым просто сообщалось, что тот или иной модуль является оверлейным. При обращении к нему модуль загружается в память и ему передаётся управление.

Стратегия простого распределения памяти была самой первой. Она состоит

в том, что доступная память делится на блоки фиксированного размера,

одни из которых доступны только ядру, а другие — остальным процессам.

Для разделения памяти на блоки используются различные аппаратные и

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

37.

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

Уте́чка па́мяти (англ. memory leak) — процесс неконтролируемого уменьшения объёма свободной оперативной памяти (RAM) компьютера, связанный с ошибками в работающих программах, вовремя не освобождающих ненужные уже участки памяти, или с ошибками системных служб контроля памяти. Динамическая память является ограниченным ресурсом. Управление динамической памятью программы обычно осуществляется библиотекой языка программирования, которая сама работает поверх динамической памяти, предоставляемой операционной системой.Утечки памяти приводят к тому, что потребление памяти программой неконтролируемо возрастает, в результате рано или поздно вступают в действие архитектурные ограничения среды исполнения (операционной системы, виртуальной машины, ЭВМ), и тогда новое выделение памяти становится невозможным. В этой ситуации в программе, которая запрашивает память, обычно происходит аварийная остановка. Это может по стечению обстоятельств произойти и совсем с другой программой после того, как программа, подверженная утечкам, потребит всю память ЭВМ.

14

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]