Добавил:
По своей натуре перфекционист. Поэтому люблю все аккуратно оформлять и упорядочивать, складывать по полочкам. Вот, не пропадать же добру, нажитому за четыре кропотливых семестра. Тут я выложил все мои ответы, курсовые, отчеты и некоторые ДЗ. Они могут вам помочь для получения зачета или сдачи экзамена. Если чего-то не нашли в папочках, то попытайте удачу в разделе НЕОТСОРТИРОВАННОЕ на моей страничке, там все 4 семестра разложены по папкам. ГРУППА КТ-43-15. Годы обучения 2015-2019. Коллекция будет пополняться. Что ж, удачки :З Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
112
Добавлен:
25.01.2018
Размер:
2.28 Mб
Скачать

несмежных участках РОП. Достоинства: 1.Уменьшение временной фрагментации, так как естественно учитывается свойство локальности программ. 2.Легко совмещается с использованием общих процессов, поскольку данные и программа целиком находятся в одном блоке. 3.Возможность обеспечить четкое управление доступом к сегменту со стороны общих процессов и их полную защиту. Недостатки: 1.Более сложное управление и защита ОП. Здесь уже не достаточно пары граничных регистров, а необходимы ключи защиты индивидуальных сегментов памяти. 2.Может возникнуть временная фрагментация для больших размеров процедур и данных.

35. Сегментно-страничная организация памяти.

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

36. Таблица страниц. Многоуровневая и инвертированная таблицы страниц.

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

Что придумали:

1) Многоуровневые таблицы страниц. Достоинства: не надо иметь в памяти постоянно всю таблицу страниц, а только таблицу разделов; Недостатки: дополнительный этап преобразования адреса. Для каждого раздела строится собственная таблица страниц. Количество дескрипторов в таблице и их размер подбираются такими, чтобы объем таблицы оказался равным объему страницы. Например, в процессоре Pentium при размере страницы 4 Кбайт длина дескриптора страницы составляет 4 байта и количество записей в таблице страниц, помещающейся на страницу, равняется соответственно 1024. Каждая таблица страниц описывается дескриптором, структура которого полностью совпадает со структурой дескриптора обычной страницы. Эти дескрипторы сведены в таблицу разделов, называемую также каталогом страниц. Физический адрес таблицы разделов активного процесса содержится в специальном регистре процессора и поэтому всегда известен операционной системе. Страница, содержащая таблицу разделов, никогда не выгружается из памяти, в противном случае работа виртуальной памяти была бы невозможна. Рисунок 13. Схема преобразования виртуального адреса для двухуровневой структуризации адресного пространства

1.Путем отбрасывания k+n младших разрядов в виртуальном адресе определяется номер раздела, к которому принадлежит данный виртуальный адрес. 2.По этому номеру из таблицы разделов извлекается дескриптор соответствующей таблицы страниц. Проверяется, находится ли данная таблица страниц в памяти. Если нет, происходит страничное прерывание и система загружает нужную страницу с диска. 3.Далее из этой таблицы страниц извлекается дескриптор виртуальной страницы, номер которой содержится в средних п разрядах преобразуемого виртуального адреса. Снова выполняется проверка наличия данной страницы в памяти и при необходимости ее загрузка. 4.Из дескриптора определяется номер (базовый адрес) физической страницы, в которую загружена данная виртуальная страница. К номеру физической страницы пристыковывается смещение, взятое из к младших разрядов виртуального адреса. В результате получается искомый физический адрес.

2) Инвертированные таблицы страниц. Достоинства: гораздо меньше по объёму. Недостатки: не совсем ясно, как в ней искать виртуальный адрес. Этот подход применяется на машинах PowerPC, некоторых рабочих станциях Hewlett-Packard, IBM RT, IBM AS/400 и ряде других. В этой таблице содержится по одной записи на каждый страничный кадр физической памяти. Существенно, что достаточно одной таблицы для всех процессов. Таким образом, для хранения функции отображения требуется фиксированная часть основной памяти, независимо от разрядности архитектуры, размера и количества процессов. Например, для компьютера Pentium c 256 Мбайт оперативной памяти нужна таблица размером 64 Кбайт строк. Несмотря на экономию оперативной памяти, применение инвертированной таблицы имеет существенный минус – записи в ней (как и в ассоциативной памяти) не отсортированы по возрастанию номеров виртуальных страниц, что усложняет трансляцию адреса. Один из способов решения данной проблемы – использование хеш-таблицы виртуальных адресов. При этом часть виртуального адреса, представляющая собой номер страницы, отображается в хеш-таблицу с использованием функции хеширования. Каждой странице физической памяти соответствует одна запись в хештаблице и инвертированной таблице страниц. Виртуальные адреса, имеющие одно значение хеш-функции, сцепляются друг с другом. Обычно длина цепочки не превышает двух записей.

37. Стратегии замещения страниц: методы LRU, NFU, старения, «второй шанс».

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

1)Алгоритм замещения наименее востребованной страницы. LRU. В основе неплохого приближения к оптимальному алгоритму лежит наблюдение, что страницы, интенсивно используемые несколькими последними командами, будут, скорее всего, снова востребованы следующими несколькими командами. И наоборот, долгое время невостребованные страницы наверняка еще долго так и останутся невостребованными. Эта мысль наталкивает на вполне осуществимый алгоритм: при возникновении ошибки отсутствия страницы нужно избавиться от той страницы, которая длительное время не была востребована. Эта стратегия называется замеще-

нием

наименее

востребованной

страницы

LRU

(Least

Re-cently

Used).

 

Теоретически реализовать алгоритм LRU вполне возможно, но его практическая реализация дается не-

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

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

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

называется алгоритмом нечастого востребования — NFU (Not Frequently Used). Для его реализации потребуется программный счетчик с начальным нулевым значением, связанный с каждой страницей. При каждом прерывании от таймера операционная система сканирует всё находящиеся в памяти страницы. Для каждой страницы к счетчику добавляется значение бита R, равное 0 или 1. Счетчики позволяют приблизительно отследить частоту обращений к каждой странице. При возникновении ошибки отсутствия страницы для замещения выбирается та страница, чей счетчик имеет наименьшее значение. Основная проблема при использовании алгоритма NFU заключается в том, что он никогда ничего не забывает. К примеру, при многопроходной компиляции те страницы, которые интенсивно использовались при первом проходе, могут по-прежнему сохранять высокие значения счетчиков и при последующих проходах. Фактически если на первый проход затрачивается больше времени, чем на все остальные проходы, то страницы, содержащие код для последующих проходов, могут всегда иметь более низкие показатели счетчиков, чем страницы, использовавшиеся при первом проходе. Вследствие этого операционная система будет замещать нужные страницы вместо тех, надобность в которых уже отпала.

К счастью, небольшая модификация алгоритма NFU позволяет достаточно близко подойти к имитации алгоритма LRU. Модификация состоит из двух частей. Во-первых, перед добавлением к счетчикам значения бита R их значение сдвигается на один разряд вправо. Во-вторых, значение бита R добавляется к самому левому, а не к самому правому биту.

3) Старение. Модификация алгоритма LRU: бит использования добавляется не в правый, а в левый бит счетчика, и перед добавлением счетчик сдвигается вправо.

4)Алгоритм «второй шанс». Простой модификацией алгоритма FIFO, исключающей проблему удаления часто востребуемой страницы, может стать проверка бита R самой старой страницы. Если его значение равно нулю, значит, страница не только старая, но и невостребованная, поэтому она тут же удаляется. Если бит R имеет значение 1, он сбрасывается, а страница помещается в конец списка страниц и время ее загрузки обновляется, как будто она только что поступила в память. Затем поиск продолжается. Действие этого алгоритма, названного «второй шанс», показано на рис. с A по H содержатся в связанном списке отсортированными по времени их поступления в память. Предположим, что ошибка отсутствия страницы возникла на отметке времени 20. Самой старой является страница A, время поступления которой соответствует началу процесса и равно 0. Если бит R для страницы A сброшен, страница либо удаляется из памяти с записью на диск (если она измененная), либо просто удаляется (если она неизмененная). Но если бит R установлен, то A помещается в конец списка и ее «время загрузки» переключается на текущее (20). Также при этом сбрасывается бит R. А поиск подходящей страницы продолжается со страницы B.

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

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

38. Алгоритм рабочего набора, часов, WS-Clock.

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

Алгоритм WSClock. Основан на часовом алгоритме, но с использованием информации о рабочем наборе. Ведется структура в виде кольцевого списка страничных блоков. Вначале список пустой. По мере прихода страниц, они поступают в список, формируя кольцо. Каждая запись, кроме бит R и M, содержат время последнего использования. Если бит R равен 1, это значит, что страница использовалась за последний тик таймера, и не является оптимальным кандидатом на удаление. Если бит R равен 0, и времени от момента последнего использования прошло много, то страница не входит в рабочий набор, и в данный страничный блок просто загружается новая страница. Если у такой страницы были изменения, и ее необходимо сохранить на диск. Чтобы избежать переключения процессов, запись на диск записывается в очередь планировщика, а указатель стрелка на начало (текущую запись)

39. Иерархия памяти и кэширование.

Кэширование. Кэширование - способ увеличения быстродействия системы за счет хранения часто используемых данных и кодов в «кэш-памяти 1-го уровня» (быстрой памяти), находящейся внутри микропроцессора. Кэш-память - очень быстрое запоминающее устройство (время выборки из ОЗУ» 60-70 нс; из кэша - 10-20 нс, т.е. в 3-4 раза быстрее)

Идея Команды из ОП выбираются и пересылаются в процессор, а их копии помещаются в кэш.

Данные из основной памяти также пересылаются в процессор, а их копии помещаются в кэш.

Если команда или данные понадобятся еще раз, они будут прочитаны не из памяти, а из кэша (например, циклы).

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

Обычно в компьютере имеется два уровня кэш-памяти:

Первичный кэш располагается на микросхеме процесcора, называется кэшем первого уровня (L1)

Вторичный кэш располагается между первичным кэшем и остальной памятью, имеет больший объем и называется кэшем второго уровня (L2).

. Быстрее всего осуществляется доступ к данным, хранящимся в регистрах процессора (самый маленький объем)

. Кэш процессора (L1) – небольшой объем

. Вторичный кэш (L2) – объем больше

. Основная память (ОП) – значительно больше и намного медленнее кэша (в типичном компьютере время доступа к ОП в 10 раз дольше времени доступа к кэшу L1).

. Дисковая память – огромный объем недорогой памяти. Очень медленные операции.

 

Управление

иерархией

памяти

«Идея управления иерархической системой памяти состоит в том, чтобы переместить команды и данные, которые будут использоваться в ближайшее время, как можно ближе к процессору» Каждый элемент, к которому обращается процессор, помещается в кэш и остается там (локализация по времени).

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

«Когда кэш полон и обращение происходит к отсутствующему слову памяти, принимается решение: какой из блоков удалить из кэша, чтобы добавить новый блок, содержащий требуемое слово». Intel 80386 Впервые на кристалле микропроцессора кэш-память 1 уровня (L1) – для временного хранения команд и данных (Основной кэш (L2) – на системной плате)

Intel 80486 На кристалле микропроцессора располагается также внутренняя кэш-память.

Объем кэш-памяти

составляет

8

Кбайт

(для

кэширования

и

кодов,

и

данных)

Intel Pentium (586)

Раздельное кэширование кода и данных Pentium содержит уже 2 блока кэш-памяти: один

для кода, один для данных (по 8 Кб) увеличивается скорость работы компьютера за счет одновременного быстрого доступа к коду и данным. Pentium Pro – 1995 год Кэш-память использует собственную шину, независимую от системной архитектура с двумя независимыми шинами Увеличение пропускной способности каналов передачи данных 16 Кб внутренней кэш-памяти (8+8)

256 Кб - кэш второго уровня (в одном модуле с микропроцессором, но на отдельной микросхеме!!!)

Pentium II – 1997 год Кэш-память L1 – 32 Кб (16+16) Кэш-память L2 – 32 Кб

Pentium

 

III

1999

 

год

Улучшена

работа

кэша

L2

(объем

256

Кб)

Pentium

 

4

2000

 

год

(7 поколение компьютеров)

Кэш-память с отслеживанием выполнения команд Кэш-память L2 (256 Кб) интегрирована в микросхему.

Кэши L1, L2 соединены и обеспечивается

быстрая

передача

данных

между ними

Процессоры Intel Celeron

 

 

 

 

 

упрощенная версия процессоров Pentium II, III и 4 (для дешевых ПК)

 

 

 

уменьшен

объем

кэша

L2

в

2

раза

Далее - многоядерные микропроцессоры.

 

 

 

 

 

40. Ассоциативная память. Реализация TLB.

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

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

Естественное решение проблемы ускорения – снабдить компьютер аппаратным устройством для отображения виртуальных страниц в физические без обращения к таблице страниц, то есть иметь небольшую, быструю кэш-память, хранящую необходимую на данный момент часть таблицы страниц. Это устройство называется ассоциативной памятью, иногда также употребляют термин буфер поиска трансляции (translation lookaside buffer – TLB).

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

Так как ассоциативная память содержит только некоторые из записей таблицы страниц, каждая запись

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

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

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

Число удачных поисков номера страницы в ассоциативной памяти по отношению к общему числу поисков называется hit (совпадение) ratio (пропорция, отношение). Иногда также используется термин "процент попаданий в кэш". Таким образом, hit ratio – часть ссылок, которая может быть сделана с использованием ассоциативной памяти. Обращение к одним и тем же страницам повышает hit ratio. Чем больше hit ratio, тем меньше среднее время доступа к данным, находящимся в оперативной памяти.

Предположим, например, что для определения адреса в случае кэш-промаха через таблицу страниц необходимо 100 нс, а для определения адреса в случае кэш-попадания через ассоциативную память – 20 нс. С 90% hit ratio среднее время определения адреса – 0,9x20+0,1x100 = 28 нс.

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

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

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

41. Сквозная запись, запись по требованию. Виды кэшей.

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

По методу сквозной записи обычно обновляется слово, хранящееся в основной памяти. Если в кэш-памяти существует копия этого слова, то она также обновляется. Если же в кэш-памяти отсутствует копия этого слова, то либо из основной памяти в кэш-память пересылается строка, содержащая это слово (метод WTWA — сквозная запись с распределением), либо этого не допускается (метод WTNWA — сквозная запись без распределения). Когда по методу сквозной записи область (строка) в кэш-памяти назначается для хранения другой строки, то в основную память можно не возвращать удаляемый блок, так как копия там есть. Однако в этом случае эффект от использования кэш-памяти отсутствует.

Кэш — это память с большей скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти с меньшей скоростью доступа (далее «основная память»). Кэширование применяется ЦПУ, жёсткими дисками, браузерами, веб-серверами, службами DNS и WINS.

Внутренний кэш процессора Работу внутренней кэш-памяти характеризуют следующие процессы: обслуживание запросов процессора на

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

Любой внутренний запрос процессора на обращение к памяти направляется на внутренний кэш. Теги четырех строк набора, который обслуживает данный адрес, сравниваются со старшими битами запрошенного физического адреса. Если адресуемая область представлена в строке кэш-памяти (случая попадания –cache hit), запрос на чтение обслуживается только кэш-памятью, не выходя на внешнюю шину. Запрос на запись модифицирует данную строку, и в зависимости от политики записи либо сразу выходит на внешнюю шину (при сквозной записи), либо несколько позже (при использовании алгоритма обратной записи).

Внешний кэш процессора

Внешняя кэш-память состоит из памяти данных, построенная на микросхемах SRAM, и контроллера кэша. В кэш-памяти хранится информация, копируемая из основной оперативной памяти. Каждый раз при обращении микропроцессора к памяти контроллер кэш-памяти проверяет наличие данных в кэше. Если эти данные в кэше есть (“попадание”), то микропроцессор получает данные из кэша. Если этих данных нет (“промах”), выполняется обычный цикл обращения к оперативной памяти DRAM.

Основным фактором, определяющим вероятность попадания, является емкость кэш-памяти. Как правило, при объеме кэша в 2 Кбайта вероятность попадания составляет от 50 до 60%. Поскольку размер кэш-памяти на современных компьютерах превышает 256 Кбайт, то вероятность попадания будет выше 90% (для компьютеров с объемом памяти ~ 256 Мбайт.)

Для реализации кэш-памяти в настоящее время разработаны эффективные однокристальные контроллеры. Наиболее широкое распространение получили контроллеры i82385 фирмы Intel и A38152 фирмы Asustec

Microsystems.

42. Исключительные ситуации при работе с памятью

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

Будем рассматривать вариант обращения к не присутствующей странице, поскольку его обработка во многом

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

1)Времени обслуживания исключительной ситуации (page fault)

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

3)Времени рестарта процесса, вызвавшего данный page fault

Первое и третье времена могут быть уменьшены за счет тщательного кодирования нескольких сотен инструкций и составлять десятки микросекунд каждое. Время подкачки страницы с диска будет вероятно близким к нескольким десяткам миллисекунд. Оценки показывают, что если удастся снизить вероятность page fault'а до 5*10**-7, то производительность страничной системы будет снижена всего на 10%. Таким образом, снижение частоты page fault'ов является одной из ключевых задач системы управления памятью. Ее решение обычно связано с правильным выбором алгоритма замещения страниц.

43. Файл подкачки.

Файл подкачки (pagefile.sys) — это скрытый файл на жёстком диске компьютера, который используется операционной системой Windows по принципу оперативной памяти. Файл подкачки и оперативная память вместе составляют виртуальную память. По умолчанию операционная система Windows хранит файл подкачки в загрузочном разделе (раздел, в котором установлены операционная система и вспомогательные файлы). Обычно объём файла подкачки задаётся в 1,5 раза больше общего объёма оперативной памяти.

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

44. Имена файлов. Структура файлов.

И́мя фа́йла — строка символов, однозначно определяющая файл в некотором пространстве имён файловой системы (ФС), обычно называемом каталогом, директорией или папкой. Имена файлов строятся по правилам, принятым в той или иной файловой и операционной системах (ОС). Многие системы позволяют назначать имена как обычным файлам, так и каталогам и специальным объектам (символическим ссылкам, блочным устройствам и т. п.).

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

1.протокол или способ доступа (http, ftp, file и т. п.);

2.имя или адрес компьютера, узла сети (wikipedia.org, 207.142.131.206, \\MYCOMPUTER, SYS: и т. п.); 3.устройство хранения, диск (C:, /, SYSLIB и т. п.);

4.путь к каталогу (/usr/bin, \TEMP, [USR.LIB.SRC] и т. п.);

5.собственно имя файла, которое может содержать его расширение (.txt, .exe, .COM и т. п.); 6.версия или номер ревизии (perl6, ping6 и т. п.)[уточнить].

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

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

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

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

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

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

1.Главная страница

2.Форматы графических файлов

3.Разрешение изображений

4.Оптимизация в программе Photoshop

5.Оптимизация формата GIF

6.Оптимизация формата JPEG

7.Антиальясинг

8.Разрезание изображений

9.Список терминов

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

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

45. Типы и атрибуты файлов.

Атрибут файла (англ. file attribute) — метаданные, которые описывают файл. Атрибут может находиться в двух состояниях: либо установленный, либо снятый. Атрибуты рассматриваются отдельно от других метаданных, таких как даты, расширения имени файла или права доступа. Каталоги и другие объекты файловой системы также могут иметь определённые атрибуты. Также существуют расширенные атрибуты файлов, хранящие данные другого типа.

В операционных системах DOS и Microsoft Windows, существуют четыре атрибута:

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

2.Скрытый. Файл с установленным атрибутом считается скрытым. Это означает, что команды MS-DOS (dir) и программы Windows (такие как Проводник) по умолчанию не будут отображать этот файл, если не включён специальный режим[4] .

3.Системный. Файл с установленным атрибутом считается системным — таким, существование которого в неизменённом виде критически важно для нормальной работы системы. По умолчанию команды MS-DOS (dir) и программы Windows (такие как Проводник) не будут отображать этот файл, если не включён специальный режим.

4.Только чтение. Установленный атрибут означает, что содержимое файла нельзя изменять. Как правило, программы для Windows игнорируют этот атрибут, если он установлен для каталогов[5].

5.С выходом новых версий системы Windows в NTFS появились дополнительные атрибуты:

6.Сжатый (Compressed). Установленный атрибут означает, что Windows сохраняет этот файл на диске в сжатом виде.

7.Зашифрованный (Encrypted). Установленный атрибут означает, что Windows хранит этот файл на диске в зашифрованном виде.

8.Проиндексированный (Indexed). Означает, что соответствующие подсистемы Windows не будут включать

содержимое файла в поисковый индекс.

4.4BSD-Lite и производные от неё системы[править | править код]

Эта статья или раздел содержит незавершённый перевод с иностранного языка.

Вы можете помочь проекту, закончив перевод. Если вы знаете, на каком языке написан фрагмент, укажите его в этом шаблоне.

В4.4BSD и 4.4BSD-Lite файлы и каталоги могут получить четыре атрибута, которые устанавливаются владельцем файла или пользователем с повышенными правами (отмеченные как «User»). Еще два атрибута могут устанавливаться только пользователем с повышенными правами («System»).[6]

1.(User) No-dump: Установленный атрибут означает, что файл или каталог не должен копироваться во время резервного копирования.

2.(User and System) Immutable: Означает, что файл или каталог могут оставаться неизменными. Будут блокированы попытки открытия файла для записи, попытки переименовать его, переименовать или создать новый файл в каталоге.

3.(User and System) Append-only: К файлу можно только добавлять информацию.

4.(User) Opaque: Используется определённая особенность монтирования файловых систем в ОС. 5.В FreeBSD ещё появился следующий атрибут[7] (также поддерживается в DragonFly BSD):[8]:

6.(User and System) No-unlink: Означает, что файл или каталог нельзя удалять. Попытки сделать это закончатся сообщением про ошибку доступа.

7.FreeBSD также поддерживает:[7]

8.(System) No-archive: установленный атрибут означает, что файл или каталог нельзя архивировать (средствами файловой системы).

9.(System) Snapshot: Файл принадлежит к специальному типу файлов, обрабатываемых системой. Этот атрибут устанавливается только системой, даже пользователь с повышенными правами не может его изменить. Кроме того, DragonFly BSD поддерживает:[8]

10.(User and System) No-history: История изменений не должна сохраняться для данного файла или каталога. 11.(User) Swapcache и (System) Swapcache: Определяет уверенные особенности работы с SSD.

12.(System) Archived: Противоположное к No-archive.

NetBSD[9] и OpenBSD:[10] также поддерживают (System) Archived.

ВOS X был добавлен ещё один атрибут[11]

13.(User) Hidden: Означает, что по умолчанию файл с таким атрибутом не будет отображаться средствами графического интерфейса, хотя команда ls всё равно будет показывать его.

В Solaris для ZFS также существуют атрибуты:

14.av_quarantined: Доступ к файлу ограничен до снятия карантина антивируса. 15.av_modified: Означает, что текущая версия файла не проверена антивирусо

46. Доступ к файлам. Защита файлов.

Поскольку файлы - это защищенные объекты (securable objects), обращение к ним, регулируется моделью управления доступом, которая руководит доступом ко всем другим защищенным объектам в Windows. Подробное объяснение этой модели см. в главе Управление доступом.

Вы можете установить дескриптор безопасности (security descriptor) для файла или каталога, когда вызываете функцию CreateFile, CreateDirectory или CreateDirectoryEx. Если Вы для параметра lpSecurityAttributes опреде-

ляете значение ПУСТО (NULL) , файл или каталог получает заданный по умолчанию дескриптор безопасности. Списки контроля доступа (ACL) в заданном по умолчанию дескрипторе безопасности для файла или каталога наследуются от его каталога предыдущего уровня.

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

Чтобы извлечь дескриптор безопасности объекта файла или каталога, вызовите функцию GetNamedSecurityInfo или GetSecurityInfo. Чтобы изменить дескриптор безопасности объекта файла или ката-

лога, вызовите функцию SetNamedSecurityInfo или SetSecurityInfo.

Правильные права доступа для файлов и каталогов включают в себя стандартные права доступа (standard access rights) DELETE (удаление), READ_CONTROL (управление чтением), WRITE_DAC (избирательный контроль