Working Set
Матеріал з Вікіпедії - вільної енциклопедії
Робоча безліч ( англ. working set) - поняття в інформатиці, що визначає кількість пам'яті, що вимагається процесу в заданий інтервал часу.
Пітер Деннинг [En] (1968) визначає «робоче безліч інформації W (t, τ) {\ displaystyle W (t, \ tau)} процесу в момент часу t {\ displaystyle t} як сукупність інформації, на яку посилається процес протягом інтервалу часу (t - τ, t) {\ displaystyle (t- \ tau, t)} » [1] . Зазвичай за одиницю інформації береться сторінка пам'яті . Пропонується вважати робоче безліч наближеною оцінкою безлічі сторінок, до яких процес звернеться в майбутньому (наприклад, протягом наступних τ {\ displaystyle \ tau} одиниць часу), і, що більш важливо, - показником того, які сторінки слід зберегти в основний пам'яті, щоб виконання процесу здійснювалося швидше.
Для продуктивності має значення, які саме сторінки залишаться в основний пам'яті (на відміну від сторінок, що вивантажуються в допоміжну пам'ять): якщо залишити в основний пам'яті занадто багато сторінок, що належать процесу, то знизиться кількість процесів, які можна виконувати одночасно. Якщо залишити в основний пам'яті занадто мало сторінок процесу, то частота помилок сторінок різко зросте і число виконуються в даний момент активних процесів буде прагнути до нуля.
Відповідно до моделі робочого безлічі, процес може знаходитися в ОЗУ тоді і тільки тоді, коли безліч всіх його сторінок, які використовуються в даний час (або безліч останніх за часом використання сторінок, яке часто використовується як його наближення) можуть перебувати в ОЗУ. Модель працює за принципом «все або нічого», тобто, якщо число потрібних процесу сторінок пам'яті зростає і в ОЗУ немає вільного місця, то процес вивантажується з пам'яті цілком, щоб звільнити пам'ять для використання іншими процесами.
часто сильно завантажений комп'ютер може мати стільки процесів в черзі, що, якщо дозволити їм запуститися в один і той же квант часу, то обсяг пам'яті, на який вони будуть посилатися, перевищить обсяг ОЗУ, внаслідок чого виникне пробуксовка віртуальної пам'яті .
Вивантаження деяких процесів з пам'яті призводить до того, що виконання всіх процесів, включаючи навіть тимчасово вивантажені з пам'яті, завершиться набагато раніше, ніж при спробі запустити всі процеси одночасно. Виконання процесів завершиться набагато раніше і в порівнянні з послідовним запуском кожного процесу по одному, так як одночасне виконання дозволяє одним процесам виконуватися в ті моменти часу, коли інші чекають завершення доступу до жорсткого диска або іншим глобальних ресурсів. Іншими словами, стратегія робочого безлічі запобігає пробуксовку віртуальної пам'яті, зберігаючи при цьому високу ступінь мультипрограммирования . Таким чином, ця стратегія оптимізує завантаження і пропускну здатність центрального процесора.
Основна складність в реалізації описаної моделі - це відстеження робочого безлічі. Для цього з усього потоку звернень процесу до сторінок пам'яті відслідковуються останні звернення за інтервал часу τ {\ displaystyle \ tau} , Званий вікном робочого безлічі. При кожному зверненні до пам'яті нова посилання на сторінку додається в початок вікна, а найбільш стара посилання виявляється за його межами. Сторінка вважається, що належить робітникові безлічі, якщо на неї є посилання в вікні робочого безлічі [2] .
Щоб уникнути накладних витрат, пов'язаних із зберіганням великої кількості посилань на сторінки пам'яті, обчислення робочого безлічі часто реалізується шляхом відстеження часу останнього звернення до сторінці пам'яті. Сторінка вважається, що належить робітникові безлічі, якщо різниця між поточним моментом часу і часом останнього звернення не перевищує розміру вікна робочого безлічі. Якщо ця різниця перевищує розмір вікна, сторінка може бути видалена.
Стратегія робочого безлічі не є алгоритмом заміни сторінок , Однак алгоритми заміни сторінок можуть враховувати робоче безліч процесу і не видаляти його ж сторінки. Наприклад, існує модифікована версія алгоритму годин під назвою WSClock.
- Е. Танненбаум. Архітектура комп'ютера = Structured Computer Organization. - 5-е изд. - СПб. : Пітер, 2013. - С. 483. - 884 с. - ISBN 978-5-469-01274-0 .
- Denning, PJ (1980). Working Sets Past and Present. IEEE Transactions on Software Engineering, 1/1980, Volume SE-6, pp. 64-84
- Silberschatz, A., Galvin, PB, & Gagne, G. (2005). Operating System Concepts, 7th edition. Palatino: Wiley. pp. 346.