<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=126183&amp;view=findpost&amp;p=952501</guid>
        <pubDate>Sun, 18 Dec 2005 11:11:41 +0000</pubDate>
        <title>Сегментное распределение памяти</title>
        <link>https://forum.sources.ru/index.php?showtopic=126183&amp;view=findpost&amp;p=952501</link>
        <description><![CDATA[Epmak: Сегментное распределение<br>
При страничной организации виртуальное адресное пространство процесса делится механически на равные части. Это не позволяет дифференцировать способы доступа к разным частям программы (сегментам), а это свойство часто бывает очень полезным. Кроме того, разбиение программы на &quot;осмысленные&quot; части делает принципиально возможным разделение одного сегмента несколькими процессами. <br>
При сегментном распределении памяти виртуальное адресное пространство процесса делится на сегменты, размер которых определяется программистом с учетом смыслового значения содержащейся в них информации. Отдельный сегмент может представлять собой подпрограмму, массив данных и т.п. Иногда сегментация программы выполняется по умолчанию компилятором. <br>
При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре. <br>
<br>
Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту. <br>
Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса. <br>
<br>
<strong class='tag-b'>Задание на лабораторную работу</strong><br>
Разработать программу, моделирующую один из алгоритмов управления памятью в соответствии с вариантом задания. При моделировании считать что:<br>
•	объем моделируемой «памяти» составляет 64К;<br>
•	поступаемые на выполнение задачи содержатся в файлах, которые пользователь может «загружать» в моделируемую «память» и выгружать из нее (файл моделирует лишь размер задачи);<br>
•	размер задачи в диапазоне от 0 до 65535 байт.<br>
Программа должна иметь возможность просмотра состояния моделируемой «памяти». Т.е. процесс 1 занимает блок с 1-12, процесс 2 с 13-15 и т.д.<br>
<br>
Вообщем, нужна помощь :unsure:  В идеале конечно сама программа, написаная на С++, но подойдут и полезные материалы (в частности сам принцип реализации и т.д.) Насчет самой программы - будет материальное вознаграждения. В любом случаю заранее спасибо всем кто поможет чем либо. Писать на мыло onlynews@rambler.ru]]></description>
        <author>Epmak</author>
        <category>ПОМОЩЬ СТУДЕНТАМ</category>
      </item>
	
      </channel>
      </rss>
	