16. Статическая память служит базой для построения ____________памяти.
кэш- |
оперативной |
виртуальной |
постоянной |
Решение:
Статическая память служит базой для построения кэш-памяти и микропроцессорной памяти. Запоминающим элементом статической памяти является триггер (элемент с двумя устойчивыми состояниями), переключаемый за существенно меньшее время по сравнению со временем (заряд/разряд) элемента динамической памяти.
17. Длительное хранение информации пользователя обеспечивает …
ВЗУ |
ПЗУ |
ОЗУ |
ППЗУ |
Решение: Длительное хранение информации пользователя обеспечивает ВЗУ (внешнее запоминающее устройство). К внешней памяти относятся:
1) накопители на жестких магнитных дисках (НЖМД),
2) накопители на гибких магнитных дисках (НГМД),
3) накопители на магнитооптических компакт дисках,
Оперативная память. Как выбрать? Что стоит за характеристиками?
4) накопители на оптических дисках,
5) накопители на магнитной ленте и др.
18. Шина данных предназначена …
для передачи обрабатываемой информации |
для передачи адреса памяти или внешних устройств, к которым обращается процессор |
для передачи управляющих сигналов |
для преобразования информации, поступающей от процессора, в соответствующие сигналы, управляющие работой устройств |
Решение: Шина данных – шина, предназначенная для передачи обрабатываемой информации.
19. Для увеличения скорости выполнения математических операций в ПК используется …
сопроцессор |
кэш-память |
оперативная память |
системная шина |
20. Персональный компьютер не будет функционировать, если отключить ____________ или ______________.
оперативную память |
процессор |
мышь |
монитор |
21. В аппаратном подключении периферийных устройств участвуют …
контроллер |
общая шина |
стример |
регистр |
22. В компьютере с 64-разрядной шиной данных и 32-разрядной адресной шиной установлена память объемом 16 Мбайт. Разрядность этого процессора равна …
64х32 |
23. Из перечисленных видов памяти компьютера самой быстродействующей является …
микропроцессорная память |
внешняя память |
оперативная память |
CMOS-память |
24. Качество звука, оцифрованного звуковой картой, определяется такими параметрами, как …
частота дискретизации |
глубина кодирования |
уровень звука |
длительность звучания |
В чём отличие кэша в процессорах и как он работает? Какой лучше, быстрее и объемней? L1, L2, L3
25. Прямым доступом к памяти (DMA) называется режим, при котором …
устройство обменивается данными с ОЗУ или другим устройством без участия центрального процессора |
центральный процессор обменивается данными с ОЗУ |
используется кэш-память, позволяющая ускорить обмен данными |
центральный процессор обменивается данными с кэш-памятью |
Решение:
Прямой доступ к памяти (англ. Direct Memory Access, DMA) – режим обмена данными между устройствами или же между устройством и основной памятью (RAM) без участия центрального процессора (ЦП).
26. Из перечисленных видов памяти наибольшей информационной емкостью обладает …
оперативная память |
кэш-память |
микропроцессорная память |
CMOS |
27. COM-порты компьютера обеспечивают …
COM-порты служат для связи компьютера с внешними устройствами и обеспечивают синхронную или асинхронную последовательную побитовую передачу данных. В общем случае они являются двунаправленными. Ранее последовательный порт использовался для подключения модема или мыши. Сейчас он применяется для соединения с источниками бесперебойного питания, для связи с аппаратными средствами разработки встраиваемых вычислительных систем.
RAM (Random Access Memory) расшифровывается как «память с произвольным доступом». Это оперативное запоминающее устройство (ОЗУ). Данный вид памяти относится к внутренней памяти компьютера и располагается на системной плате.
29. К электронному виду памяти персонального компьютера относятся …
В современном персональном компьютере электронной памятью являются: модули оперативной памяти, кэш-память процессора, память на флеш-картах. Здесь каждая ячейка представляет собой электрическую схему, в которой ноль или единица определяется протекаемыми электрическими токами (статическая память) и накопленными зарядами (динамическая память).
30. Электронные схемы для управления внешними устройствами – это …
Для физического (по электрическим сигналам) сопряжения дополнительных устройств (например, винчестеров, накопителей на CD, манипуляторов «Мышь» и др.) с базовой частью компьютера необходимы специальные электрические схемы, получившие название «контроллеры».
31. Энергонезависимыми устройствами памяти персонального компьютера являются …
Энергонезависимой называют память, способную сохранять данные после отключения питания компьютера. Такой памятью являются все виды внешней памяти ПК, в том числе жесткий диск (винчестер), дискеты, Flash USB Drive, память на CD.
32. Одним из параметров накопителя на жестких дисках является форм-фактор, который означает …
диаметр дисков в дюймах |
количество цилиндров |
количество данных, которые могут храниться накопителем |
количество поверхностей |
Решение: Одним из параметров накопителя на жестких дисках является форм-фактор или физический размер, который означает диаметр дисков в дюймах (0,85; 1; 1,3; 1,8; 2,5; 3,5).Прекращено производство накопителей в форм-факторах 8 и 5,25 дюймов.
33. Во время выполнения прикладная программа хранится в …
оперативной памяти |
видеопамяти |
постоянной памяти |
файловой системе ПК |
34. Как известно, разрядность процессора определяется разрядностью регистров, в которые помещаются обрабатываемые данные. Если регистр имеет разрядность 4 байта, то разрядность процессора равна …
35. Основными параметрами, характеризующими запоминающие устройства компьютера, являются …
информационная емкость, время доступа |
энергопотребление, тип интерфейса |
размер кластера, стоимость |
время хранения, габариты |
36. В пустой блок общей схемы компьютера необходимо вписать устройство …
оперативная память |
контроллер ввода-вывода |
устройство управления |
арифметико-логическое устройство |
37. Динамическая память служит базой для построения …
модулей оперативной памяти |
кэш-памяти |
микропроцессорной памяти |
постоянной памяти |
38. Разрядность центрального процессора определяется …
разрядностью двоичного числа, которое может быть обработано за один такт работы процессора |
разрядностью шины управления |
тактовой частотой процессора |
наименованием процессора (Pentium, Dual Core и т.д.) |
39. Динамическая память служит базой для построения …
модулей оперативной памяти |
кэш-памяти |
микропроцессорной памяти |
постоянной памяти |
Решение:
Динамическая память служит базой для построения модулей оперативной памяти. Организуется из набора полупроводниковых конденсаторов, хранящих уровни напряжения. Благодаря маленькой площади, занимаемой элементом памяти на кристалле, обеспечивается большая информационная емкость микросхем памяти.
40. BIOS (Basic Input Output System) является …
частью системного программного обеспечения, хранящейся в постоянном запоминающем устройстве |
стандартной кодовой таблицей |
частью оперативной памяти |
базовой частью микропроцессора |
Решение:
BIOS (Basic Input Output System – базовая система ввода-вывода) – группа небольших программ в постоянном запоминающем устройстве (ПЗУ).
BIOS отвечает за самые главные, базовые функции интерфейса и настройки оборудования. Главная функция BIOS материнской платы – инициализация устройств, подключенных к материнской плате, сразу после включения питания компьютера. С помощью BIOS при включении компьютера выполняется также самотестирование основных систем. Наиболее широко среди пользователей компьютеров известна BIOS материнской платы, но BIOS присутствуют почти у всех компонентов компьютера: у видеоадаптеров, сетевых адаптеров, модемов, дисковых контроллеров, принтеров. По своей сути BIOS является посредником между аппаратным и программным обеспечением компьютера.
41. Внутренней памятью процессора является _______________ память.
регистровая |
оперативная |
постоянная |
основная |
42. Один из физических каналов ввода-вывода компьютера – разъем – называется аппаратным(-ой) …
Решение:
Связь компьютера с внешними дополнительными (периферийными) устройствами осуществляется через порты, например COM, LPT, USB.
Источник: studopedia.org
Организация памяти процесса
Управление памятью – центральный аспект в работе операционных систем. Он оказывает основополагающее влияние на сферу программирования и системного администрирования. В нескольких последующих постах я коснусь вопросов, связанных с работой памяти. Упор будет сделан на практические аспекты, однако и детали внутреннего устройства игнорировать не будем.
Рассматриваемые концепции являются достаточно общими, но проиллюстрированы в основном на примере Linux и Windows, выполняющихся на x86-32 компьютере. Первый пост описывает организацию памяти пользовательских процессов.
Каждый процесс в многозадачной ОС выполняется в собственной “песочнице”. Эта песочница представляет собой виртуальное адресное пространство, которое в 32-битном защищенном режиме всегда имеет размер равный 4 гигабайтам. Соответствие между виртуальным пространством и физической памятью описывается с помощью таблицы страниц (page table).
Ядро создает и заполняет таблицы, а процессор обращается к ним при необходимости осуществить трансляцию адреса. Каждый процесс работает со своим набором таблиц. Есть один важный момент — концепция виртуальной адресации распространяется на все выполняемое ПО, включая и само ядро. По этой причине для него резервируется часть виртуального адресного пространства (т.н. kernel space).
Это конечно не значит, что ядро занимает все это пространство, просто данный диапазон адресов может быть использован для мэппирования любой части физического адресного пространства по выбору ядра. Страницы памяти, соответствующие kernel space, помечены в таблицах страниц как доступные исключительно для привилегированного кода (кольцо 2 или более привилегированное).
При попытке обращения к этим страницам из user mode кода генерируется page fault. В случае с Linux, kernel space всегда присутствует в памяти процесса, и разные процессы мэппируют kernel space в одну и ту же область физической памяти. Таким образом, код и данные ядра всегда доступны при необходимости обработать прерывание или системный вызов. В противоположность, оперативная память, замэппированная в user mode space, меняется при каждом переключении контекста.
Синим цветом на рисунке отмечены области виртуального адресного пространства, которым в соответствие поставлены участки физической памяти; белым цветом — еще не использованные области. Как видно, Firefox использовал большую часть своего виртуального адресного пространства. Все мы знаем о легендарной прожорливости этой программы в отношении оперативной памяти.
Синие полосы на рисунке — это сегменты памяти программы, такие как куча (heap), стек и так далее. Обратите внимание, что в данном случае под сегментами мы подразумеваем просто непрерывные адресные диапазоны. Это не те сегменты, о которых мы говорим при описании сегментации в Intel процессорах. Так или иначе, вот стандартная схема организации памяти процесса в Linux:
Давным давно, когда компьютерная техника находилась в совсем еще младенческом возрасте, начальные виртуальные адреса сегментов были совершенно одинаковыми почти для всех процессов, выполняемых машиной. Из-за этого значительно упрощалось удаленное эксплуатирование уязвимостей.
Эксплойту часто необходимо обращаться к памяти по абсолютным адресам, например по некоторому адресу в стеке, по адресу библиотечной функции, и тому подобное. Хакер, рассчитывающий осуществить удаленную атаку, должен выбирать адреса для обращения в слепую в расчете на то, что размещение сегментов программы в памяти на разных машинах будет идентичным.
И когда оно действительно идентичное, случается, что людей хакают. По этой причине, приобрел популярность механизм рандомизации расположения сегментов в адресном пространстве процесса. Linux рандомизирует расположение стека, сегмента для memory mapping, и кучи – их стартовый адрес вычисляется путем добавления смещения. К сожалению, 32-битное пространство не очень-то большое, и эффективность рандомизации в известной степени нивелируется.
В верхней части user mode space расположен стековый сегмент. Большинство языков программирования используют его для хранения локальных переменных и аргументов, переданных в функцию. Вызов функции или метода приводит к помещению в стек т.н. стекового фрейма. Когда функция возвращает управление, стековый фрейм уничтожается.
Стек устроен достаточно просто — данные обрабатываются в соответствии с принципом «последним пришёл — первым обслужен» (LIFO). По этой причине, для отслеживания содержания стека не нужно сложных управляющих структур – достаточно всего лишь указателя на верхушку стека. Добавление данных в стек и их удаление – быстрая и четко определенная операция. Более того, многократное использование одних и тех же областей стекового сегмента приводит к тому, что они, как правило, находятся в кеше процессора, что еще более ускоряет доступ. Каждый тред в рамках процесса работает с собственным стеком.
Возможна ситуация, когда пространство, отведенное под стековый сегмент, не может вместить в себя добавляемые данные. В результате, будет сгенерирован page fault, который в Linux обрабатывается функцией expand_stack(). Она, в свою очередь, вызовет другую функцию — acct_stack_growth(), которая отвечает за проверку возможности увеличить стековый сегмент.
Если размер стекового сегмента меньше значения константы RLIMIT_STACK (обычно 8 МБ), то он наращивается, и программа продолжает выполняться как ни в чем не бывало. Это стандартный механизм, посредством которого размер стекового сегмента увеличивается в соответствии с потребностями. Однако, если достигнут максимально разрещённый размер стекового сегмента, то происходит переполнение стека (stack overflow), и программе посылается сигнал Segmentation Fault. Стековый сегмент может увеличиваться при необходимости, но никогда не уменьшается, даже если сама стековая структура, содержащаяся в нем, становиться меньше. Подобно федеральному бюджету, стековый сегмент может только расти.
Динамическое наращивание стека – единственная ситуация, когда обращение к «немэппированной» области памяти, может быть расценено как валидная операция. Любое другое обращение приводит к генерации page fault, за которым следует Segmentation Fault. Некоторые используемые области помечены как read-only, и обращение к ним также приводит к Segmentation Fault.
Под стеком располагается сегмент для memory mapping. Ядро использует этот сегмент для мэппирования (отображания в память) содержимого файлов. Любое приложение может воспользоваться данным функционалом посредством системного вызовома mmap() (ссылка на описание реализации вызова mmap) или CreateFileMapping() / MapViewOfFile() в Windows.
Отображение файлов в память – удобный и высокопроизводительный метод файлового ввода / вывода, и он используется, например, для загрузки динамических библиотек. Существует возможность осуществить анонимное отображение в память (anonymous memory mapping), в результате чего получим область, в которую не отображен никакой файл, и которая вместо этого используется для размещения разного рода данных, с которыми работает программа. Если в Linux запросить выделение большого блока памяти с помощью malloc(), то вместо того, чтобы выделить память в куче, стандартная библиотека C задействует механизм анонимного отображения. Слово «большой», в данном случае, означает величину в байтах большую, чем значение константы MMAP_THRESHOLD. По умолчанию, это величина равна 128 кБ, и может контролироваться через вызов mallopt().
Кстати о куче. Она идет следующей в нашем описании адресного пространства процесса. Подобно стеку, куча используется для выделения памяти во время выполнения программы. В отличие от стека, память, выделенная в куче, сохранится после того, как функция, вызвавшая выделение этой памяти, завершится. Большинство языков предоставляют средства управления памятью в куче.
Таким образом, ядро и среда выполнения языка совместно осуществляют динамическое выделение дополнительной памяти. В языке C, интерфейсом для работы с кучей является семейство функций malloc(), в то время как в языках с поддержкой garbage collection, вроде C#, основной интерфейс – это оператор new.
Если текущий размер кучи позволяет выделить запрошенный объем памяти, то выделение может быть осуществлено средствами одной лишь среды выполнения, без привлечения ядра. В противном случае, функция malloc() задействует системный вызов brk() для необходимого увеличения кучи (ссылка на описание реализации вызова brk).
Управление памятью в куче – нетривиальная задача, для решения которой используются сложные алгоритмы. Данные алгоритмы стремятся достичь высокой скорости и эффективности в условиях непредсказуемых и хаотичных пэттернов выделения памяти в наших программах. Время, затрачиваемое на каждый запрос по выделению памяти в куче, может разительно отличаться. Для решения данной проблемы, системы реального времени используют специализированные аллокаторы памяти. Куча также подвержена фрагментированию, что, к примеру, изображено на рисунке:
Наконец, мы добрались до сегментов, расположенных в нижней части адресного пространства процесса: BSS, сегмент данных (data segment) и сегмент кода (text segment). BSS и data сегмент хранят данные, соответствующий static переменным в исходном коде на C. Разница в том, что в BSS хранятся данные, соответствующие неинициализированным переменным, чьи значения явно не указаны в исходном коде (в действительности, там хранятся объекты, при создании которых в декларации переменной либо явно указано нулевое значение, либо значение изначально не указано, и в линкуемых файлах нет таких же common символов, с ненулевым значением. – прим. перевод.). Для сегмента BSS используется анонимное отображение в память, т.е. никакой файл в этот сегмент не мэппируется. Если в исходном файле на C использовать int cntActiveUsers, то место под соответствующий объект будет выделено в BSS.
С указателями все немножко посложнее. В примере из наших диаграмм, содержимое объекта, соответствующего переменной gonzo – это 4-байтовый адрес – размещается в data сегменте. А вот строка, на которую ссылается указатель, не попадет в data сегмент.
Строка будет находиться в сегменте кода, который доступен только на чтение и хранит весь Ваш код и такие мелочи, как, например, строковые литералы (в действительности, строка хранится в секции .rodata, которая вместе с другими секциями, содержащими исполняемый код, рассматривается как сегмент, который загружается в память с правами на выполнение кода / чтения данных – прим. перевод.). В сегмент кода также мэппируется часть исполняемого файла. Если Ваша программа попытается осуществить запись в text сегмент, то заработает Segmentation Fault. Это позволяет бороться с «бажными» указателями, хотя самый лучший способ борьбы с ними – это вообще не использовать C. Ниже приведена диаграмма, изображающая сегменты и переменные из наших примеров:
Управление основной памятью, виртуальная память
При этом расположении объем памяти увеличивается снизу вверх, а скорость реагирования уменьшается.
Каждый вид памяти принципиально отличается от другого, по этому, управление существенно различается.
Способ организации памяти:
Организация памяти задает структуризацию на разных уровнях, способ размещения данных и способ доступа. Организация классифицируется на:
- Связные (данные первой программы располагаются едино)
- Не связные (данные произвольно распределены на носителе)
- Статические (для Кэш, данные программы размещаются в память вначале работы и до окончания не изменяют размер и место расположения)
- Динамические (для Кэш, данные по ходу программы могут перемещаться)
Управлением памятью занимается набор стратегий, определяющих способ использования конкретной организацией.
- Стратегии выборки (в какой момент времени данные программы должны быть размещены в памяти)
- по запросу (после обращения к данным)
- с упреждением (размещение перед тем, как они понадобятся)
- Стратегии размещения (в какой участок памяти разместить очередные данный)
- Стратегии замещения (какие данные из памяти нужно вытеснить для размещения новых)
Стратегий размещения и замещения существует огромное количество видов и различаются для различных организаций.
Основная память — устройство для хранения информации, работающей в данный момент программы.
Оперативная память — набор модулей, каждый из которых является набором ячеек.
К различным модулям обращение может выполняться параллельно.
Раcслоение — программно-аппаратный метод, помогающий увеличить быстродействие. Специальный способ адресации ячеек памяти. За счет этого обращение к данным распараллеливается.
При последовательной адресацции, адреса назначаются каждому модулю поочередно. Метод разслоения изпользует адресацию по кругу. Поскольку обращение к данным происходит последовательно, то при использовании разслоения скорость обращения возрастает за счет распараллеливания запросов памяти.
Однозадачная организация.
Некоторая часть памяти всегда отводится под системные требования. Вся оперативная память, не занятая операционной системой, отводится под текущие прикладные программы.
Стратегия управления для данной организации тривиальна (по завпросу — стратегия выборки, стратегия размещения — по направлению возрастания адресов, следом з аядром и по направлению убывания адресов с конца пространства; стратегия замещения — прикладные задачи не вытесняются, по скольку, новая программа загружается по завершению предыдущей). С целью устранения недостатков применялись попытки усовершенствования организации без ее принципиального изменения:
- Оверлейная организация программ (наложение слоев) — разбиение прикладной программы на несколько независимых частей и загрузку их в память поочередно.
- Свопинг — как только прикладная программа вызывает операцию ввода/вывода, операционаая система вытисняет программу из оперативной памяти во внешнюю, на ее место загружается другая программа, ожидающая вызова.
Оlнозадачная организация в чистом виде относится к классу связных статических. С overlay — не связные статично-динамические. Со swap — связно-динамические.
Многозадачная организация.
Когда-то многозадачная организация была придумана, чтобы устранить простои ЦП во время выполнения операций ввода/вывода.
При передачи управления, для достижения разумной эффективности, программа приема управления должна уже находиться в оперативной памяти, следовательно, в каждый момент времени в оперативной памяти должно находиться несколько программ.
Первоначальная идея — принцип невытесняющий многозадачности (передавать управление во время ввода/вывода). Однако, этот принцип пораждает ограничение — непредсказуемость времени отклика программы. Время работы каждой запущенной задачи прямо зависит от поведения предыдущей.
Если одна делает операции вывода, значит переход к другой программе, иначе программа будет работать до завершения, только после этого программа передаст управление. Дляч устранения дискриминации был предложен принцип вытесняемой многозадачности: программа может в любой момент времени прервать прикладжную программу и передать управление другой, а выполнявшаяся программа ожидает квант следующего выполнения. Квант не обязательно используется полностью, в случае ввода/вывода, завершения программы так же осуществляются передачи управления. ПРинцип вытеснения/невытеснения является общим.
Таким образом, организации, основанные на концепции виртуальной памяти являются несвязными и динамическими по типу органицазий.
Типы организаций памяти:
- Страничная (все блоки-страницы одинакового размера)
- Сегментная (размер блока-сегмента выбирается индивидуально)
- Странично-сегментная (блоки разного размера, но состоят из множества блоков фиксированной величины)
Программа при запуске разбивается на множество страниц-блоков одинакового размера. Виртуальный адрес состоит из номера страницы и смещения (V=(p,d)). Оперативная память, свободная от операционной системы разбивается на разделы-кадры равной длины. Для учета текущего размещения страниц водется таблица страниц, в которой для каждой страницы хранится:
- бит — признак присутствия страницы в оперативной памяти.
- Если бит = 1, то присутствует номер страницы-кадра.
- Если бит = 0, то задействован адрес во внешней памяти.
Номер строки равен номеру страницы. Таблица страниц для повышения эффективности обращения к ней может размещаться в основной памяти.
Механизм динамического преобразования адресов:
- Из регистра начального адреса таблицы отобраэжений извлекается размещение таблицы страниц текущей программы.
- Адрес смещается на номер страницы из виртуального адреса «*» на размер строки таблицы. Получаем адрес нужной строки в таблице отображений.
- Анализируется первый бит строки (на этом этапе алгоритм разветвляется):
- если бит=1, то считывается следующее в строке число — номер страничного кадра. Производится 4 действие
- если бит=0, то операционная система гененрирует исключение (pagefloult) и подкачивает страницу из внешней памяти с указанием адреса.
- Вычисляется физический номер страничного кадра (номер кадра умножить на размер страницы и прибавить базу)
- Полученный адрес складываем со смещением. Получаем физический адрес для требуемого данного.
Во втором случае, текущая выполняемая программа приостанавливается в ожидании завершения операции ввода/вывода. Операцинная система передает управление другой программе.
Отметим, что таблица отображения относится к системной информации и управление осуществляет только операционная система. Механизм преобразования адресов реализуется тоже операционной системой. Прикладная программа не имеет доступа к своим таблицам и не может прямо влиять на физическое размещение своих данных.
Стратегия управления является тривиальной, по скольку страничные кадры мжду собой ничем не отличаются. Стратегия: «Первый попавшийся свободный кадр». Для реализации должен вестись список свободных кадров, который структуры не имеет.
При реализации памяти появляется, возможно, выборка с упреждением, т.к. загрузка программы в память отдельными блоками. Тратегия выборки с упреждением базируется на анализе текущего выполнения программы и предсказании, какой блок понадобиться в следующий момент.
Защита памяти страничной организации:
Защита памяти организуется естественным образом: сама программа о физическом адресном пространстве не имеет никакой информации и оперирует только виртуальными адресами. Преобразование виртуальных адресов в реальные выполняет операционная система, при этом перехватывает все некорректные обращения (т.е. либо указание большей страницы,ч ем может быть, илбо указание смещения больше, чем может быть).
Оба случая легко перехватываются. Таблице страниц операционной системы легко известен номер последней страницы процесса, с ним сравнивается начало виртуального адреса и при выходе за перделы приклодная программа прерывается с ошибкой обращения по некорректному адресу.
Во втором случае: вторую половину виртуального адреса операционная система сравнивает с размером страницы и при привышении рождается тоже исключение. Таким образом, за счет опосредованного обращения к памяти, процессы изолированы друг от друга. ТАк же бессмыслены передачи виртуального адреса из одной программы в другую. Один и тот же виртуальный адрес разной программы будет преобразовываться в различные физические адреса.
В организации виртуальной памяти появляется возмождность коллективного использования данных. Что позволяет существенно экономить ресурсы за счет того, что не нужно создавать копий жэтих данных для каждой прикладной программы, желающей ими воспользоваться.
При сегментной организации программа разбивается на блоки не унифицированным образом, а индивидуально для каждого блока, исходя из логики организации информации в данном участке. Размер сегмента первоначально выбирается как стандартная величина, затем производится анализ границы разбиения. Если она приходится на адрес внутри некоторого набора данных, то она сдвигается до границы этого набора. Если граница приходится на ком и вблизи имеются инструкции перехода за нее, то граница сдвигается, кроме того не порождается внутри сегментная фрагментация: выделяется ровно столько памяти, сколько необходимо данному участку. За счет соблюдения этих принципов, свойство локальности в данной организации соблюдается с большей вероятностью, следовательно проще формировать рбочее множество.
Для каждой программы операционная система ведет таблицу отображения сегмента: бит признака наличия, адрес начала размещения в операционной системе, длина сегмента, адрес внешней памяти. Процесс преобразования виртуального адреса в рельный аналогичен, так как базируется на табличном отображении.
В этом виде организации инструкция работающей программы разбывается на блоки нескольких уровней. Превоначально, на нижнем уровне, используются блоки одинакового размера, т.е страницы. Затем все множетсво страниц разбивается на блоки-сегменты, которые, в свою очередь, могут включать разное количество страниц. Набор сегментов так же разбивается еще на блоки и т.д. Количество уровней не фиксируется.
Источник: gos-it.fandom.com