Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Jul 20, 2019 9:12 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 12 posts ] 

Вы за
Плоскую модель 100%  100%  [ 15 ]
Многосегментную модель 0%  0%  [ 0 ]
Total votes: 15
Author Message
PostPosted: Sun Apr 01, 2007 7:31 pm 
В общем, я считаю, что правильнее использовать многомегментную модель памяти, т.к.

1. Присутствует аппаратная поддержка подкачки
2. Выгирыш в быстродействии за счет аппаратного контроля ссылко к памяти


Top
   
 Post subject:
PostPosted: Sun Apr 01, 2007 7:41 pm 
Offline
User avatar

Joined: Thu Mar 01, 2007 4:16 pm
Posts: 426
Я не в теме. Можно дайджест или ссылки на русские документы по теме?

..bw


Top
   
 Post subject:
PostPosted: Sun Apr 01, 2007 7:43 pm 
Могу дать документацию по процессору intel 80486 по email... За сим - обращайтесь в ЛС...


Top
   
PostPosted: Sun Apr 01, 2007 8:11 pm 
Offline

Joined: Sun Mar 11, 2007 4:05 pm
Posts: 64
Nameless wrote:
В общем, я считаю, что правильнее использовать многомегментную модель памяти, т.к.

1. Присутствует аппаратная поддержка подкачки
2. Выгирыш в быстродействии за счет аппаратного контроля ссылко к памяти

Ничего не понимаю.
1. Это ты о чем? Какая аппоратная подкачка. Есть исключение которое происходит при отсутствии страници памяти. Но это уровень ниже чем сегментной модели(мули сигментая или флат не имеет значение).
2. А это каким боком? Флат сегментая или мульти сегментая значение не имеет.

Приемущества Флат. Памяити виртуальной больше. То 4ГБ на всех то 4ГБ кадаму.

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


Top
   
 Post subject:
PostPosted: Sun Apr 01, 2007 8:39 pm 
Quote:
Подкачка
страниц обеспечивает доступ к структурам данных, превышающим по
размеру доступное пространство оперативной памяти, благодаря
тому, что часть таких структур держится в оперативной памяти, а
часть - на диске.


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

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

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


F воА ще, насколько я понимаю, процесор может адресовать всего 4 Гб адресного пространства... Или приходится использовать ухищрения типа оверлеев. Это относится к 32-х битным процам... 64 бит может адресовать до 16777216 Терабайт...


Top
   
 Post subject:
PostPosted: Sun Apr 01, 2007 9:24 pm 
Offline

Joined: Sun Mar 11, 2007 4:05 pm
Posts: 64
У тебя не точное представление как устроена память в x86.

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

Страничная модель лежит ниже сегментной. Поэтому во флат она присутствует и осуществляется точно также как и в мульти-сегментной. Так что с подкачкой нет проблем.


Что мульти-сегментная модель, что флат функционируют одинаково.
Есть сегменты. Не важно сколько. Дело в том что все они отображаются на адресатное пространство в 4ГБ (36 битный режим для упрощения не рассматриваем).
Так что в этом плане флат и мульти-сегментная модель одинаковы.
А дальше идет страничный механизм. Который и организует подкачку и возможность например, разделение
данных может выполняться за счет отображения одних и тех же
страниц памяти в адресное пространство каждой программы.

Так что имея Флат модель организации памяти нам никто не запрещает воспользоваться страничным режимом для реализации всего этого.

Преимущества мульти-сегментной модели это защитные механизмы. Сегменты можно задать права на доступ. Правда во флат это решается через другие механизмы.


Top
   
 Post subject:
PostPosted: Sun Apr 01, 2007 11:34 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Nameless

Уходили, уходили от сегментированной памяти и на тебе...

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

Чушь полная, потому что все обращения к памяти в защищённом режиме контролируются аппаратно. По-другому просто не может быть.
Quote:
В качестве другой крайности, рассмотрим систему, состоящую всего из одной выполняемой программы - такая система позволяет
получить максимальный выигрыш в случае несегментированной "плоской" модели памяти

Вторая часть цитаты демонстрирует "доисторическое" понимание устройства плоской памяти. Плоская модель означает что все сегментные механизмы защиты отключены. Вся защита по привилегиям обеспечивается таблицами страниц. Страничная память даёт каждой программе непрерывное адресное пространство в 4 Gb надежно изолированное от других программ.
Громоздкие и медленные механизмы сегментации становятся не нужны. По этой причине в АМД64 long mode защита на уровне сегментов просто отсутствует.


Top
   
 Post subject:
PostPosted: Mon Apr 02, 2007 4:47 pm 
Млин... Может быть, и не прав.. Если бить не будете - поставлю виртуальное пиво :). Но несколько отступлений: Цитаты - фирма Intel в переводе на русский... Дело в том, что я сейчас практически все это дело изучаю, и изучаю именно то оборудование, которое стоит у меня и часто мне встречается... Поэтому. моя документация могла и устареть :(.

Quote:
Чушь полная, потому что все обращения к памяти в защищённом режиме контролируются аппаратно. По-другому просто не может быть.


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


Top
   
 Post subject:
PostPosted: Tue Apr 03, 2007 11:32 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Nameless

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

>при отключенном механизме защиты (хотя процессор и находится в защищенном режиме)
> доступ к памяти аппаратно не контролируется

Я конечно погорячился когда писал что защита отключена. Это не так.
Доступ к памяти контролируется всегда. Проверяется три условия: селектор не равен 0-3, смещение меньше или равно пределу сегмента, разрешение на запись в операциях записи. В случае с плоским сегментом предел равен 4Gb-1 так что услови 2 выполняется всегда. На практике у процессора RISC ядро, все команды разбиваются на микрооперации так что процессор может соптимизировать некоторые операции - если база сегмента 0 её не надо складывать со смещением, если предел 4Gb не надо проверять лимит.
При включённой страничной адресации все проверки выполняются ещё раз.
Проверяется присутствие страницы, право доступа к странице, право записи. Фактически доступ к памяти контролируется два раза. Только страничная память оказалась более удобным и гибким способом защиты поэтому от сложных многосегментных моделей и отказались.


Top
   
 Post subject:
PostPosted: Tue Apr 03, 2007 12:13 pm 
Лично мне, прикалывает больше 0:base flat-mode, с вырублеными страницами, т.е, доступ по абсолютным адресам.. считаю эту модель более простой и близкой к 'железу', чем всё эти 'виртуальные наколки' с пейджингом, ну и DPL=0. 32-битный реальный режим, короче... круто..


Top
   
 Post subject:
PostPosted: Tue Apr 03, 2007 2:59 pm 
Offline

Joined: Sun Feb 18, 2007 8:34 pm
Posts: 158
Nameless, многосегментная модель - это понятие растяжимое. Должно ли приложение для доступа к различным участкам памяти использовать разные сегменты? Нет, т.к. это все усложняет, но не дает никаких преимуществ, потому что сейчас в отличии от эпохи 16-разрядных систем и через один сегмент можно осуществить обращение к любому участку памяти, доступной отдельной задаче. Должна ли система для каждого приложения создавать отдельные сегменты? Нет, т.к. современные системы используют механизм страничной переадресации, когда с использованием одних и тех же адресов разные приложения получают доступ к различным областям физической памяти. Должна ли система для своих собственных нужд использовать большое количество сегментов? Возможно, особенно если она состоит из множества загружаемых произвольным образом модулей, но не обязательно, если формат файлов, из которых загружаются модули, позволяет сохранить информацию для последующей релокации этих модулей в памяти. Более того, во всех описанных мной вариантах можно использовать сегментацию для защиты системной памяти, для борьбы с переполнением стека и т.п. путем изменения лимитов сегментов, но оставаясь при этом в рамках единой FLAT-адресации.

N†OSKRNL, не использовать пейджинг нынче сложно, т.к. помимо всего прочего именно он позволяет преодолеть фрагментацию физической памяти.


Top
   
 Post subject:
PostPosted: Tue Apr 03, 2007 4:32 pm 
Quote:
он позволяет преодолеть фрагментацию физической памяти.

ну наверное... только это актуально для 'больших' и геморных систем, типа Windows/Linux, в котором иногда обьём загруженого софта, так и лезет в своп, и обратно. Ну а вообще, дыры в памяти - это проблема загрузчика, распределяющего данные.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 12 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: Baidu [Bot] and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited