Управление на паметта в UNIX - Студопедия

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

Програмната област обикновено е само за четене и има фиксиран размер. Областта с данни е за четене/запис и може да бъде преоразмерена по време на работа с помощта на системното извикване brk. Площта на стека автоматично се увеличава от системата, когато стекът се запълни. Когато няколко процеса започнат да изпълняват една и съща програма, те споделят обща програмна област, но всеки процес получава свои собствени данни и области на стека.

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

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

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

В съвременните реализации, базирани на страниране на паметта, важна роля играе концепцията за списък със свободни страници, които могат да бъдат незабавно разпределени, ако някой процес има достъп до виртуална страница, която не е в паметта. Този списък включва страници, които не са били достъпвани от процеси от дълго време. Тъй като е трудно да се приложи алгоритъмът LRU за страници с памет, обикновено се използва по-простият алгоритъм за „втори шанс“ (известен още като „алгоритъм на часовника“). Идеята е следната. За всяка физическа страница таблицата на страниците съхранява бит за използване и бит за модификация. Тези битове се задават от хардуера: битът за използване се задава всеки път, когато се осъществи достъп до страницата, а битът за модифициране се задава, когато страницата се записва. Системен процес, наречен демон за подмяна на страници, се изпълнява периодично (на таймер), за да види дали свободният списък е твърде малък. Обикновено прагът е зададен на ¼ от общата физическа памет. Ако броят на безплатните страници е под този праг, демонът започва да преминава през всички физически страници. Ако битът за използване на страницата е зададен, този бит се изчиства. Ако битът вече е нулиран, тогава страницата е включена в безплатния списък. По този начин една страница се добавя към безплатния списък, ако демонът на страницата я е анкетирал два пъти от последното влизане в нея. Ако битът за модифициране на страницата е зададен (в друга терминология, ако страницата е "мръсна"), тогава преди да бъде добавена към безплатния списък, системата запазваданни във файла на страницата. Добавянето към списъка с безплатни страници не означава незабавна загуба на данни и ако процесът успее да получи достъп до страницата, преди да бъде предоставена на друг процес, тази страница ще бъде изключена от безплатния списък.

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

Тук е описана (много грубо) само една от опциите за управление на паметта, реализирани в различни версии на UNIX и в Linux. Тъй като алгоритмите за управление на физическата памет са "вътрешни работи" на системата и не се регулират от никакви стандарти, съответните алгоритми, използвани в различните версии на системата, могат да се различават значително.

[2] Произходът на термина не е напълно ясен. Сред значенията на английската дума „кеш“, „кеш“ изглежда най-подходящото - онова малко нещо в портфейла, което ви позволява да не ходите всеки път до банката за малки покупки.

[3] Спомнете си как се държи Windows при следващо зареждане след неправилно изключване на компютъра.

[4] Теоретично можете да зададете броя на копията на FAT, различен от две. Този номер се съхранява като един от параметрите в BOOT сектора. На практика винаги се използват две копия на FAT.

[5] Каква според вас е разликата между преместването на файл в рамките на същия диск и преместването му от диск на диск?

[7] Има известна непоследователност в общоприетата терминология: в система с планиране без изпреварване, изпреварването на процеса все още е възможно, но само по инициатива на самия процес.

[8] Понякога се използва и терминът „споделяне на времето“.(споделяне на времето). Този термин обаче е по-добре да се остави да се отнася до многотерминалните операционни системи, описани в 1.3.3. Системите за разделяне на времето също включват операционни системи в реално време, които са значително различни от системите за споделяне на време.

[9] Но не забравяйте за изпита!

[10] Едно и също разширение EXE означава различни формати на програми за MS-DOS и за Windows с различни версии. Всеки от тези формати има свой собствен подпис. Например съвременните Windows EXE файлове използват подписа „PE“.

[11] Използването на думата „хубав“ в този контекст обикновено се обяснява по следния начин: този процес е толкова хубав, че прави път за всички.

[12] Опитът подсказва, че когато компютрите с няколко гигабайта памет станат обичайни, ще има програми, които могат да намерят повече или по-малко полезна употреба за цялата тази памет.

Не намерихте това, което търсихте? Използвайте търсачката:

Деактивирайте adBlock! и обновете страницата (F5)много е необходимо