1. Управление памятью: однозадачная система без подкачки на диск, многозадачность с фиксированными разделами, моделирование многозадачности; подкачка: свопинг, виртуальная память.


Предисловие:первые три стриницы мой вариант, все по делу без лишнего, далее вариант прошлых лет 15 страниц. энжой


Однозадачная система без подкачки с диска

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

копирует запрашиваемую программу с диска в память и выполняет ее, а после

окончания процесса выводит на экран символ приглашения и ждет новой команды.

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

предыдущей. Такой подход использовался в MS-DOS v3.1-v6.22.

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

Многозадачность с фиксированными разделами

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

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

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

как в данной схеме размер разделов неизменен, все пространство в разделе, не

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

система с фиксированными разделами и отдельными очередями входных заданий.

Недостаток сортировки входящих работ по отдельным очередям становится

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

выстроилось довольно много задач; в примере на рис. 2, а это разделы 1 и 3.

Рис. 2. Фиксированные разделы памяти с отдельными входными очередями для каждого

раздела (а); фиксированные разделы памяти с одной очередью на вход (б)

Небольшие задания должны ждать своей очереди, чтобы попасть в память, и это все

несмотря на то, что свободна основная часть памяти. Альтернативная схема

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

рис. 2(б): как только раздел освобождается, задачу, находящуюся ближе всего к

началу очереди и подходящую для выполнения в этом разделе, можно загрузить в него

и начать ее обработку. Поскольку нежелательно тратить большие разделы на

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

раздела происходит поиск в очереди наибольшего из помещающихся в этом разделе

заданий, и именно это задание выбирается для обработки. Заметим, что последний

алгоритм дискриминирует мелкие задачи, как недостойные того, чтобы под них

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

наименьших задач (часто интерактивных) лучшее, а не худшее обслуживание.

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

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

освобождения больших разделов.

При другом подходе устанавливается следующее правило: задачу, имеющую право

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

через нее перескакивают, к счетчику добавляется единица. Когда значение счетчика

становится равным k , игнорировать задачу более нельзя.

Моделирование многозадачности

При использовании многозадачности повышается эффективность загрузки

центрального процессора. Грубо говоря, если средний процесс выполняет вычисления

только 20% от того времени, которое он находится в памяти, то при присутствии в

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

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

ввода-вывода одновременно.


Свопинг (подкачка)

При нехватке памяти процессы могут быть выгружены на диск.

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

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

Свопер - планировщик, управляющий перемещением данных между памятью и диском.

Этот метод был основным для UNIX до версии 3BSD.

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

Виртуальная память — это совокупность программно-аппаратных средств, позволяющих пользователям писать программы, размер которых превосходит имеющуюся оперативную память. Для этого виртуальная память решает следующие задачи:

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

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


Вариант 2010

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

Однозадачная сис-ма без подкачки на диск

Память разделяется только между прогой и ОС.

Схемы разделения памяти:

III вариант useся в MS-DOS. Та часть, кот. находится в ПЗУ, часто наз-ся BIOS.

 Распределение памяти с фиксир разделами.

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

 

«-»сис-мы многих очередей очевиден: когда большой раздел м.б. свободным, а к маленькому выстроилась очередь.

Алгоритмы планирования в случае одной очереди:

Также м. б. смешанная система.

 Распределение памяти динамич разделами

В такой сис-ме сначала память свободна, потом идет динамич распределение памяти.

 

Распределение памяти динамич разделами.

Недостатки:

Перемещаемые разделы

Это  1 из методов борьбы с фрагментацией. Но на него уходит много времени.

 

Рост разделов

Иногда процессу может понадобиться больше памяти, чем предполагалось изначально.

 

Настройка адресов и защита памяти

В предыдущих примерах мы м. увидеть 2 основные проблемы.

Реш-е обоих проблем заключается в оснащении машины спец аппаратными регистрами.

Методы с использованием внеш памяти (свопинг и виртуальная память)

Т.к. памяти, как правило, не хватает. Для выполнения процессов часто приходится use диск.

Основные способы использования диска:

 Свопинг (подкачка)

При нехватке памяти процессы м.б. выгружены на диск.

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

 Как мы видим процесс А II раз загрузился в др адресное пространство, должны создаваться такие усл-я, кот не повлияют на работу процесса.

Свопер- планировщик, управляющий перемещением данных между памятью и диском.

Этот метод был основным для UNIX до версии 3BSD.

 Управление памятью  с помощью битовых массивов

Вся память разбивается на блоки (напр-р, по 32бита), массив содержит 1 или 0 (занят или незанят).

Чтобы процессу в 32Кбита занять память, нужно набрать послед-ть из 1000 свободных блоков.

Такой алгоритм займет много времени.

битовые массивы и списки

 Управление памятью  с помощью связных списков

Этот способ отслеживает списки занятых (между процессами) и свободных (процессы) фрагментов памяти.

Запись в списке указывает на:

4 комбинации соседей для завершения процесса X

 Алгоритмы выделения блока памяти:

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

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

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

Диспетчер памяти преобразует вирт адреса в физич.

 Страничная организация памяти

Страницы - это части, на кот разбивается пространство виртуал адресов.

Страничные блоки - единицы физич памяти.

Страницы всегда имеют фиксированный размер. Передача данных между ОЗУ и диском всегда происходит в страницах.

Х - обозначает неотображаемую страницу в физич памяти.

Страничное прерывание - происходит, если процесс обратился к стр, кот не загружена в ОЗУ (т.е. Х). Процессор передается др процессу, и || стр. загружается в память.

Таблица страниц - useся для хранения соответствия адресов виртуал стр. и страничного блока.

Табл м.б. размещена:

 

Типичная запись в таблице страниц


Присутствие/отсутствие - загружена или незагружена в память

Защита - виды доступа, напр-р, чтение/запись.

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

Обращение - было ли обращение к странице, если нет, то это лучший кандидат на освобождение памяти.

Инфа о адресе страницы когда она хранится на диске, в таблице не размещается.

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

 Страничная организация памяти useся, и в UNIX, и в Windows.

 

Хранение страничной памяти на диске

Статическая область свопинга

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

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

 

Статический и динамич методы организации свопинга.

  Динамическая область свопинга

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

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


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

Файловая система связывает носитель инфы и интерфейс для доступа к файлам. Когда прикладная прога обращается к файлу, она не имеет никакого представления о том, каким образом расположена инфа в конкретном файле, также, как и на каком физич типе носителя он записан. Всё, что знает прога — это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой сис-мы. Именно файловая сис-ма устанавливает, где и как будет записан файл на физич носителе.

С т. зр. ОС, весь диск представляет из себя набор кластеров размером от 512 байт и выше. Драйверы файловой сис-мы организуют кластеры в файлы и каталоги. Эти же драйверы отслеживают, какие из кластеров в наст время useся, какие свободны, какие помечены как неисправные.

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

В широком смысле понятие "файловая сис-ма" включает:

Файлы идентифицируются именами. Пользователи дают файлам символьные имена, при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. До недавнего времени эти границы были весьма узкими. Так в популярной файловой системе FAT длина имен ограничивается известной схемой 8 символов - имя, 3 символа - расширение, а в ОС UNIX System V имя не м. содержать более 14 символов. Но пользователю удобнее работать с длинными именами. Поэтому современ файловые сис-мы поддерживают длинные символьные имена файлов. Например, Windows NT в своей новой файловой системе NTFS устанавливает, что имя файла м. содержать до 255 символов, не считая завершающего нулевого символа.

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

Длинные имена поддерживаются не только новыми файловыми сис-мами, но и новыми версиями хорошо известных файловых сис-м. Напр-р, в ОС Windows 95 useся файловая сис-ма VFAT, представляющая собой существенно измененный вариант FAT. Среди многих др усовершенствований 1 из главных «+»VFAT : поддержка длинных имен. Кроме проблемы генерации эквивалентных коротких имен, при реализации нового варианта FAT важной задачей была задача хранения длинных имен при условии, что принципиально метод хранения и структура данных на диске не должны были измениться.

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

Файлы бывают разных типов: обычные файлы, спец файлы, файлы-каталоги.

Обычные файлы подразделяются на текстовые и двоичные. Текстовые файлы состоят из строк символов, представленных в ASCII-коде. Это доки, исходные тексты прог и т.п. Текстовые файлы м. прочитать на экране и распечатать на принтере. Двоичные файлы не use ASCII-коды, они часто имеют слож внутр структуру, напр-р, объектный код проги или архивный файл. Все ОС должны уметь распознавать хотя бы 1 тип файлов - их собственные исполняемые файлы.

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

Каталог - это 1)группа файлов, объединенных пользователем исходя из некотор соображений, 2) файл, содержащий системную инфу о группе файлов, его составляющих. В каталоге содержится список файлов, входящих в него, и устанавливается соответствие между файлами и их хар-ками (атрибутами).

В разных файловых сис-мах м. useся в кач-ве атрибутов разные хар-ки, напр-р:

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