Операционные системы. Учебное пособие. Марапулец Ю.В. - 95 стр.

UptoLike

Составители: 

те методы разработки программ, которые используются для однопрограммных систем.
Возможно использование оверлейных структур, что позволяет создавать более сложные
программы и в то же время поддерживать идеологию мультипрограммирования. Первые
многозадачные ОС, а в более поздний период - недорогие вычислительные системы
строились по подобной схеме, так как она является несложной и обеспечивает возмож-
ность параллельного выполнения программ. Иногда в одном разделе размещалось по
несколько небольших программ, которые постоянно в нем и находились. Такие про-
граммы назывались ОЗУ-резидентными.
При небольшом объеме памяти и, следовательно, небольшом количестве разделов
увеличить количество параллельно выполняемых приложений (особенно когда эти при-
ложения интерактивны и во время своей работы фактически не используют процессор-
ное время, а в основном ожидают операций ввода/вывода) можно за счет идеологии сво-
пинга (swapping). При свопинге задача может быть целиком выгружена на магнитный
диск (перемещена во внешнюю память), а на ее место загружается либо более привиле-
гированная, либо просто готовая к выполнению другая задача, находившаяся на диске в
приостановленном состоянии.
Основным недостатком такого способа распределения памяти является наличие
достаточно большого объема неиспользуемой памяти, которая может быть в каждом из
разделов. Поскольку разделов несколько, то и неиспользуемых областей получается не-
сколько, поэтому такие потери стали называть фрагментацией памяти. В отдельных
разделах потери памяти могли быть достаточно значительными, но использовать фраг-
менты свободной памяти при таком способе распределения практически невозможно.
Чтобы избавиться от фрагментации, можно размещать в оперативной памяти зада-
чи плотно (динамически), одну за другой, выделяя ровно столько памяти, сколько зада-
ча требует.
Одной из первых ОС, реализовавшей такой способ распределения памяти, была ОС
MVT (multiprogramming with a variable number of tasks) - мультипрограммирование с пе-
ременным числом задач. Эта ОС была одной из самых распространенных при эксплуа-
тировании больших ЭВМ класса IBM 360/370. В этой системе специальный планиров-
щик (диспетчер памяти) ведет список адресов свободной оперативной памяти. При
появлении новой задачи диспетчер памяти просматривает этот список и выделяет для
задачи раздел, объем которого либо равен необходимому, либо чуть больше, если па-
мять выделяется не ячейками, а некими дискретными единицами. При этом модифици-
руется список свободной памяти. При освобождении раздела диспетчер памяти пытается
объединить освобождающийся раздел с одним из свободных участков, если таковой яв-
ляется смежным.
При этом список свободных участков может быть упорядочен либо по адресам,
либо по объему. Выделение памяти под новый раздел может осуществляться одним из
трех методов [2]:
первый подходящий участок;
самый подходящий участок;
самый неподходящий участок.
В первом случае список свободных областей упорядочивается по адресам (напри-
мер, по их возрастанию). Диспетчер памяти просматривает этот список и выделяет зада-
че раздел в той области, которая первой подойдет по объему. В этом случае, если подоб-
ный фрагмент имеется, то в среднем необходимо просмотреть половину списка. При
освобождении раздела также необходимо просмотреть половину списка. Таким образом,
«первый подходящий» метод приводит к тому, что память для небольших задач
преимущественно будет выделяться в области младших адресов и, следовательно,
это будет увеличивать вероятность того, что в области старших адресов будут
образовываться фрагменты достаточно большого объема.
97
те методы разработки программ, которые используются для однопрограммных систем.
Возможно использование оверлейных структур, что позволяет создавать более сложные
программы и в то же время поддерживать идеологию мультипрограммирования. Первые
многозадачные ОС, а в более поздний период - недорогие вычислительные системы
строились по подобной схеме, так как она является несложной и обеспечивает возмож-
ность параллельного выполнения программ. Иногда в одном разделе размещалось по
несколько небольших программ, которые постоянно в нем и находились. Такие про-
граммы назывались ОЗУ-резидентными.
     При небольшом объеме памяти и, следовательно, небольшом количестве разделов
увеличить количество параллельно выполняемых приложений (особенно когда эти при-
ложения интерактивны и во время своей работы фактически не используют процессор-
ное время, а в основном ожидают операций ввода/вывода) можно за счет идеологии сво-
пинга (swapping). При свопинге задача может быть целиком выгружена на магнитный
диск (перемещена во внешнюю память), а на ее место загружается либо более привиле-
гированная, либо просто готовая к выполнению другая задача, находившаяся на диске в
приостановленном состоянии.
     Основным недостатком такого способа распределения памяти является наличие
достаточно большого объема неиспользуемой памяти, которая может быть в каждом из
разделов. Поскольку разделов несколько, то и неиспользуемых областей получается не-
сколько, поэтому такие потери стали называть фрагментацией памяти. В отдельных
разделах потери памяти могли быть достаточно значительными, но использовать фраг-
менты свободной памяти при таком способе распределения практически невозможно.
     Чтобы избавиться от фрагментации, можно размещать в оперативной памяти зада-
чи плотно (динамически), одну за другой, выделяя ровно столько памяти, сколько зада-
ча требует.
     Одной из первых ОС, реализовавшей такой способ распределения памяти, была ОС
MVT (multiprogramming with a variable number of tasks) - мультипрограммирование с пе-
ременным числом задач. Эта ОС была одной из самых распространенных при эксплуа-
тировании больших ЭВМ класса IBM 360/370. В этой системе специальный планиров-
щик (диспетчер памяти) ведет список адресов свободной оперативной памяти. При
появлении новой задачи диспетчер памяти просматривает этот список и выделяет для
задачи раздел, объем которого либо равен необходимому, либо чуть больше, если па-
мять выделяется не ячейками, а некими дискретными единицами. При этом модифици-
руется список свободной памяти. При освобождении раздела диспетчер памяти пытается
объединить освобождающийся раздел с одним из свободных участков, если таковой яв-
ляется смежным.
     При этом список свободных участков может быть упорядочен либо по адресам,
либо по объему. Выделение памяти под новый раздел может осуществляться одним из
трех методов [2]:
• первый подходящий участок;
• самый подходящий участок;
• самый неподходящий участок.
     В первом случае список свободных областей упорядочивается по адресам (напри-
мер, по их возрастанию). Диспетчер памяти просматривает этот список и выделяет зада-
че раздел в той области, которая первой подойдет по объему. В этом случае, если подоб-
ный фрагмент имеется, то в среднем необходимо просмотреть половину списка. При
освобождении раздела также необходимо просмотреть половину списка. Таким образом,
«первый подходящий» метод приводит к тому, что память для небольших задач
преимущественно будет выделяться в области младших адресов и, следовательно,
это будет увеличивать вероятность того, что в области старших адресов будут
образовываться фрагменты достаточно большого объема.

                                         97