 
        
        Лабораторные работы / Задания / ЛР 4 АРХИТЕКТУРА ПАМЯТИ WINDOWS
.pdf 
| 
 | 
 | Лабораторная работа№ | 5 | 
 | ||
| 
 | 
 | АрхитекпамятиWindowsура | 
 | 
 | 
 | |
| Цельработы: | 
 | получепрактическихнавыкиепоиспользованию | 
 | Win32 API для | ||
| исследованияпамятиWindows | 
 | 
 | 
 | 
 | ||
| 
 | 
 | 
 | Типыпамяти | 
 | 
 | 
 | 
| В Windows реалсивиртуальностемазована | й | памяти,основаннаямоделипло | ского | |||
| (лин ейадресного) пространства,кот дляздкаждогояпроцессаетиллюзиюогромного | 
 | 
 | 
 | 
 | ||
| закрытогоадреснпространства.Виртуальнаягопамятьформилогическоеп уетедставление | 
 | 
 | 
 | 
 | ||
| памяти,котонесржетоответствоватьфизическо | й структуре.Вовремявыполне | ниядиспетчер | ||||
| памяти —приподдержкеоборудования | —транслиотоб( )виртуальныеуетажаадресат | 
 | ||||
| физические,гдефактическихранятсяданные.Управляязащито | 
 | 
 | й иотображениемадресов,ОС | 
 | ||
| можпредотвращатьстолкновеотдельпроцилнеиыхссоврезаписьданя | 
 | 
 | ныхОС. | 
 | ||
| Таккаквбольшинствесистемобъемфизическо | 
 | й памятигораздоменьшесуммарно | го | |||
| объемавиртуально | 
 | й памяти,используемо | й работающипроцессами,диспетчерпа яти | 
 | ||
| переновыгружает( )частьитодержпамятина.Выгрузкаскмогодан | 
 | 
 | ныхнадиско | свобождает | ||
| физипамять,ческуютобыонамоглаисподлдругьзоватьяпроцессовисамолихя | 
 | 
 | 
 | й ОС.Когда | ||
| потокбращаетсяповиртуальвыгруженномуадресу, диска,диспетчервиртуально | 
 | 
 | 
 | й памяти | ||
| подгружаетинформациюобрав сдискамятьно. | 
 | 
 | 
 | 
 | 
 | 
 | 
| Нарис. 1 | .1 | продемонстрированоиспользованиевир | 
 | туальной памятидвумяпроцессами; | ||
| частипамятиотображвфизическпаОЗУмятьются(),адрчастиувыгружаютсягиенадиск. | 
 | 
 | 
 | 
 | ||
| Обративниманиенато,чтопрерывныеблокивиртуально | 
 | 
 | й памоягуттображатьсяив | |||
| несмежныеблокифизическо | й памяти.Этиблокиназывстр,аихютсяразмерницамипо | 
 | 
 | 
 | ||
| умолчаниюсоставляетКба4 | 
 | йт. | 
 | 
 | 
 | 
 | 
| 
 | 
 | Рис. 1 .1 | 
 | 
 | 
| Размервиртуальадреспространогоизмевзависимостинстваяетсяотаппа | 
 | 
 | ратной | |
| платформы.В 32 | -разрядныхплатформах86общее | 
 | виртуальноеадрес | ноепространство | 
| ограниченотеоретическиммаксимумомГба4 | 
 | йт.Поумолча | нию Windows выделяетнижнюю | |
| половинуадресногопрост(отанстваеса0 | 
 | x80000000 до OxFFFFFFFF) процессамдляих | ||
| собственной закрытой памяти,верхнююполовину | (адресаот0 | x80000000 до OxFFFFFFFF) —для | ||
| собственногозащиспользованиященногопамяОС.От нижнбражения | 
 | 
 | й половины | |
1
 
| изменяютсявсоответствиивиртуальадреспространствомнымтекущегопроцесса,но | 
 | 
 | 
 | ||
| отображенияверхне | й половиныбольшинстве( | 
 | случаев) всегдасостоятизвиртуально | й памяти | |
| ОС. | Windows | поддепарвремениживаетаметзаг,коузкиыпредоставляюторыепроцессам, | 
 | 
 | 
 | 
| выпослняющимобпоразомымпрограммыеченные,возможностьиспользоватьдоГба3 | 
 | 
 | йт | ||
| закрытогоадреснпростр, гоанства | ляяГба1 | йтдляОС.Нарис. 1. | 2 изображеныдве | ||
| типичныеструктурывиртуальадреспространстваного,поддерживаемые32 | 
 | 
 | -разрядными | ||
| версиямиWindows. | 
 | 
 | 
 | 
 | |
| Рис. 1Типичная.2структура. виртуальадреспространстваного32 | -разрядныхверсия | 
| 
 | Windows | 
| Рис. 1Типичная.2структура. виртуальадреспространстваного64 | -разрядныхверсия | 
| 
 | Windows | 
Физическаяпамять
2
| Физическаяпамять | - этореальныемикросхемы | RAM,устанвкомпьютеревленн.Каждый | ||||
| байтфизическойпамятиимеетадр,которыйеский | 
 | 
 | представляетсобчислоотнуляй | |||
| числанаединицуменьшего,чемколичествобайтовфизическойпамяти.Например,ПК | 
 | 
 | 
 | |||
| установленнымиМб64 | RAM,имеетфизичадрН00000000ес&киеа | 
 | 
 | -&Н04000000в | ||
| шестнадцаси числентем, вдесятичнойричнойстеме | 
 | будет0 | -67 108 863. | |||
| Физическпамятьвотличие( фподкачкияйлавиртуальнойпамяти)является | 
 | 
 | 
 | |||
| исполняемой,тоестьпамятью,изкот читатьройжновк центторуюп оцессоральный | 
 | 
 | 
 | |||
| можетпосредствомсистемыкомандзаписыватьданные. | 
 | 
 | 
 | 
 | ||
| 
 | 
 | 
 | Виртуальнаяпамя | 
 | ть | 
 | 
| Виртуальнаяпамять( | virtual memory) - этопростонабчисел,котргокакврыхорят | 
 | ||||
| виртуальныхадресах.Программистможетиспользоватьвиртуальныеадреса,но | 
 | 
 | Windows не | |||
| способнаэтимадрепосресамобращатьсякданнымственно,посколькутакойадр | 
 | 
 | есне | |||
| являетадреальногофизическогояомзап устрмин,каквослучаеющегойствафизических | 
 | 
 | 
 | |||
| адресови файлаподкачки.Длятогочткодсвиртуальнымибыадресамиможнобыл | 
 | 
 | 
 | |||
| выполнить,такиеадресадолжныбыотображеныьнафизичадр,покескиеа | 
 | 
 | оторым | |||
| действительномогутхранитьсякодыданные.Этуоперациювыполняетдиспетчервиртуальной | 
 | 
 | 
 | |||
| памяти( | Virtual Memory Manager - VMM)Операционная. система | Windows обозначаетнекоторые | ||||
| обласпамятивиртуальнойкакобласти,ккоторымжнобратитьсяиз | 
 | 
 | программ | |||
| пользовательскогорежима.Всеостобластильныеуказываютсякакзарезерв.Какированные | 
 | 
 | 
 | |||
| облпадоступнымятисти,акакиезар ,зерависитотверсииировоперационнойсистемыны | 
 | 
 | 
 | |||
| (Windows 9x или Windows NT). | 
 | 
 | 
 | |||
| 
 | 
 | 
 | Страничныеблокипамяти | 
 | 
 | 
 | 
| Какизвестно,на | именьшийадресуемыйблокпамяти | 
 | - байт.Однакосамаленькимымблоком | |||
| памяти,которымоперирует | Windows VMM,являетсястрапамяназываемая, ицатакжеи | 
 | ||||
| страничнымблокомпамяти.Накомпроцессорамиьютрах | 
 | Intel | объемстраничногоблока | |||
| равенКб4. | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | Памятьфайлаподкачки | 
 | 
 | 
 | 
| Страничнфайл,которназтакжеыфйвйподкачкийломется | 
 | , | в Windows находится | |||
| жесткомдиске.Онисподхранляьзуданиепрограммнтсяияыхточнотакже, иакфизическая | 
 | 
 | 
 | |||
| память,ноегообъемобычнопревышаетобъемфизическойпамяти | 
 | . Windows используетфайл | ||||
| подкачкиилифайлы( ,ихможбытьнесколько)дляхраиненияформации,котораяне | 
 | 
 | 
 | |||
| помещаетсяв | RAM,производя,еслинужно,обменстраницмеждуфайломподкачки | 
 | 
 | RAM. | ||
| Такимобразом,диапазонвиртуальныхадресовскореесогласуется | 
 | 
 | адресамивфайле | |||
| подкачки,чемсадресамиф зичеспамяти.Когдатакоесоглайдостигается,ование | 
 | 
 | говорят,что | |||
| виртуальадресаспроециронфайлыеподкачки,илияваныляютсяпроецируемыминафайл | 
 | 
 | 
 | |||
| подкачки. | 
 | 
 | 
 | 
 | 
 | |
| Наборвиртуальныхадресовможе | тпроецироваться | нафизическуюп | амять,файлподкачки | |||
3
 
| илюбойифайл. | 
 | 
 | 
 | 
| 
 | Адресноепространпроцессатво | 
 | |
| КаждыйпроцессWin32получаетвиртуальноеадресноепрос | транство, | объемкоторогоравен | |
| 4Гб.Такимобразможет,кодпр цессассылатьсян | адресаН&00000000по&HFFFF | FFFF | |
| (илиспо02 | 32 - 1 = 4 294 967вдесятичн295си числентеме)Конечно. ,йтаккаквияртуальные | 
 | |
| адреса - этопросточисла,заявлениетом,чтокаждыйпроцеполучаетсвсбс венное | 
 | 
 | |
| виртуальноеадресноепространство, | выглядитдовольнобессмысленным | . Темменее,это | |
| утверждениедолжноозначать,чтWindowsвидитникакойвзаимосвязитом,чтопроцесс | 
 | 
 | |
| А,ипроцессВиспользуютодинтотжевиртуальныйадрес,например&Н40000000Вчастности, . | 
 | 
 | |
| Windowsможетсопос | тавитьили(несопост)виртуалдресамвитькаждогопроцессанымразные | 
 | |
| физичадр. ескиеа | 
 | 
 | 
 | 
| 
 | Структураадресныхпространств86 | 
 | |
Рис. 2. Структура виртуальныхадреспространствплатформе86
Распределениевиртуальнойпамяти
| Каждстрвиртуаницаяльно | адресногопространстваможетнаходизтрехномиться | 
| состояний: | 
 | 
4
 
•Reserved (зарезервирована) - стрзаницарезервированадляиспользов; ния
•Committed (передана) - дляданнойвиртуальнойстраницывыделенафизическаяпамять
| файлеподкачкииливфайле, | тображаемомвпамять; | 
•Free (свободна) - даннстраницанезарезервировянепередан,поэтомуаныйа
момнеадоступнантдляпроцесса.
Виртуальнаяпаможетбытьятьзарезервировилипереданспомощьювызована API-
функции VirtualAlloc:
| LPVOID VirtualAlloc( | 
 | 
 | 
| LPVOID IpAddress, | //Адресрезервилвыделяемойируемойобласти. | |
| DWORD dwSise, | 
 | //Объемобласти. | 
| DWORD flAllocationType, | //Типраспределения. | |
| DWORD flProtect | //Типзащитыотдоступа. | |
);
Параметр flAllocationType можетпризначиматьслеконстантниядующдругихпом( );имо
•MEM_RESERVE - па,раметрезервирующийобласадрестуального
пространпроцебезвыделениясфизичтвасапам.Темменеескойти,паможетять
| бытьвыделенаприследующвызэтовем | йжефункции; | 
•МЕМСОММ IТ - парам,выделяющийфизическуютрпамятьопераилимятитивной
вфайлеподкачкинадискедлязадзарезервинногонабостраниц. ованною Этидвеконстантым гутбъединятьсядлятого,чтобызарезервироватьвыделипамя
однойоперацией.
Разделпроцедурзервированияпередачипамятиимн еткоторыепреимущества.
Например,резервированиепамятиявляочполезнпроцедуройтсяньст зрениячки практичности.Еслитребуетсяложениюбольшойобъемпа, ожнозарезервиряти оватьсю памя,выдетолькотучастьить,котораянужвдамоментаный,раздв,такимобр,г зомя временныерамкиболеетрудоемкойоперацвыделенияф зическойпам. ти
Windows тожеиспользуетэтотподход,когдавыпамелподстякаждогоетьвновь создаваемогопотока.СистемарезервирМб1виртпамятиуподетальнстеккаждпот,нойгока выдпервляетодвеначальнолькостраницы(8Кб).
Защитапамяти
Параметр flProtect функции virtualAlloc исподзаданияльзуетсятипазащитыотдоступа,
соответствующеговновьвыделенной( committed)виртуальпамяэтоне( тноик йсится резервируемойпамяти)Существуют. следуюметодызащиты: ие
•PAGE_READONLY присваивадоступтолько«длячт»выделеннойниятвиртуальной
5
| 
 | памяти; | 
 | 
 | 
| • | PAGE_READWRITE назначаетдос« енуп | ие-запись»выделеннойвиртуальнойпамяти; | |
| • | PAGE_WRITECOPY устанавливаетдоступзапись«копированием»сору( | -оnwrite) | |
| 
 | выделеннойвиртуальнойпамяти. | 
 | 
 | 
| • | PAGE_EXECUTE разрешаетдоступвыполнение« » | выделеннойвиртуальнойпамяти.Тем | |
| 
 | менее,любаяпопыткачтения | - записиэтойпамятипривекнарушениюдоступает; | |
•PAGE_EXECUTE_READ назначаетдоступвыполнение« »чтение« »;
•PAGE_EXECUTE_READWRITE разрешаетдоступвыполнен« »,чтение«»зап« »;исье
| • | PAGE_EXECUTE_WRITECOPY присваиваетдоступвыполнение« »,чтение»«з« | апись | |
| 
 | копированием»; | 
 | 
 | 
| • | PAGE_NOACCESS запрещаетвсевидыдоступаквыделеннойвиртуальнойпамяти. | 
 | |
| Любыеизэтихзначений,заисключением | PAGE_NOACCESS,могуткомбинироватьсяпри | ||
| помощилогичоператораского | OR соследующивумяфлага: ми | 
 | |
| • | PAGE_GUARD определяетпомечезащищенныестракакицы( | guard page)При. | |
| 
 | любпопыткебращенияйзащищеннойстраницесистемавозбуждаетисключительную | 
 | |
| 
 | ситуацию STATUS_GUARD_PAGE иснимаетданнойстраницыстатусзащищенной. | ||
| 
 | Такимобр,защищезомстраницыпредупрежданые | 
 | юттолькопервомобращениик | 
| 
 | ним; | 
 | 
 | 
•PAGE_NOCACHES запрещаеткэшированиевыделеннойпамяти.
| Следуетобъяснизапись,ч акоедоступ« копир»Допу. ,некотораяваниемстраница | 
 | 
 | |
| физическойпамятисовместноиспользуетдвумяпроцессами.Еслионапомеченая | 
 | кактолько« | |
| длячтения»,тодвапроцесбезпроблеммогусовапользесэтострнойв.Однаконицейться | 
 | 
 | |
| возможныситуации,когдакаждпртребуетсяоцмуразрешитьссузаписьв | 
 | этупамять,нобез | |
| воздействияна | другпр.Поцессуй тлезащитыновкизапись« | 
 | копи» рпоиваниемпытке | 
| записивсовместноиспользуемкопиюстраницси оздасттемаееуспециальнодляпроцесса, | 
 | 
 | |
| которомунужноосуществитьзапись.Такимобр,д страницаннзомпересябытьсовместноает | 
 | 
 | |
| используемой,апредставлениеееданныхдругих | процессахстаетсянеизменным. | ||
| Необходотме,чтоатрибутыитьзащитымостранмогутбытьизмененыцыспомощью | 
 | 
 | |
| API-функции Virtual Protect. | 
 | 
 | |
| 
 | Гранулярностьп асипамятиределении | 
 | |
| Еслипараметр | IpAddress неявляекра64Кбт,тосистеманымя округляетук з | анныйадресв | |
| меньшуюсторонудоближайшегочисла,кратного64Кб. | Windows всегдавырначальныйвнивает | ||
| адресвиртуальпамятинаграниой | 
 | цугрануляраспределенияности | ,котораяявляетсячислом | 
| кратным64Кбпри(использованиипроцессоров | Intel)Другими. сл | овами,начаадреслюбогоьный | |
| блоказарезервирпамятипредсточисловбойкратноеннойвляет64Кб. | 
 | 
 | |
6
| Крто, гомебъемвыделяемойпамяти | всегдакратенобъемусистемной | страницы,тоесть4 | 
| Кб.Поэтомуфункция | VirtualAlloc будетокруглятьлюбоезапрашиваемое | количествобайтов | 
| большуюсторонудоближайшегочисла,кратногообъемустраницы. | 
 | 
 | 
Дескрипторвиртуальныхадресов
Системаотслеживает,какиз ртуальныхстраницявляютсязарезервированными,при
помощиструктуры,называемойдескрипторомвиртуальныхадре сов( Virtual Address Descriptor - VAD). Другогосп пределсобанесущ. ествуетния
| Примериспользованияфункции | GlobalMemoryStatus | 
API-функция GlobalMemoryStatus,записывающаясятакимобразом:
в Delphi:
procedure GlobalMemoryStatus(var lpBuffer: TMemoryStatus); stdcall; procedure GlobalMemoryStatus; external kernel32 name 'GlobalMemoryStatus';
| вывомножестводанныхит,имеющихотношенкпамяти,всослтавеструктурыдующей: | 
 | ||
| struct_MEMORYSTATUS { | 
 | ||
| DWORD dwLength; | // Размер структуры MEMORYSTATUS. | ||
| DWORD dwMernoryLoad; | //Процентиспользуемойпамяти. | 
 | |
| DWORD dwTotalPhys; | 
 | //Количествобайтовфизическойпамяти. | 
 | 
| DWORD dwАvailPhys; | 
 | //Количествосвободныхбайтовфизическойпамяти. | 
 | 
| DWORD dwTotalPageFile; | // Размервбайтахфа | йлаподкачки. | |
| DWORD dwAvailPageFile; | //Количествосвободныхбайтфайлап .дкачки | 
 | |
| DWORD dwTotalVirtual; | 
 | //Количествобайтовадресногопространства, | 
 | 
| //доступнпользователю. го | 
 | ||
| DWORD dwAvailvirtual; | 
 | //Количест свободныхбайтовпамяти, | |
| //доступныхпользователю. | 
 | ||
End Type
В Delphi: _MEMORYSTATUS = record
dwLength: DWORD; dwMemoryLoad: DWORD; dwTotalPhys: DWORD; dwAvailPhys: DWORD; dwTotalPageFile: DWORD; dwAvailPageFile: DWORD;
7
| dwTotalVirtual: DWORD; | 
 | 
 | ||
| dwAvailVirtual: DWORD; | 
 | 
 | ||
| end; | 
 | 
 | 
 | |
| 
 | 
 | Управлениевиртуальнойпамятью | 
 | |
| Рассмотрим,какдиспетчервиртуальнойпамяти | Windows преобразуетадресавиртуальной | |||
| памятифиз. | ческие | 
 | 
 | 
 | 
| Преобвиртуальныхзованиедресовфизические:поп | 
 | адание | ||
| Нарисункепоказанпроцпреобразовссприотображениивиртуальныхадресовния | 
 | 
 | ||
| физические.Онназываетсяпопаданифизич( )страницуе(мскую | 
 | page hit). | ||
| Всевиртуаадресаделятнатриьныечасти.Самлеваябитыясть( 22 | 
 | -31)содержит | ||
| индекската | логастраницпроцесса. | Windows поддерживаетотдельныйкаталогстраницдля | ||
| каждопроцесса.Еадгохранводномирегистровзтсяцентп альногооцессора,который | 
 | 
 | ||
| называется CR3В.операцию( переключениязадачвходитпереведение | 
 | CR3всост,когдаяние | ||
| указываетнакаталогстрапроцесса,нкоторыйицосуществляяпереключение.Каталог) страниц | 
 | 
 | ||
| одержит1024четырехбайэлемен. таовых | 
 | 
 | ||
| Windows поддкаляерпроцессаждогоиваетсовокупностьтаблицстраниц( | 
 | page table). | ||
| Каждыйэлементкаталстраницодержига | 
 | туникальныйномер.Поэтому | Windows поддерживает | |
| до1024таблицстраниц.Вдейс( таблицывистраницсоздаюельностолькоприпопыткеися | 
 | 
 | ||
| обращениякданнымиликодуконкревирадртуальному, когдаесувыделяется | 
 | 
 | ||
| виртуальнаяпамять). | 
 | 
 | 
 | |
| Следующаячас | тьвиртуальногоадресабиты( 12 | -21)используетсявкачествеиндекса | ||
| таблицестраниц,соответствующейыбранномуэлементкаталогастраниц.Каждыйэлемент | 
 | 
 | ||
| таблицы,соответствующийуказанномуиндек,содержит20таршихразрядахномер | 
 | 
 | ||
| страничногоблока, | которыйзадаетконкретныйстранблокфичныйзическойпамяти. | 
 | ||
| Третья,ипоследняя,частьвиртуаль | ногоадресабиты( 0 | -11)предсобойтамещениевляет | ||
| данномстраничномблоке.Сочетаниеномерастраничногоблокасмещениядаютвсовокупности | 
 | 
 | ||
| адресфизическойпамяти. | 
 | 
 | 
 | |
8
 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | ) | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 22 21 | 12 11 | 0 | ||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| Регистр | 
 | 
 | 
 | Индекс | 
 | 
 | 
 | Смещение | 
 | 
| 
 | 
 | 
 | 
 | ||||||
| CR3 | 
 | 
 | 
 | вкаталоге | 
 | в | 
 | вблоке | 
 | 
| процессора | 
 | 
 | 
 | страниц | 
 | 
 | 
 | страницы | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| Каталогстраниц | Таблицыстраниц | Блоки страницы | 
Номер
| страницы | Физический | 
| 
 | адрес | 
4096
байт
иколичествотаблицравно1024,
10 байт,то
| 
 | 4х2 30 =Гб.4 | 
| 
 | . | 
| из | 
 | 
| . | мятиКб4, ,скажем | 
| 
 | еса | 
| 
 | впрограмомуже е | 
жепредставляютиндексы
| каталогов | адреса | 
адресадвух
,одинаковыми
| и | - соответствующий | 
 
| элементвобоихкаталстрноаднуницгахтужетаблицустр | 
 | 
 | аниц,след,наовательнодин | ||
| тотжестраничныйблок.Такимобразом,процессымогутсовместноиспользоватьфизическую | 
 | 
 | 
 | ||
| память. | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | Каитаблицысистемлогстраницых | 
 | 
 | |
| Нужнотакжеуп,чтомянуть | Windows поддерживаеткаталогсистемстра( ныхиц | system | |||
| page directory)дляработысвиртуальнойпамятью,зарезервированной | 
 | 
 | Windows,также, иак | ||
| соответствующуюсовокупностьтаблицсистемстра. ыхиц | 
 | 
 | 
 | 
 | |
| 
 | 
 | Совмеиспользуемстраницыное | 
 | 
 | |
| Ситуацияссовместноиспользуемойфизическойпамятьюявляетсязначитболеельно | 
 | 
 | 
 | ||
| сложной,небудемуглублявдетали,отметимолькоься,что | 
 | 
 | 
 | VMM испконцепциюльзует, | |
| называемуюпрототипировэлементовтаблицыстраниц.Идеяз ниемключаетсявтом,что | 
 | 
 | 
 | 
 | |
| обычныеэлементытаблкаждогоисовместнозцыиспользпамятьпроцессовующихказываютне | 
 | 
 | 
 | ||
| на физическуюпамять,наобщийпрототипэлементаблицыстраниц.Атот,всвоюочередь, | 
 | 
 | 
 | ||
| можетссылатьсянасовместноиспользуемуюфизическуюпамять. | 
 | 
 | 
 | 
 | |
| 
 | 
 | Рабочиенаборы | 
 | 
 | |
| КаждстрвиртуаницаяадреспространльногобъемомцеГб4существуеттваса | 
 | 
 | 
 | ||
| одномизтрехсостояний | - свободном( | free),зарезервированном( | reserved)илипереданном | ||
| (committed)Теперь. можнотакжесказ,чтоапередаждаятьстраница( ная | 
 | 
 | committed page) | ||
| являилидейтс,илянедействительнойтельндействительныхи .Сов купностьстра | 
 | 
 | ниц,то | ||
| естьпроецнафизическуюровпамять,н зыврабочимнныхборамют( | 
 | 
 | 
 | working set)процесса. | |
| Рабочийнаборпостоянноменямеретого,кактсястраницыподкачиваютсяпамятьили | 
 | 
 | 
 | ||
| выполняеобратноедействие. ся | 
 | 
 | 
 | 
 | 
 | 
| Системныйрабочийнабор( | system | working | set)характеризуетвиртуальныестраницы | ||
| систепамяти,котвданныййорыемомеотображеныфизическуюпамять. | 
 | 
 | 
 | 
 | |
| Размеррабочегонаборапр граниченцессатемиустан,котопвкамирыееделяет | 
 | 
 | Windows | ||
| взависимостиотобъемафизическойп .Этимятизначе | 
 | 
 | нияприведены | следующейтаблице. | |
| Модель | Объем | Минимальныйразмеррабочего | 
 | Максиразмеральный | |
| памяти | памяти | наборапроцесса | рабочегонаборапроцесса | ||
| Small | <=19Мб | 20страниц(80Кб) | 
 | 45страниц(180Кб) | |
| Medium | 20-32Мб | 30страниц(120Кб) | 
 | 145страниц(580Кб) | |
| Large | >=Мб33 | 50страниц | (200Кб) | 345страниц(1380Кб) | |
| Этипределымогутбытьизмененыспомощью | 
 | 
 | API-функции | 
 | |
| SetProcessWorkingSetSize: | 
 | 
 | 
 | ||
10
