Uploaded by vladek prod.

Реферат информатика и программирование

advertisement
Министерство науки и высшего образования Российской Федерации
Технический институт (филиал)
федерального государственного автономного
образовательного учреждения высшего образования
«Северо-Восточный федеральный университет имени М.К. Аммосова»
в г. Нерюнгри
Реферат
По дисциплине: «Информатика и программирование»
Тема: «Методы распределения памяти (без использования внешней памяти)»
Выполнил: студент
1 курса, группы БА-ПИ-20(5),
Трубников В. Э.
Проверила: доцент кафедры
Трофимов М. А.
Нерюнгри, 2021
ОГЛАВЛЕНИЕ……………………………………………………………..3
ВВЕДЕНИЕ.................................................................................................... 4
1 Методы распределения памяти ................................................................ 6
2 Распределение памяти фиксированными разделами. ............................ 6
3 Распределение памяти динамическими разделами. ............................... 7
4 Распределение памяти перемещаемыми разделами. .............................. 9
ЗАКЛЮЧЕНИЕ ........................................................................................... 10
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ ........................................ 11
3
ВВЕДЕНИЕ
Память является важнейшим ресурсом, требующим тщательного
управления со стороны мультипрограммной операционной системы. Особая
роль памяти объясняется тем, что процессор может выполнять инструкции
программы только в том случае, если они находятся в памяти. Память
распределяется как между модулями прикладных программ, так и между
модулями самой операционной системы.
В ранних ОС управление памятью сводилось просто к загрузке
программы и ее данных из некоторого внешнего накопителя (перфоленты,
магнитной ленты или магнитного диска) в память. С появлением
мультипрограммирования перед ОС были поставлены новые задачи,
связанные с распределением имеющейся памяти между несколькими
одновременно выполняющимися программами.
Функциями ОС по управлению памятью в мультипрограммной системе
являются:

отслеживание свободной и занятой памяти;

выделение памяти процессам и освобождение памяти по
завершении процессов;

вытеснение кодов и данных процессов из оперативной памяти на
диск (полное или частичное), когда размеры основной памяти не достаточны
для размещения в ней всех процессов, и возвращение их в оперативную
память, когда в ней освобождается место;

настройка адресов программы на конкретную область физической
памяти.
Помимо первоначального выделения памяти процессам при их создании
ОС должна также заниматься динамическим распределением памяти, то есть
выполнять запросы приложений на выделение им дополнительной памяти во
время выполнения. После того как приложение перестает нуждаться в
4
дополнительной памяти, оно может возвратить ее системе. Выделение памяти
случайной длины в случайные моменты времени из общего пула памяти
приводит к фрагментации и, вследствие этого, к неэффективному ее
использованию.
Дефрагментация
памяти
тоже
является
функцией
операционной системы.
Защита памяти — это еще одна важная задача операционной системы,
которая состоит в том, чтобы не позволить выполняемому процессу
записывать или читать данные из памяти, назначенной другому процессу. Эта
функция, как правило, реализуется программными модулями ОС в тесном
взаимодействии с аппаратными средствами.
5
1 Методы распределения памяти
Необходимым условием для того, чтобы программа могла выполняться,
является ее нахождение в оперативной памяти. Только в этом случае
процессор может извлекать команды из памяти и интерпретировать их,
выполняя заданные действия.
Все алгоритмы распределения памяти разделены на два класса:
алгоритмы, в которых используется перемещение сегментов процессов между
оперативной памятью и диском, и алгоритмы, в которых внешняя память не
привлекается.
Классификация методов распределения памяти
2 Распределение памяти фиксированными разделами.
Простейший способ управления оперативной памятью состоит в том,
что память разбивается на несколько областей фиксированной величины,
называемых разделами. Такое разбиение может быть выполнено вручную
оператором во время старта системы или во время ее установки. После этого
границы разделов не изменяются.
6
Очередной новый процесс, поступивший на выполнение, помещается
либо в общую очередь, либо в очередь к некоторому разделу.
Подсистема управления памятью в этом случае выполняет следующие
задачи:

сравнивает объем памяти, требуемый для вновь поступившего
процесса, с размерами свободных разделов и выбирает подходящий раздел;

осуществляет загрузку программы в один из разделов и настройку
адресов.
Уже на этапе трансляции разработчик программы может задать раздел,
в котором ее следует выполнять. Это позволяет сразу получить машинный код,
настроенный на конкретную область памяти.
Достоинство– простота реализации.
Недостаток– жесткость, так как в каждом разделе может выполняться
только один процесс и уровень мультипрограммирования заранее ограничен
числом разделов.
+Метод распределения памяти фиксированными разделами находит
применение в системах реального времени, в основном благодаря небольшим
затратам на реализацию.
3 Распределение памяти динамическими разделами.
Изначально вся память, отводимая для приложений, свободна. Каждому
вновь поступающему на выполнение приложению на этапе создания процесса
выделяется вся необходимая ему память (если достаточный объем памяти
отсутствует, то приложение не принимается на выполнение и процесс для него
не создается). После завершения процесса память освобождается, и на это
место может быть загружен другой процесс. Таким образом, в произвольный
момент времени оперативная память представляет собой случайную
7
последовательность занятых и свободных участков (разделов) произвольного
размера.
Функции операционной системы, предназначенные для реализации
данного метода управления памятью:
1.
Ведение таблиц свободных и занятых областей, в которых
указываются начальные адреса и размеры участков памяти.
2.
При создании нового процесса – анализ требований к памяти,
просмотр таблицы свободных областей и выбор раздела, размер которого
достаточен для размещения кодов и данных нового процесса. Выбор раздела
может осуществляться по разным правилам, например: «первый попавшийся
раздел достаточного размера», «раздел, имеющий наименьший достаточный
размер» или «раздел, имеющий наибольший достаточный размер».
3.
Загрузка программы в выделенный ей раздел и корректировка
таблиц свободных и занятых областей. Данный способ предполагает, что
программный код не перемещается во время выполнения, а значит, настройка
адресов может быть проведена единовременно во время загрузки.
4.
После завершения процесса корректировка таблиц свободных и
занятых областей.
Достоинство: по сравнению с методом распределения памяти
фиксированными разделами данный метод обладает гораздо большей
гибкостью.
Недостаток – фрагментация памяти, т.е. наличие большого числа
несмежных
участков
свободной
памяти
очень
маленького
размера
(фрагментов), настолько маленького, что ни одна из вновь поступающих
программ не может поместиться ни в одном из участков, хотя суммарный
объем фрагментов может составить значительную величину, намного
превышающую требуемый объем памяти.
8
4 Распределение памяти перемещаемыми разделами.
Особенность
–
используется
процедура
дефрагментации,
т.е.
перемещение всех занятых участков в сторону старших или младших адресов,
так, чтобы вся свободная память образовала единую свободную область.
Функции операционной системы, предназначенные для реализации
данного метода управления памятью:
1.
Ведение таблиц свободных и занятых областей, в которых
указываются начальные адреса и размеры участков памяти.
2.
При создании нового процесса – анализ требований к памяти,
просмотр таблицы свободных областей и выбор раздела, размер которого
достаточен для размещения кодов и данных нового процесса.
3.
Загрузка программы в выделенный ей раздел и корректировка
таблиц свободных и занятых областей.
4.
После завершения процесса корректировка таблиц свободных и
занятых областей.
В дополнение к перечисленным функциям, в данном случае она должна
еще время от времени копировать содержимое разделов из одного места
памяти в другое, корректируя таблицы свободных и занятых областей. Эта
процедура называется сжатием. Сжатие может выполняться либо при каждом
завершении процесса, либо только тогда, когда для вновь создаваемого
процесса нет свободного раздела достаточного размера. В первом случае
требуется меньше вычислительной работы при корректировке таблиц
свободных и занятых областей, а во втором – реже выполняется процедура
сжатия.
Достоинство: эффективное использование памяти.
Недостаток: снижение производительности системы в целом, поскольку
процедура сжатия может требовать значительного времени.
9
ЗАКЛЮЧЕНИЕ
Оперативная память компьютера играет особую роль. Это обусловлено
тем, что программа может выполняться только в том случае, если она
находится в памяти. Операционная система способна осуществлять много
функций для рационального управления памятью.
Выделим несколько основных функций операционной системы по
управлению памятью в рамках исследуемого вопроса:

Перемещение всех занятых участков в сторону старших адресов
при каждом завершении задачи.

Коррекция таблиц свободных и занятых областей

Изменение адресов команд и данных, к которым обращаются
процессы при их перемещении в памяти за счет использования относительной
адресации.

Аппаратная поддержка процесса динамического преобразования
относительных адресов в абсолютные адреса основной памяти.

Защита памяти, выделяемой процессу от взаимного влияния
других процессов.
Можно
перемещаемыми
сказать,
что
разделами
достоинством
является
распределения
эффективное
памяти
использование
оперативной памяти, предусматривающее четкую организацию всего
процесса распределения, исключение внутренней и внешней фрагментации,
но существует и недостаток - дополнительные накладные расходы
операционной системы.
10
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1)
Н. А. Олифер, В. Г. Олифер Сетевые операционные системы: изд.
Питер,2001.
2)
Робачевский А.М. Операционная система UNIX.- СПб.: БХВ -
Санкт-Петербург, 2000.
3)
Таненбаум Э. Современные операционные системы. 2-ое изд. -
СПб.:Питер, 2002.
4)
Робачевский А.М. Операционная система UNIX. - СПб.: BHV -
Санкт-Петербург, 1997.
5)
Дейтел Г. Введение в операционные системы: в 2-х т. Т1. -М.:
Мир,1987. – 359 с., Т2. -М.: Мир,1987. – 398 с.
6)
Павлов
И.О.,
Писаренко
Н.Д.,
Лемешкин
А.В.
Сетевые
операционные системы: учеб. пособие. Воронеж, 2004. – 196 с.
7)
Журавлева Е.М. Лекции по курсу операционные системы.
8)
Гордеев А. В. Операционные системы. : Учебник для вузов 2-е
изд: Питер, 2007.- 416 с.
9)
http://www.dstu.edu.ru/povtas/stud/books/net_os/glava7.html (на
сайте рассматриваются различные методы распределения памяти)
10)
http://aab46.by.ru/html/lekd28/l-4.htm (А.А.
Операционные системы -Лекция 4)
11)
http://coc.land.ru/chapter5.htm (управление памятью)
11
Безбогов.
Download