100 грешки на страницата с физическа памет. Какво показват грешките при излизане на страницата?

100 грешки на страницата с физическа памет.  Какво показват грешките при излизане на страницата?
100 грешки на страницата с физическа памет. Какво показват грешките при излизане на страницата?

Изпреварващи/неизпреварващи алгоритми.

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

Алгоритми с квантуване.

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

Алгоритми с приоритети.

На всяка нишка се присвоява приоритет (приоритет) - цяло число, показващо степента на привилегия на нишката. Операционната система, ако има няколко нишки, готови за изпълнение, избира нишката с най-висок приоритет сред тях.

Windows прилага смесен алгоритъм за планиране - изпреварващ, базиран на квантуване и приоритети.

  1. Многозадачен тип за DOS приложение
  2. Гаранции за обслужване
  3. Планиране на процеси на преден план
  4. Предназначение на суап файла
  5. Процесите P1, P2, P3 разпределят 100, 20, 80 MB памет. Системата има 128MB OP. Какъв е размерът използвана паметв суап файла. Какъв е размерът на суап файла.
  1. Какво е "грешка в страницата"?

Прекъсване 14 -страница грешка (#PF): Intel386 ...

Генерира се, ако механизмът за пейджинг е активиран (CR0.PG = 1) и възникне една от следните ситуации при преобразуване на линеен адрес във физически:

  • елемент от таблицата на страниците или каталога на страниците, използвани при превод на адреси, има нулев бит за присъствие, т.е. необходимата таблица на страниците или страницата не присъства в физическа памет;
  • процедура няма ниво на привилегия, достатъчно за достъп до избраната страница, или се опитва да пише на страница, която е защитена от запис за текущото ниво на привилегия.

Манипулаторът на грешка на страницата получава информация за причината от два източника: кодът на грешката, изпратен в стека, и съдържанието на CR2, което съдържа линейния адрес, причинил грешката. Кодът за грешка на страницата има специален формат (фиг. 3.7.).

Прекъсната програма, след отстраняване на причините, довели до повредата на страницата (например зареждане на страница във физическата памет), може да бъде продължена без никакви допълнителни настройки.

Ако грешката на страницата е причинена поради нарушение на привилегиите за сигурност на страницата, тогава битът за достъп (A) в съответния запис в директорията на страницата е зададен. Поведението на бита за достъп в съответния елемент от таблиците на страниците за този случай не е регламентирано в Процесори на Intelи може да е различно при различните модели.

  1. Високият процент грешки в страницата показва:

Ненадеждност на програмата

Несигурност оперативна памет

Друго: обяснете

Колона "Грешки при липса на страница в паметта / сек."

В колоната "Грешки при липса на памет на страница / сек." (Hard Faults/sec) показва средния брой грешки на страницата на паметта за секунда през последната минута. Ако даден процес се опита да използва повече физическа памет от наличната този моментвреме, системата записва част от данните от паметта на диск - във файла за виртуална памет. Последващият достъп до данните, записани на диска, се нарича грешка при липса на памет.

Какво показват грешките при излизане на страницата?

След като вече имате представа каква информация се събира в таблицата „Процеси“, нека да видим как да я използваме за наблюдение на разпределението на паметта. Докато приложенията стартират и работят с файлове, мениджърът на паметта следи размера на работния набор за всеки процес и улавя заявките за допълнителни ресурси на паметта. Тъй като работният набор на процеса се увеличава, диспечерът съпоставя тези заявки с нуждите на ядрото и други процеси. Ако няма достатъчно налично адресно пространство, диспечерът свива работния набор, като записва данни от паметта на диск.

По-късно, при четене на тези данни от диска, възниква грешка за липса на памет. Това е съвсем нормално, но ако възникнат грешки едновременно за различни процеси, системата се нуждае от допълнително време, за да прочете данни от диска. Твърде честите грешки при липса на памет съответно намаляват производителността на системата.. Вероятно сте изпитали неочаквано забавяне на всички приложения, което след това внезапно е спряло. Почти със сигурност това забавяне се дължи на активното преразпределение на данни между физическа памет и суап.

От това следва заключението: ако грешките извън страницата за определен процес се появяват твърде често и освен това редовно, Компютърът няма достатъчно физическа памет.

За да улесните наблюдението на процеси, които причиняват чести грешки при липса на памет, можете да ги маркирате с флагове. Това ще премести избраните процеси в горната част на списъка, а графиката за грешки при липса на памет ще бъде представена с оранжева крива.

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

  1. Как се формира приоритетът на нишката в Windows

Приоритети

Windows прилага изпреварващо приоритетно планиране, когато на всяка нишка се присвоява определена числена стойност - приоритет, според който й се разпределя процесор. Нишките с еднакви приоритети се планират според алгоритъма Round Robin (въртележка). Важно предимство на системата е възможността за изпреварване на нишки, работещи в режим на ядрото - кодът на изпълнителната система е напълно reentrant. Само нишките, държащи заключването на въртене, не се изпреварват (вижте „Синхронизиране на нишки“). Следователно спинлоковете се използват с голямо внимание и се настройват на минимално време.

Системата има 32 нива на приоритет. Шестнадесет стойности на приоритет (16-31) съответстват на приоритетната група в реално време, петнадесет стойности (1-15) са за нормални нишки, а стойност 0 е запазена за нишката за нулиране на системната страница (вижте Фигура 6.2).

Ориз. 6.2.Приоритети на нишки

За да спестят на потребителя необходимостта да помни числените стойности на приоритетите и да могат да променят планировчика, разработчиците въведоха в системата слой с приоритетна абстракция. Например класът на приоритет за всички нишки на даден процес може да бъде зададен с помощта на набора от постоянни параметри на функцията SetPriorityClass, която може да има следните стойности:

  • реално време (REALTIME_PRIORITY_CLASS) - 24
  • висок (HIGH_PRIORITY_CLASS) - 13
  • над нормалното (ABOVE_NORMAL_PRIORITY_CLASS) 10
  • нормален (NORMAL_PRIORITY_CLASS) - 8
  • под нормалното (BELOW_NORMAL_PRIORITY_CLASS) - 6
  • и повреден (IDLE_PRIORITY_CLASS) 4

Относителният приоритет на нишката се задава от същите параметри на функцията SetThreadPriority:

Комбинацията от шест класа на приоритет на процеса и седем класа на приоритет на нишка образува 42 възможни комбинации и позволява формирането на така наречения основен приоритет на нишката.

Базовият приоритет на процес и основната нишка по подразбиране е стойност в средата на диапазоните на приоритет на процеса ( 24, 13, 10, 8, 6 или 4). Промяната на приоритета на процес променя приоритетите на всички негови нишки, оставяйки относителните им приоритети непроменени.

Приоритети от 16 до 31 всъщност не са приоритети в реално време, защото при меката поддръжка на Windows в реално време не се дават гаранции относно времето на нишките. Това са просто по-високи приоритети, които са запазени за системни нишки и тези нишки, на които е даден такъв приоритет от потребител с администраторски права. Въпреки това, наличието на приоритети в реално време, както и изпреварваемостта на кода на ядрото, локализирането на страниците на паметта (вижте "Операция на мениджъра на паметта") и редица допълнителни функции- всичко това ви позволява да изпълнявате в операционната среда Windows приложениямеко в реално време, като мултимедия. Системната нишка с нулев приоритет е ангажирана с нулиране на страници от паметта. Редовните потребителски теми могат да имат приоритети от 1 до 15.


Подобна информация.


Свързали сте ново устройство, но то не бърза да работи, или старото устройство е спряло да функционира, или не работи правилно. Какво да правим в тези случаи? Преинсталиране на всичко? Това е караница и не винаги е необходимо. Как да разберете каква е причината и как да я премахнете? Много просто. Факт е, че в операционната система от семейството Windows, и не само, има, някоиДиспечер на устройства, всъщност много необходим и полезен мениджър, ако може така да се нарече. Ето го, ще ни помогне да разберем каква е причината за проблема, а моят измамен лист ще реши проблема. И така, в горнотоДиспечер на устройства има следи от грешки в работата на устройствата под формата на кодове. Познавайки кода на грешката, е лесно да се определи причината за проблема. За непосветените кодовете са просто неразбираеми и безсмислени числа. Но на опитен потребител те могат да кажат много. Ще се опитам да хвърля малко светлина върху тази тема.


За да видим грешките на устройството, първо трябва да влезем в самия диспечер на устройства. Прави се така. Впиши сеКонтролен панел от менютоСтарт ( Мога,моя компютър , Кликнете с десния бутонИмоти Диспечер на устройства, а е възможно и чрез задачата на командата визпълни , но защо да усложнявам нещата). Ако влезем презПанел управление , тогава пътят е:Система - Хардуер - Диспечер на устройства . Изберете, като влезете в менютомениджър на устройства , вида на устройството, което ни интересува (клавиатура, принтер, модем и т.н.), щракнете двукратно върху него, в резултат на което ще видим устройствата, включени в този тип. Изберете устройството, от което се нуждаем, и щракнете двукратно върху него. Разглеждаме колоната в раздела Aboutобщо, състояние на устройството. Ако има проблем с работата на устройството, той ще се покаже тук като код за грешка. Така че виждаме числа и числа. Какво представляват. По-долу представям пълен списъкгрешки, с Кратко описаниегрешки и възможни начиниелиминиране. Кодът на грешката е подчертан в червено, описанието му в синьо и елиминирането в черно.

Код 1Проблем с настройката на устройството правилни настройкиили драйверът липсва. Щракнете върху бутона Актуализиране на драйвера , за да стартирате съветникаХардуерен ъпгрейд . Ако изобщо няма драйвер, инсталирайте го.

Код 3Драйверът на устройството е повреден, като опция няма достатъчно RAM за да работи правилно устройството.1. Премахнете повредения драйвер и инсталирайте нов. За да направите това: Свойства - Драйвер - Изтриване, след което следвайте инструкциите на съветника. Рестартирайте. Отваряме отновомениджър на устройства Действие Актуализирайте хардуерната конфигурация и следвайте инструкциите на съветника. 2. Ако проблемът е липса виртуална памет, затворете работещи приложения, за да разтоварите паметта. За да проверим състоянието на паметта, в която трябва да влеземДиспечер на задачите , за да направите това, натиснете клавишната комбинацияCtrl+Shift+Esc.Можем да видим настройките на виртуалната памет, като щракнете с десния бутонМоя компютър Свойства - Разширени - Производителност - Настройки (Параметри) . Можете да опитате да увеличите суап файла (описах как се прави това в една от предишните статии в моя блог), но това далеч не е драстична мярка. Ще трябва да увеличите RAM паметта. Как става това е отделна тема, която излиза извън рамките на тази публикация.

Код 10Ключът на системния регистър има специфична за устройството настройкаFailReasonString,стойността на този параметър се показва в данните за грешка, т.е. ако няма параметър като такъв, тогава се появява код за грешка, с други думи, устройството не може да се стартира. Актуализирайте драйвера както по-горе. Или инсталирайте по-нова.

Код 12Няма запас от ресурси, необходими за това устройство. Деактивирайте други работещи устройства, поне едно, за да направите това, използвайте съветника за отстраняване на неизправности, който, ако следвате неговите инструкции, ще деактивира конфликтното устройство. (Накратко, позволете ми да ви напомня: Свойства - Общи - Отстраняване на неизправности.)

Код 14Изисква рестартиране на компютъра, за да работи това устройство.

Код 16Не е възможно да се идентифицират ресурсите, които са необходими за работата на устройството, устройството не е напълно конфигурирано. Трябва да зададете допълнителни ресурси на устройството. Но това може да стане без проблеми, ако устройството принадлежи наPlug and play.

Имоти - Ресурси. Ако в списъка с ресурси има ресурс със знака ?, изберете го, за да го присвоите към избраното устройство. Ако ресурсът не може да бъде променен, щракнетеПромяна на настройките , ако тази функция не е налична, премахнете отметката от квадратчетоАвтоматична настройка

Код 18Преинсталирайте драйвера на устройството. Опитваме се да актуализираме драйвера или да го премахнем и да го направим, както в примера скод 3.

Код 19Няма достатъчно информация в регистъра за настройките на устройството или настройките са повредени. БягайСъветник за отстраняване на неизправности и следвайте инструкциите му, няма да помогне - преинсталирайте устройството, както е споменато по-горе. (код 3). Или, ако това не работи, изтеглетеПоследната позната добра конфигурация. Ако това не помогне, имате нужда от помощта на специалист, тъй като е необходимо да редактирате системния регистър. При липса на знания и опит, сами няма какво да правите там, всеки системен администратор ще потвърди това вместо вас. Знаещ и можещ, знае как да го направи, без мен. А за неопитните е по-добре да не опитват. Регистърът е сърцето на операционната система и само опитен специалист или под негово ръководство трябва да извършва операции с него. По никакъв начин не искам да обидя никого, но ако не сте работили със системния регистър и ако компютърът ви е скъп, моят съвет е да забравите пътя до там. Не пиша за професионалисти, те не се нуждаят от това, а за обикновения потребител. Разбира се, мога да напиша как и какво да правя там, но това ще бъде обяснение на пръстите и ако вие, в резултат на най-малката грешка, повредите компютъра си, аз ще бъда виновен. Изобщо не ми трябва, както и на теб.

Код 21 Устройството е премахнато от системата, т.е. операционната система се опитва да премахне устройството, но процесът все още не е завършен.


Направете пауза за няколко секунди и натиснете клавиша


Код 22 Устройството е деактивирано. Устройството трябва да е включено.Действие - Активиране и следвайте по-нататъшните инструкции.


Код 24 Устройството липсва или е инсталирано неправилно, драйверът е неуспешен, устройството може да е подготвено за премахване. Премахнете устройството и го инсталирайте отново.


Код 28 Няма шофьор. Инсталирайте драйвера. За да направите това, трябва да актуализирате драйвера, стъпките са като в инструкциите за код 1.


Код 29Деактивирано устройство . Трябва да позволите на устройството да работи настройкиBIOS,прочетете инструкциите за използване на устройството.


Код 31Системата не успя да зареди драйвери за това устройство. . Актуализирайте драйверите си, както е описано по-горе.


Код 32Драйверът за това устройство е деактивиран в системен регистър . Деинсталирайте и инсталирайте отново драйвера (описан по-горе)


Код 33Операционната система не може да определи ресурсите за това устройства . Настройте устройството или го сменете.


Код 34Операционната система не може да определи настройките устройства . Прегледайте хардуерната документация, която се доставя с него, и го конфигурирайте ръчно в раздела Ресурси.


Код 35Фърмуерът на компютъра няма необходимата информация за правилното работа на устройството . Трябва да се актуализираBIOS.За инструкции как да направите това, свържете се с доставчика, но е по-добре да използвате услугите на опитен майстор.


Код 36Устройството изисква прекъсване, за да работи.PCI,и устройството е настроено да прекъсвае,или обратното . Трябва да промените настройкитеBIOS,обърнете се към опитен майстор.


Код 37Операционната система не разпознава драйвера за това устройство. . Преинсталирайте драйвера (описан по-горе).


Код 38ОС не може да зареди драйвера за устройството, защото, предишната версия на драйвера остава в паметта . Трябва да рестартирате компютъра си. Стартирайте съветника за отстраняване на неизправности, ако не стартира (Свойства - Общи - Отстраняване на неизправности) и следвайте инструкциите на съветника. След задължително рестартиране.


Код 39Операционната система не може да зареди драйвера на устройството. Драйверът е повреден или изобщо не . Преинсталирайте драйвера, както е описано по-горе.


Код 40Няма достъп до оборудването, тъй като няма информация в системния регистър или информацията съдържа грешка . Преинсталирайте драйвера.


Код 41Устройството не е открито . Стартирайте съветника за отстраняване на неизправности (описан по-горе), ако не помогне, актуализирайте хардуерната конфигурация (вижте по-горе) или актуализирайте драйвера. Ако не, инсталирайте още нова версиядрайвери.


Код 42Системата вече има такъв драйвер. Тоест два са различни устройствас същото име, вероятно поради грешка . Рестартирайте вашия компютър.


Код 43Спиране на устройството поради проблеми в работата му . Стартирайте съветника за отстраняване на неизправности и следвайте неговите инструкции.


Код 44Приложение или услуга са спрели устройството . Рестартирайте вашия компютър.


Код 45Устройството не е свързано . Свържете вашето устройство.


Код 46Тази грешка се появява, когато операционната система се изключи. Нищо не трябва да се прави, следващия път, когато стартирате ОС, всичко ще работи.


Код 47 Устройството е подготвено за безопасно отстраняване, но все още не е изтрит (напр. флаш) . Извадете устройството, след това го включете отново, рестартирайте компютъра.


Код 48Устройството или по-скоро неговият софтуер е блокиран . Актуализирайте драйвера или инсталирайте нов.


Код 49Устройството не може да се стартира, защото има голям кошер на системния регистър, който надвишава валидни параметрирегистър . Изтрийте устройства, които не се използват от регистъра. Можете да направите това: Диспечер на устройства - Преглед - Показване на скритите устройства. Тук ще видите скрити устройства, които не са свързани към вашия компютър. Изберете устройствата, които искате да премахнете, щракнете върху Свойства за устройството - Драйвер - Деинсталиране, след това следвайте инструкциите на съветника и накрая рестартирайте компютъра.


Ръководство за премахване на всякакви вируси от вашия компютър със собствените си ръце. Всички методи за премахване на вируси наистина работят и са доказани на практика, стъпка по стъпка инструкцияс илюстрации - прости и достъпни дори за ученик + видео уроци + програма ultraiso за създаване на буутлоудъри + полезни връзки към инструменти в борбата с вирусите. Изтегляне на архив

Разпределение на паметта в Windows 9x и Windows NT. Монитор на ресурси на Windows 7. Разгледайте елементи и раздели, свързани с паметта. Използване на Windows 7 Resource Monitor за наблюдение на разпределението на паметта. Увеличаване на размера на файла за виртуална памет (виртуална памет). Проверка на паметта с помощта на Windows.

3.1. Разпределение на паметта в Windows 9x

Windows 9x е 32-битова многонишкова операционна система с превантивна многозадачност и графичен потребителски интерфейс. За тяхното зареждане те използват MS-DOS 7.0, който осигурява два режима на работа на процесора - реален (във файла MSDOS.SYS в секцията е записано BootGUI=0) и защитен (BootGUI=1). Защитеният режим е зададен точно преди зареждане на Windows 9x, карайки процесора да управлява паметта, използвайки механизма за пейджинг на виртуален към физически адрес. Областта на виртуалното адресно пространство се състои от 4 килобайтови страници, които се поставят в RAM или на диск.

Долните адреси на виртуалното адресно пространство се споделят от всички процеси, за да се осигури съвместимост с драйвери на устройства в реално време, резидентни програми на Windows и т.н. От една страна, това е удобно, но, от друга страна, намалява надеждността (един от основните качества на ОС), т.к всеки процес може да повреди компонентите, разположени на тези адреси.

Всяка 32-битова приложна програма на Windows работи в собственото си адресно пространство, но е възможен достъп до желаните адреси, т.е. организирането на виртуални адреси не използва всички хардуерни защити, вградени в микропроцесора. 16-битовите програми споделят общо адресно пространство и също са уязвими една спрямо друга. Моделът на паметта на Windows 9x е показан на фигура 3.1.

Ориз. 3.1. OP дистрибуции в Windows 9x

Долните 64 KB RAM са недостъпни за 32-битови програми, но 16-битовите програми могат да записват своите данни тук. Адреси под 4 MB се нанасят в адресното пространство на всяко приложение и се споделят от всички процеси. Това прави тази област незащитена от случайно писане.

Минимално необходимото количество памет за работата на Windows 9x е 4 MB, но на практика е невъзможно да се работи с това количество памет. файл от страница , който реализира механизма на виртуалната памет, се намира в директорията на Windows и има променлив размер, променян при необходимост от самата система. Неговите размери могат да бъдат зададени с помощта на системни инструменти (Контролен панел → Система → Производителност → Файлова система) или зададени в секцията на файла SYSTEM.INI - ред, указващ устройството и името на файла:

Pagingfive=c:\PageFile.sys

MinPagingFileSize=65536 (64 MB)

MaxPagingFileSize=262144 (256 MB)

Първият и вторият ред определят името на файла и неговото местоположение, а последните два - началния и пределния размер на файла на страницата в KB.

Можете да получите минималния размер на файла за пейджинг, като стартирате програмата SysMon (системен монитор) и изберете размера на файла за пейджинг и свободната памет като необходими параметри за оценка на изискванията за памет на най-често използваните приложения.

3.2. Разпределение на паметта в Windows NT

Разликите между схемата за разпространение и Windows 9x са следните:

1) по-сериозно използване на хардуера за защита на паметта, предоставен в микропроцесора;

2) всички системни програмни модули са разположени в техните собствени виртуални адресни пространства и достъп приложни програмиза тях е невъзможно.

Разпределението на адресното пространство в Windows NT е показано на фигура 1. 3.2.

Ориз. 3.2. OP дистрибуции в Windows NT

На приложните програми се разпределят 2 GB локално (родно) линейно (неструктурирано) адресно пространство (първите 64 KB са недостъпни). Те са изолирани един от друг и могат да комуникират помежду си само чрез клипборда (клипборда), или чрез механизмите на DDE (Dynamic Data Exchange – динамичен обмен на данни) и OLE (Object Linking and Embedding – комуникация и имплементация на обекти).

В горната част на областта от 2 GB е кодът за системни DLL файлове (динамично свързани библиотеки), които действат като сървърни процеси. Те проверяват стойностите на параметрите на заявката, изпълняват исканата функция и изпращат резултатите обратно в адресното пространство на извикващата програма.

В адресния диапазон от 2-4 GB има системни (ниско ниво) компоненти на Windows (т.е. най-високото ниво на защита срещу неоторизиран достъп: ядро, планировчик на нишки, мениджър на паметта).

За 16-битови приложни програми на Windows сесиите WOW (Windows On Windows) се изпълняват в режим на превантивна многозадачност поотделно в техните собствени адресни пространства или съвместно в споделено адресно пространство.

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

Управлението на паметта (разпределяне, резервиране, освобождаване, страниране) се извършва от диспечера на виртуалната памет (VMM). Всяка виртуална страница се прехвърля на физическа страница - рамка на страница (page frame), запълнена първоначално състояниенули (това е основното изискване на стандарта за системи за сигурност C2, което определя невъзможността за използване на предишното им съдържание от други процеси). Мястото за разтоварване на страницата е запазено във файла на страницата Pagefile.sys, който е запазен блок от дисково пространство.

всичко Windows памет NT се подразделя на запазено(за динамично използване от процеси при изпълнение на задачи), посветен(за разтоварване, което е запазено в Pagefile.sys) и достъпен(останалата свободна памет).

      Виртуална памет в Windows

Най-честата причина за забавяне на системата под Windows контрол- запълване на физическа памет. В същото време Windows започва т. нар. "странициране" (paging) - преместване на блокове от код и програмни данни (всеки такъв блок се нарича страница - страница) от физическата памет към твърдия диск. Достъпът до файла за виртуална памет от време на време е нормален и не влошава производителността на системата, но Чести запитванияданните от файл на диска могат значително да намалят общата скорост на системата. Този проблем става особено забележим, когато превключвате между множество програми, изискващи интензивна памет, на компютър, който няма достатъчно физическа памет. В резултат на това дискът се използва почти постоянно, защото системата се опитва да "изпомпва" данни от него в паметта и обратно.

Ако общото количество разпределена памет надвишава общото количество физическа памет, Windows трябва да „изпомпва“ страници между бърза RAM и много по-бавна виртуална памет във файла на страницата, забавяйки системата.

В ход Инсталиране на Windows XP суап файлът се създава автоматично в главната папка на същото устройство, където системни файлове Windows. Размерът на файла за виртуална памет се определя въз основа на количеството физическа памет в системата. По подразбиране минималният размер на файла на страницата е 1,5 пъти размера на физическата памет, а максималният размер е 3 пъти размера. Файлът за виртуална памет може да се види в прозореца на Explorer, ако включите режима на показване на скрити и системни файлове (фиг. 3.3).

Ориз. 3.3. Активиране на показването на скрити и системни файлове

Обикновено операционната система Windows сама задава оптималното количество виртуална памет и това е достатъчно за повечето задачи, но ако компютърът работи с приложения, които изискват много памет, тогава количеството виртуална памет може да бъде променено.

За да направите това, изпълнете следната последователност от действия:

1. Влезте с акаунт от групата Администратори и отворете прозореца "Контролен панел - Система".

2. В раздела „Разширени“ щракнете върху бутона „Настройки“ в секцията „Ефективност“ (фиг. 3.4).

3. В диалоговия прозорец "Опции за производителност", изберете раздела "Разширени" и щракнете върху бутона "Промяна" (фиг. 3.5), за да се покаже диалоговият прозорец "Виртуална памет", както е показано на фиг. 3.5. 3.6 за Windows XP и на фиг. 3.7 за Windows7.

Текущите настройки на файла за пейджинг се отразяват в полето „Общ размер на файла за пейджинг във всички устройства“.

4. Изберете което и да е устройство от списъка в горната част на диалоговия прозорец, за да конфигурирате настройките за това устройство.

Можете да промените следните опции:

- Специален размер. Въведете стойност в полето оригинален размерза да зададете първоначалния размер на файла pagefile.sys на указаното устройство (в мегабайти). В полето Максимален размервъведете число не по-малко от стойността в полето оригинален размер, но не повече от 4096 MB (4 GB).

- Размер по избор на системата.Изберете този елемент, за да активирате динамично управление на размера на файла за суап този диск. Изберете тази опция, ако не искате да промените настройките по подразбиране, предлагани от Windows.

- Няма суап файл. Използвайте за всички устройства, където не се нуждаете от суап файл. Уверете се, че суап файлът е на поне едно устройство.

5. След като направите промени, щракнете питамза запис на промените.

6. Повторете стъпки 4 и 5 за други устройства (ако е необходимо). Щракнете върху OK, за да затворите диалоговия прозорец, когато сте готови с него.

Ориз. 3.4. Бутон "Опции", за да отидете на преглед и/или

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

Ориз. 3.5. Бутон „Промяна“, за да преминете към промяна на настройките на виртуалната памет в Windows XP (вляво) и в Windows 7

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

Ориз. 3.7. Прозорец за преглед и настройка на размера на виртуалната памет в Windows7

Ако вашият компютър има повече от едно физическо устройство, най-добре е да поставите файла за виртуална памет най-бързият, и е за предпочитане, ако системата Windows файловеще бъде на друго устройство. Още по-добре е да разделите суап файла на няколко физическидискове, тъй като дисковият контролер може да обработва множество заявки за запис и четене паралелно.

Не се опитвайте да поставите файла за виртуална памет на няколко логически устройства на едно физическо устройство!!!

Ако системата има един твърд диск, разделен на дялове C, D и E, и суап файлът е разделен на множество дялове, системата може дори да се забави, защото в тази конфигурация магнитните глави на твърдия диск трябва да четат данни от няколко области, а не последователно от една област на диска.

Ако намалите минималния или максималния размер на файла на страницата и създадете нов файл на страницата на диска, системата трябва да се рестартира, за да влязат в сила промените. Увеличаването на размера на файла на страницата обикновено не изисква рестартиране на компютъра.

Ако имате много физическа памет, може да се изкушите да деактивирате напълно суап файла. Не прави това! !!

Windows XP е проектиран така, че суап файлът да се използва за изпълнение на някои задачи на ядрото, така че някои програми на трети страни може да докладват съобщение за недостиг на памет, когато се опитват да деактивират напълно виртуалната памет.

Windows не използва суап файла, докато не е необходим, така че деактивирането на виртуалната памет няма да подобри производителността!!!

Windows може динамично да увеличи размера на файла за виртуална памет според нуждите. Тази функция работи само когато изберете " Системно избираем размер”, както и при задаване на максимален размер, по-голям от текущия размер на файла за виртуална памет.

Въз основа на опита с предишни версии на Windows, някои потребители се опитват да създадат файл за пейджинг с фиксиран размер с равни начален и максимален размер. Теоретично това трябва да подобри производителността, тъй като елиминира възможността за фрагментиране на файла на страницата. Подсистемата за суап обаче е проектирана по такъв начин, че на практика файлът заема само големи блокове дисково пространство, което свежда фрагментацията до минимум. Може да забележите лек спад в производителността, когато Windows увеличи размера на файла за виртуална памет, но това е еднократна операция и не влияе по никакъв начин на средната производителност.

      Контролиране на използването на паметта в Windows

Най-лесният начин да разберете колко RAM се използва в даден момент е да отворите диспечера на задачите, като натиснете ++ и отидете в раздела Производителност (фиг. 3.8). Подробно описание на информацията в раздела "Производителност" за Windows XP е представено в таблица. 3.1.

Таблица 3.1. Декриптиране на данни от диспечера на задачите

Разделът Performance за Windows7 има значителни нововъведения в сравнение със съответния раздел Manager Windows задачи xp.

Числото в колоната "Общо" на раздела "Физическа памет" показва общото количество RAM за тази система. Колоната Кеширано показва количеството физическа памет, което наскоро е било използвано от системните ресурси. Той остава в кеша, в случай че системата отново се нуждае от него, но е достъпен за други процеси. Новата колона "Налично" (Available) показва количеството неизползвана в момента физическа памет, а в колоната "Свободно" (Free) - количеството памет, което се използва от кеша, но не съдържа полезна информация.

Разделът Памет на ядрото съдържа две колони - Paged и Nonpaged. Заедно те показват колко памет използва ядрото. Paged е виртуална памет, а nonpaged е физическа.

В колоната "Система" (System) се появиха "Дескриптори" (Handles) и "Теми" (Threads), свързани със съставните компоненти на процесите. Колоната "Дескриптори" показва броя на идентификаторите на обекти (манипулатори), които се използват от текущо изпълняваните процеси. Колоната „Нишки“ показва броя на подпроцесите, изпълнявани в рамките на по-големи процеси. Числото в колоната "Процеси", разбира се, показва общия брой изпълнявани процеси, които могат да се видят в раздела "Процеси".

Колоната Up Time показва колко време е изминало от последното стартиране на компютъра. Колоната Commit съдържа информация за файла за пейджинг. Първото число показва общото количество физическа и виртуална памет, което се използва в момента, а второто число показва общото количество памет за този компютър като цяло.

Още по-подробна информация може да бъде получена, като щракнете върху бутона "Монитор на ресурси" и изберете раздела "Памет" (фиг. 3.9).

Ориз. 3.9. Раздел Памет на прозореца на Windows Resource Monitor

В раздела „Памет“ има таблица „Процеси“, в която са изброени всички изпълнявани процеси, а информацията за използваната памет за всеки процес е разделена на няколко категории (фиг. 3.10).

Ориз. 3.10. Таблица "Процеси"

В колона " Изображение» показва името на изпълнимия файл на процеса. Процесите, стартирани от приложения, са много лесни за разпознаване - например процесът "Winword.exe" очевидно принадлежи на текстовия редактор на Word. Процесите с име "svchost.exe" представляват различни услуги на операционната система. Името на услугата е дадено в скоби до името на процеса.

В колона " ID на процеса» показва номера на процеса - уникална комбинация от числа, която ви позволява да идентифицирате текущия процес.

В колоната " Завършено» показва количеството виртуална памет в килобайти, запазено от системата за този процес. Това включва както използваната физическа памет, така и страниците, съхранени във файла за виртуална памет.

В колоната " Работен комплект» показва количеството физическа памет в килобайти, използвано в момента от процеса. Работният набор се състои от споделена и частна памет.

В колона " Общ» показва количеството физическа памет в килобайти, което този процессподеля с други. Използването на един сегмент от паметта или страница за размяна за свързани процеси спестява място в паметта. В този случай само едно копие на страницата се съхранява физически, което след това се нанася във виртуалното адресно пространство на други процеси, които имат достъп до нея. Например, всички процеси, инициирани от системните DLL файлове - Ntdll, Kernel32, Gdi32 и User32 - използват споделена памет.

В колоната " Частно» показва количеството физическа памет в килобайти, използвано изключително от този процес. Именно тази стойност ви позволява да определите колко памет трябва да работи дадено приложение.

В колоната " Грешки при липса на памет/сек.' показва средния брой грешки на страницата с липса на памет за секунда през последната минута. Ако даден процес се опита да използва повече физическа памет от наличната в момента, системата записва част от данните от паметта на диска - файла за виртуална памет. Последващият достъп до данните, записани на диска, се нарича грешка при липса на памет.

Докато приложенията стартират и работят с файлове, мениджърът на паметта следи размера на работния набор за всеки процес и улавя заявките за допълнителни ресурси на паметта. Тъй като работният набор на процеса се увеличава, диспечерът съпоставя тези заявки с нуждите на ядрото и други процеси. Ако няма достатъчно налично адресно пространство, диспечерът свива работния набор, като записва данни от паметта на диск.

По-късно, при четене на тези данни от диска, възниква грешка за липса на памет. Това е съвсем нормално, но ако възникнат грешки едновременно за различни процеси, системата се нуждае от допълнително време, за да прочете данни от диска. Твърде честите грешки при липса на памет съответно намаляват производителността на системата. Това се проявява в неочаквано забавяне на всички приложения, които след това също спират неочаквано. Забавянето се дължи на активното преразпределение на данни между физическата памет и странирането.

Това води до заключението, че ако грешките за недостиг на памет за определен процес се появяват твърде често и редовно, компютърът няма достатъчно физическа памет.

За да улесните наблюдението на процеси, които причиняват чести грешки при липса на памет, можете да ги маркирате с флагове. Това ще премести избраните процеси в горната част на списъка, а графиката за грешки при липса на памет ще бъде представена с оранжева крива.

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

Таблицата "Процеси" предоставя подробна информация за разпределението на паметта между отделни процеси, а таблицата "Физическа памет" дава обща картина на използването на RAM. Неговият ключов компонент е уникалната хистограма, показана на фиг. 3.11.


Фигура 3.11. Стълбовата графика в таблицата с физическа памет ви дава обща представа за разпределението на паметта в Windows 7

Всяка секция от хистограмата е маркирана със собствен цвят и представлява определена група страници от паметта. Докато системата се използва, мениджърът на паметта премества данни между тези групи във фонов режим, поддържайки деликатен баланс между физическата и виртуалната памет, за да поддържа всички приложения работещи ефективно. Нека разгледаме по-отблизо хистограмата.

Отляво е секцията Запазено оборудване”, отбелязано в сиво: Това е паметта, разпределена за нуждите на свързаното оборудване, което то използва за взаимодействие с операционната система. Паметта, запазена за хардуер, е заключена и не може да бъде достъпна от мениджъра на паметта. Обикновено количеството памет, разпределено за хардуера, е от 10 до 70 MB, но тази цифра зависи от конкретната конфигурация на системата и в някои случаи може да достигне до няколкостотин мегабайта.

Компонентите, които влияят на количеството запазена памет, включват:

Компоненти на дънната платка - като Advanced Programmable Input/Output Interrupt Controller (APIC);

Звукови карти и други устройства, които извършват картографиран вход/изход с памет;

PCI Express (PCIe) шина;

Видео карти;

Различни чипсети;

Флашки.

раздел " използвани”, маркиран в зелено, представлява количеството памет, използвано от системата, драйверите и работещите процеси. Количеството използвана памет се изчислява като стойността на " Обща сума» минус сумата от показатели « Променен», « Очакване" И " Безплатно". От своя страна стойността Обща сума" е индикатор за " Инсталиран» минус индикатора « Запазено оборудване».

Когато процес стартира в Windows, много от страниците, които показват изображения на EXE и DLL файлове, може вече да са в паметта, защото се използват от други процеси. Страниците с изображения с възможност за запис са означени като „копиране при запис“, така че могат да се споделят, докато не се наложи да бъдат модифицирани. Ако операционната система разпознае EXE, който вече е стартиран, тя може да напише модела на връзката към страницата (използвайки техника, която Microsoft нарича Super-Fetch). Тази технология се опитва предварително да изтегли много необходими страници предварително (въпреки че процесът все още не е получил грешка на страницата за тях). Това намалява забавянето при стартиране на приложения (четенето на страници от диска се наслагва върху изпълнението на кода за инициализация на изображенията). Тази технология подобрява изходната производителност на диска, като улеснява дисковите драйвери да организират операциите за четене (за да се намали необходимото време за търсене). Този процес на предварително извличане се използва и по време на зареждане на системата, както и когато фоново приложение излезе на преден план и когато системата се възобнови от хибернация.

Пейджингът напред се поддържа от мениджъра на паметта, но е реализиран като отделен системен компонент. Разменените страници не се вмъкват в таблицата на страниците на процеса, а вместо това се вмъкват в списък в готовност, от който могат бързо да бъдат вмъкнати в процеса (без достъп до диска).

Некартираните страници са малко по-различни - те не се инициализират чрез четене от файл. Вместо това, когато за първи път се осъществи достъп до некартирана страница, мениджърът на паметта предоставя нова физическа страница (като се увери, че нейното съдържание е запълнено с нула от съображения за сигурност). При последващи грешки на страницата може да се наложи ненанесената страница да бъде намерена в паметта или прочетена от суап файла.

Пейджингът при поискване в диспечера на паметта се управлява от грешки на страницата. Всяка грешка причинява прекъсване на ядрото. След това ядрото изгражда независим от машината манипулатор (който докладва какво се е случило) и го предава на мениджъра на паметта по време на изпълнение. След това мениджърът на паметта проверява достъпа за валидност. Ако неуспешната страница попада в ангажираната област, тогава тя търси адреса в VAD списъка и намира (или създава) запис в таблицата със страници на процеса. В случай на споделена страница, мениджърът на паметта използва прототипния запис в таблицата със страници (свързан с обекта на сегмента), за да попълни новия запис в таблицата със страници на процеса.

Форматът за въвеждане на таблицата на страниците се различава в зависимост от архитектурата на процесора. За процесори x86 и x64 елементите на показаната страница са показани на фиг. 11.17. Ако даден елемент е маркиран като валиден, тогава неговото съдържание се интерпретира от хардуера (така че виртуалният адрес да може да бъде преведен във валидна физическа страница). Неизобразените страници също имат свои собствени елементи, но те са маркирани като невалидни и Хардуеригнорира останалата част от елемента. Софтуерният формат е малко по-различен от хардуерния формат и се определя от мениджъра на паметта. Например, за некартирана страница (която трябва да бъде очертана и нулирана, преди да бъде използвана), този факт се отбелязва в записа на таблицата на страниците.


Два важни бита от записа в таблицата на страниците се актуализират директно от хардуера. Това са битът за достъп (A) и промененият бит (D). Тези битове следят използването дадено картографиранестраници за достъп до страницата и възможност за промяна на страницата с този достъп. Това наистина подобрява производителността на системата, тъй като мениджърът на паметта може да използва бита за достъп, за да реализира най-малко използвано (LRU) страниране. Принципът на LRU е, че онези страници, които не са били използвани най-дълго, имат най-малък шанс да бъдат използвани повторно в близко бъдеще. Битът за достъп позволява на мениджъра на паметта да определи, че е имало достъп до страницата. Битът "модифициран" казва на мениджъра на паметта, че страницата може да е била модифицирана (или, което е по-важно, не е била модифицирана). Ако страницата не е била модифицирана, откакто е била прочетена от диска, тогава мениджърът на паметта няма нужда да записва нейното съдържание на диска (преди да го използва за нещо друго).

И двете архитектури x86 и x64 използват 64-битов запис в таблицата на страниците (вижте Фигура 11.17).

Всяка грешка на страницата може да бъде класифицирана в една от пет категории:

1. Страницата не е фиксирана.

2. Опит за достъп до страница с нарушение на разрешението.

3. Опит за промяна на страница за копиране при запис.

1. Трябва да увеличите стека.

2. Страницата е фиксирана, но в дадено времене се показва.

Първият и вторият случай са програмни грешки. Ако дадена програма се опита да използва адрес, който няма валидно съпоставяне, или се опита да извърши незаконна операция (като опит да запише на страница само за четене), това се нарича нарушение на достъпа и обикновено води до прекратяване на процеса. Нарушаването на достъпа често е резултат от невалидни стойности на указателя, включително достъп до памет, която е била освободена и отделена от процеса.

Третият случай има същите симптоми като втория (опит за запис на страница само за четене), но обработката му е различна. Тъй като страницата е маркирана като копиране при запис, мениджърът на паметта не хвърля нарушение на достъпа. Вместо това прави частно копие на страницата за текущия процес и след това се връща към нишката, която се е опитала да напише в страницата. Нишката опитва отново операцията за запис, която сега ще завърши без грешка на страницата.

Четвъртият случай възниква, когато нишка избута стойност в стека си и удари страница, която все още не е разпределена. Мениджърът на паметта разпознава това като специален случай. Докато има място във виртуалните страници, запазени за стека, мениджърът на паметта ще предостави нови страници, ще ги нулира и ще ги съпостави с процеса. Когато нишката възобнови изпълнението, тя ще опита отново достъпа и този път ще успее.

И накрая, петият случай е нормална грешка на страницата. Той обаче има няколко подварианта. Ако една страница е картографирана към файл, тогава мениджърът на паметта трябва да прегледа нейните структури от данни (като прототипната таблица на страницата, свързана с обекта на сегмента), за да се увери, че няма нейно копие в паметта. Ако има копие (например в друг процес, в списък в готовност или в списък с модифицирани страници), то просто ще го направи споделено (може да се наложи да го маркира като копиране при запис, за да направи това ако промените не са споделени).предполага). Ако все още няма копие, мениджърът на паметта ще разпредели свободна физическа страница и ще я подготви за копиране на страница от файла от диска в нея, освен ако друга страница не се прехвърля от диска в този момент (в този случай просто трябва да изчакайте, докато това прехвърляне приключи).

Ако мениджърът на паметта може да се справи с грешка на страницата, като намери правилната страница в паметта (вместо да я прочете от диска), тогава грешката се нарича мека грешка. Ако имате нужда от копие от диск, тогава това е сериозна грешка. Меките грешки са много по-евтини и имат малко влияние върху производителността на приложението (в сравнение с твърдите грешки). Софтуерни грешки могат да възникнат, защото споделената страница вече е картографирана към друг процес или просто е необходима нова нулирана страница, или желаната страницае премахнат от работния набор на процес, но се изисква отново, преди да се използва повторно. Софтуерни грешки също могат да възникнат, защото страниците са били компресирани за ефективно увеличаване на размера на физическата памет. За повечето конфигурации на процесора, паметта и I/O in текущи системипо-ефективно е да се компресира, вместо да се губи скъп I/O (по отношение на производителност и консумация на енергия), което изисква четене на страница от диск.

Когато дадена физическа страница вече не е съпоставена към таблицата със страници на който и да е процес, тя се поставя в един от трите списъка: безплатен, модифициран или запазен. Тези страници, които никога повече не са необходими (като страниците на стека на завършващ процес), се освобождават незабавно. Тези страници, които могат отново да дадат грешка на страницата, са или в модифицирания списък, или в резервния списък (в зависимост от това дали "модифицираният" бит е бил зададен за който и да е елемент от таблицата на страниците, който показва тази страница от последното четене от диска). Страниците от модифицирания списък в крайна сметка ще бъдат записани на диска и след това преместени в резервния списък.

Мениджърът на паметта може да разпределя страници според нуждите (използвайки списък със свободни или запазени страници). Преди да разпредели страница и да я копира от диска, мениджърът на паметта винаги проверява списъците със запазени и модифицирани страници, за да види дали страницата вече е в паметта. Схемата за страниране в Windows преобразува бъдещи твърди грешки в меки (чрез четене на страници, които може да са необходими, и поставянето им в резервния списък). Самият мениджър на паметта извършва малко количество страниране напред - той осъществява достъп до групи от последователни страници (вместо отделни страници). Допълнителни страницинезабавно поставен в списъка с резервни страници. Това не е загуба, тъй като режийните разходи на мениджъра на паметта са много по-малки от разходите за извършване на I/O операции. Четенето на цял клъстер от страници е малко по-скъпо от четенето на една страница.

Елементите на таблицата на страницата на фиг. 11.17 се отнасят за физически (не виртуални) номера на страници. Ядрото трябва да използва виртуални адреси, за да актуализира записа в таблицата на страниците (и директорията на страниците). Windows картографира таблиците на страниците и директориите на страниците за текущия процес към виртуалното адресно пространство на ядрото, като използва елемента за самокартиране в директорията на страницата (Фигура 11-18). Чрез картографиране на запис в директория на страница към директория на страница (самокартиране), ние получаваме виртуални адреси, които могат да се използват за препратка към записи в директория на страници (Фигура 11.18a) и записи в таблица на страници (Фигура 11.18b). Самокартата заема 8 MB виртуални адреси на ядрото на процес (на x86 процесори). За простота, фигурата показва x86 елемента за самокартиране за 32-битови PTE записи (записи в таблица на страници). Всъщност Windows използва 64-битови PTE, така че системата може да използва повече от 4 GB физическа памет. С 32-битови PTE записи, елементът за самокартиране използва само един PDE запис (Page-Directory Entry) в директорията на страницата и следователно заема само 4 MB адреси, а не 8 MB.