Как называется программа которая постоянно находится в памяти компьютера

Презентация на тему: » Операционные системы. 2 Операционная система Основная управляющая программа компьютера, которая постоянно находится в памяти компьютера и занимается всеми.» — Транскрипт:

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

3 3 Процессы, осуществляемые ОС Распределение памяти для программ; Размещение файлов на диске; Обслуживание сигналов, поступающих от периферийного оборудования и работающих программ.

4 4 ОС Обычно хранится во внешней памяти компьютера на диске либо может находиться на жестком диске и считываться оттуда

5 5 Функции ОС осуществление диалога с пользователем; ввод, вывод и управление данными; планирование и организация процесса обработки программ; распределение ресурсов; запуск программ на выполнение; вспомогательные операции обслуживания; передача информации между различными внутренними устройствами; программная поддержка работы периферийных устройств.

Устройства памяти компьютера

6 6 Наиболее распространенные ОС МS DOS; MS Windows; OS/2; UNIX; Linux.

7 7 Основные компоненты ОС Файловая система. Драйверы внешних устройств. Процессор командного языка.

8 8 Одна из первостепенных задач ОС Управление дисковым накопителем и доступом к нему.

9 9 Одна из важнейших функций ОС Поддержка широкого набора внешних устройств.

Источник: www.myshared.ru

Тема 4. Программное обеспечение

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

Сам по себе компьютер не обладает знаниями ни в одной из областей его применения. Все эти знания сосредоточены в выполняемых на компьютере программах. Программное обеспечение (ПО) – неотъемлемая часть компьютерной системы. Оно является логическим продолжением технических средств.

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

Рис.3.1. Структура программного обеспечения.

Обзор программного обеспечения. На самом общем уровнепрограммное обеспечение делится на две категории: прикладное программное обеспечение (англ.application software) и системное программное обеспечение (system software).

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

Как вставлять оперативную память? Один и два канала.

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

Один из возможных вариантов классификации программных средств (ПС), составляющих прикладное программное обеспечение, отражен на рис.3.2. Как и почти всякая классификация, приведенная на рис.3.2. не является единственно возможной. В ней представлены даже не все виды прикладных программ. Тем не менее, использование классификации полезно для создания общего представления о ППО.

Рис.3.2. Вариант классификация прикладного программного обеспечения.

Система программирования – это система для разработки новых программ на конкретном языке программирования. Современные системы программирования предоставляют пользователям следующие возможности:

-средства создания и редактирования текстов программ

-компилятор или интерпретатор

-библиотеки стандартных подпрограмм

-многооконный режим работы

-дружественная диалоговая среда

-встроенная справочная служба

Популярные системы программирования – Turbo Basic, Turbo Pascal, Turbo C, DevC++.

Интегрированные пакеты представляют собой набор нескольких программных продуктов, объединенных в единый удобный инструмент. Они содержат некоторое ядро, обеспечивающее взаимодействие между составляющими. Microsoft Office – наиболее известный интегрированный пакет.

В его состав входят текстовый редактор Word, электронная таблица Excel, программа создания презентаций PowerPoint, система управления базами данных Access, настольная издательская система Microsoft Publisher, средство поддержки электронной почты Mail и др. Сами системы, входящие в пакет, являются независимыми, более того, они сами представляют локально интегрированный пакет, поскольку помимо основной своей задачи поддерживают функции других систем. Например, текстовый редактор Word обладает возможностью манипулировать с электронными таблицами и базами данных, а в электронной таблице Excel встроен мощный текстовый редактор. Для сопряжения информационных данных из различных программных систем в них предусматривают импорт-экспортную систему обмена с перекодировкой форматов представления данных.

Более полные знания по упомянутым системам можно получить, выполнив лабораторные работы из части 2 настоящего пособия.

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

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

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

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

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

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

Компоненты операционной системы. Операционная система выполняет роль связующего звена между аппаратурой компьютера и пользователем.Операционная система обычно хранится во внешней памяти – на диске. При включении компьютера она считывается с дисковой памяти и размещается в ОЗУ. Этот процесс называется загрузкой операционной системы.

Читайте также:
Как создать программу жизни

Часть операционной системы, которая обеспечивает интерфейс операционной системы с пользователями, часто называют оболочкой (shell). Назначение оболочки – организация взаимодействия с пользователями системы. Современные оболочки выполняют эту задачу с помощью графического интерфейса пользователя (англ.graphical user interface – GUI), в котором объекты манипуляции, подобные файлам и программам, представлены на экране монитора в виде небольших рисунков – пиктограмм. Подобные системы позволяют пользователям вводить команды, указывая на эти пиктограммы и щелкая на них с помощью мыши. Прежние оболочки поддерживали общение с пользователями посредством текстовых сообщений, вводимых с клавиатуры и отображаемых на экране монитора.

Хотя оболочка операционной системы играет важную роль в определении доступной на данной машине функциональности, она, тем не менее, является всего лишь интерфейсом между пользователем и ядром самой операционной системы. Различие между оболочкой и внутренними частями операционной системы подчеркивается тем фактом, что некоторые операционные системы разрешают пользователю выбрать наиболее удобный для него тип оболочки. Так, например, ранние версии Windows представляли собой всего лишь оболочки для операционной системы MS-DOS. Во всех этих случаях сама операционная система остается прежней – меняется лишь способ ее общения с пользователями.

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

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

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

Для удобства пользователей большинство подсистем управления файлами разрешает объединять файлы в группы, называемые каталогами (англ.directory), или папками (англ.folder). Такой подход позволяет пользователям размещать свои файлы так, как им это удобно, помещая связанные друг с другом файлы в один каталог.

Более того, каталоги могут содержать в себе другие каталоги, называемые подкаталогами, что позволяет создавать из файлов иерархические структуры. Например, пользователь может создать каталог «Программы», который будет включать подкаталоги программ, написанных на разных языках «Fortran», «Pascal» и «Java». В каждом подкаталоге будут размещаться файлы, относящиеся к соответствующей категории. Цепочка каталогов, ведущая к файлу, называется путем (англ.path). Так путь к файлу abc.java, содержащему программу на языке Java, будет иметь следующий вид:

…/Программы/ Java/ abc.java

Файл обладает уникальным идентификатором (именем), обеспечивающим доступ к файлу. Идентификатор включает в себя собственно имя — буквенно-цифровое обозначение файла, которое может содержать специальные символы и расширение имени файла Расширение от собственно имени файла отделяется точкой. Имена создаваемых файлов пользователь может задавать произвольно, а в расширениях следует придерживаться традиции, согласно которой расширение указывает на тип файла, характер его содержимого. Например, в операционной системе MS-DOS исполняемые файлы имеют расширения com, exe, bat; текстовые – txt, doc; файлы баз данных – dbf; тексты программ на языках программирования Паскаль, Бейсик, Си, Фортран, соответственно – pas, bas, c, for.

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

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

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

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

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

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

Этот иллюзорный объем памяти называется виртуальной памятью (англ.virtual memory). Предположим, что выполняемым программам требуется 256 Мбайт основной памяти, а в наличии имеется только 128. Чтобы создать иллюзию большего объема памяти, программа управления памятью делит требуемый объем на элементы, называемые страницами (pages), и хранит содержимое этих страниц в массовой памяти.

Читайте также:
Как записать программу в прямом эфире

Типичный объем страницы – не больше 4 кбайт. Подсистема управления памятью помещает в основную память те страницы, которые в данный момент должны там находиться, замещая ими те, в которых в данный момент нет потребности. Таким образом, остальные компоненты программного обеспечения могут работать так, как если бы объем основной памяти машины действительно составлял 256 Мбайт.

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

1. Что такое текстовые редакторы? Для чего они нужны?

2. Что такое графические редакторы? Для чего они нужны?

3. Что такое электронные таблицы? Для чего они нужны?

4. Что такое интегрированные системы? Для чего они нужны?

5. Каковы функции операционной системы?

6. Охарактеризуйте функции основных компонент операционных систем.

7. В чем состоит назначение файловой системы ОС?

8. Что такое файл? Какие структуры файлов поддерживаются различными ОС?

9. Что такое каталог (директорий)? Для чего каталоги служат?

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

11. Какие имеются сравнительные преимущества и недостатки у компиляторов иинтерпретаторов?

Источник: studopedia.ru

Управление памятью в операционной системе

bestprogrammer.ru

Управление памятью в операционной системе

Изучение

На чтение 11 мин Просмотров 4.6к. Опубликовано 24.08.2021

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

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

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

Что такое основная память

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

Основная память — это место, где хранятся программы и информация, когда процессор эффективно их использует. Также основная память связана с процессором, поэтому перемещение инструкций и информации в процессор и из процессора происходит очень быстро. Основная память также известна как RAM (оперативная память). Эта память является энергозависимой. ОЗУ теряет свои данные при отключении питания.

Иерархия памяти

Рисунок 1: Иерархия памяти

Что такое управление памятью

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

Почему требуется управление памятью

  • Выделять и освобождать память до и после выполнения процесса.
  • Для отслеживания используемого пространства памяти процессами.
  • Чтобы свести к минимуму проблемы фрагментации.
  • Для правильного использования основной памяти.
  • Сохранять целостность данных при выполнении процесса.

Теперь мы обсуждаем концепцию логического адресного пространства и физического адресного пространства:

Логическое и физическое адресное пространство

Логическое адресное пространство: адрес, генерируемый ЦП, известен как «логический адрес». Он также известен как виртуальный адрес. Логическое адресное пространство можно определить как размер процесса. Логический адрес можно изменить.

Физическое адресное пространство: адрес, видимый блоком памяти (т. Е. Тот, который загружен в регистр адреса памяти), обычно известен как «Физический адрес». Физический адрес также известен как реальный адрес. Набор всех физических адресов, соответствующих этим логическим адресам, известен как физическое адресное пространство. Физический адрес вычисляется MMU.

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

Статическая и динамическая нагрузка

Загрузка процесса в основную память выполняется загрузчиком. Есть два разных типа загрузки:

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

Статические и динамические ссылки

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

  • Статическая компоновка: пристатической компоновке компоновщик объединяет все необходимые программные модули в единую исполняемую программу. Таким образом, нет никакой зависимости от времени выполнения. Некоторые операционные системы поддерживают только статическое связывание, в котором библиотеки системного языка обрабатываются как любой другой объектный модуль.
  • Динамическое связывание: основная концепция динамического связывания аналогична динамической загрузке. При динамической компоновке «заглушка» включается для каждой соответствующей ссылки на библиотечную подпрограмму. Заглушка — это небольшой фрагмент кода. Когда заглушка выполняется, она проверяет, находится ли нужная процедура уже в памяти или нет. Если он недоступен, программа загружает подпрограмму в память.

Обмен

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

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

Когда процесс выполняется, он должен находиться в памяти

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

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

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

Читайте также:
Как работать с программой премьер

Основная память должна задействовать как операционную систему

Выделение памяти

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

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

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

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

First fit:-

При первой подгонке первое доступное свободное отверстие удовлетворяет требованиям назначенного процесса.

Здесь, на этой диаграмме, блок памяти размером 40 КБ

Здесь, на этой диаграмме, блок памяти размером 40 КБ является первым доступным свободным местом, в котором может храниться процесс A (размер 25 КБ), поскольку первые два блока не имели достаточного пространства памяти.

Best fit:-

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

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

В этом методе использование памяти максимально по сравнению с другими методами распределения памяти.

Worst fit:- В худшем случае выделите для обработки наибольшее доступное отверстие. Этот метод дает самое большое оставшееся отверстие.

Здесь, в этом примере, процесс A (размер 25 КБ) выделяется самому большому доступному блоку памяти, который составляет 60 КБ. Неэффективное использование памяти является серьезной проблемой в худшем случае.

Фрагментация

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

Внутренняя фрагментация

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

Пример: предположим, что для распределения памяти используется фиксированное разделение, а размер блока в памяти различается: 3 МБ, 6 МБ и 7 МБ. Теперь приходит новый процесс p4 размером 2 МБ и требует блока памяти. Он получает блок памяти размером 3 МБ, но 1 МБ блочной памяти является пустой тратой и не может быть выделен другим процессам. Это называется внутренней фрагментацией.

Внешняя фрагментация

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

Пример: Предположим (рассмотрим пример выше) три процесса p1, p2, p3 имеют размер 2 МБ, 4 МБ и 7 МБ соответственно. Теперь им выделяются блоки памяти размером 3 МБ, 6 МБ и 7 МБ соответственно. После выделения для процесса p1 и p2 осталось 1 МБ и 2 МБ. Предположим, что приходит новый процесс p4 и требует 3-мегабайтный блок памяти, который доступен, но мы не можем его назначить, потому что свободное пространство памяти не является непрерывным. Это называется внешней фрагментацией.

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

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

Paging:

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

  • Логический адрес или виртуальный адрес (представлен в битах): адрес, генерируемый ЦП.
  • Логическое адресное пространство или виртуальное адресное пространство (представленное словами или байтами): набор всех логических адресов, сгенерированных программой.
  • Физический адрес (представлен в битах): адрес, фактически доступный в блоке памяти.
  • Физическое адресное пространство (выраженное словами или байтами): набор всех физических адресов, соответствующих логическим адресам.
  • Если логический адрес = 31 бит, то логическое адресное пространство = 2 31слово = 2 G слов (1 G = 2 30 )
  • Если логическое адресное пространство = 128 M слов = 2 7* 2 20 слов, то логический адрес = log 2 2 27 = 27 бит
  • Если физический адрес = 22 бита, то физическое адресное пространство = 2 22слова = 4 M слов (1 M = 2 20 )
  • Если физическое адресное пространство = 16 M слов = 2 4* 2 20 слов, то физический адрес = log 2 2 24 = 24 бита.

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

  • Физическое адресное пространство концептуально разделено на несколько блоков фиксированного размера, называемых кадрами.
  • Логическое адресное пространство также разделено на блоки фиксированного размера, называемые страницами.
  • Размер страницы = Размер кадра
  • Физический адрес = 12 бит, тогда физическое адресное пространство = 4 К слов
  • Логический адрес = 13 бит, затем логическое адресное пространство = 8 К слов
  • Размер страницы = размер кадра = 1 тыс. Слов (предположение)

Адрес, генерируемый ЦП, делится на

Адрес, генерируемый ЦП, делится на

  • Номер страницы (p):количество битов, необходимых для представления страниц в логическом адресном пространстве или номер страницы.
  • Смещение страницы (d):количество битов, необходимых для представления определенного слова на странице или размер страницы логического адресного пространства, или номер слова страницы или смещение страницы.

Физический адрес делится на

  • Номер кадра (f):количество битов, необходимых для представления кадра физического адресного пространства или кадра номера кадра.
  • Смещение кадра (d):количество битов, необходимых для представления конкретного слова в кадре, или размер кадра в физическом адресном пространстве, или номер слова кадра, или смещение кадра.

Аппаратная реализация таблицы страниц может быть выполнена с использованием выделенных регистров. Но использование регистра для таблицы страниц является удовлетворительным только в том случае, если таблица страниц мала. Если таблица страниц содержит большое количество записей, мы можем использовать TLB (буфер просмотра трансляции), специальный небольшой аппаратный кеш для быстрого просмотра.

  • TLB — это ассоциативная высокоскоростная память.
  • Каждая запись в TLB состоит из двух частей: тега и значения.
  • Когда эта память используется, то элемент сравнивается со всеми тегами одновременно. Если элемент найден, то соответствующее значение возвращается.

Время доступа к основной памяти

Время доступа к основной памяти = м

Если таблица страниц хранится в основной памяти,

Эффективное время доступа = m (для таблицы страниц) + m (для конкретной страницы в таблице страниц)

Источник: bestprogrammer.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru