Рекомендації щодо розміщення файлу підкачки. Свопінг. Сегментно-сторінкова пам'ять Що таке свопінг

Свопінгшахрайський метод чорного SEO, це заміна контенту проіндексованої сторінки сайту на інший, що не відповідає запитам користувачів.

В чому сенс?

Свопінг займаються, коли хочуть заробити на продажу посилань. Припустимо, оптимізатор вивів сайт на 2 місце за запитом «оренда кімнат», сайт він просунув у ТОП досить популярному запиту. Після цього контент інтернет-ресурсу замінюється текстовим матеріалом із величезною кількістю посилань, що не має нічого спільного з орендою кімнат. Для користувача ці посилання марні, але вебмайстру вони приносять прибуток.

Наслідував

По суті, свопінг захаращує Інтернет, перетворюючи сайт на лінкопомийку. Індексація такого сайту забирає ресурси у пошукових систем, а що робити, якщо свопінг заполонить весь Інтернет?

Репутація Мережі також виявляється підмоченою. Користувачам потрібна саме та інформація, яку вони ввели як запит, тому навряд чи хтось зрадіє, якщо шукав відомості про одне, а знайшов інше, зовсім непотрібне.

Як перемогти свопінг?

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

Свопінг не означає, що міняти тематику ресурсу категорично заборонено. ТИЦ трохи вагатиметься, але нічого страшного не станеться. Треба лише дотримуватись одного правила - писати та розміщувати тексти, зрозумілі користувачам.

Свопінг передбачає навмисний обман пошукової системишляхом заміни контенту.

Свопінг процесів

Свопінг процесів-- витіснення готового до виконання процесу з оперативної пам'ятіу зовнішню. У цьому оперативна пам'ять, заповнена процесом, повністю звільняється.

Свопінг процесів може використовуватися як засіб реалізації абсолютних пріоритетів за відсутності віртуальної пам'яті, або ініціюватися операцією на зовнішньому пристрої, що потребує значних часових витрат.

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

Це дозволяє ядру мати під рукою мінімальну інформацію, необхідну визначення місцезнаходження інших даних, які стосуються процесу, навіть якщо вони відсутні в пам'яті.

Структура РГОС є записом системної таблиці процесів, яка, як ми тільки-но помітили, завжди знаходиться в оперативній пам'яті. Запис цієї таблиці для процесу, що виконується в даний момент часу, адресується системною змінною curproc.

Щоразу при переключенні контексту, коли ресурси процесора передаються іншому процесу, відповідно змінюється значення змінної curproc, що тепер вказує на структуру ргос активного процесу.

Маючи справу з пакетними системами, можна обходитися фіксованими розділами і не використовувати нічого складнішого. У системах з поділом часу можлива ситуація, коли пам'ять не в змозі містити всі процеси користувача. Доводиться вдаватися до свопінг (swapping) - переміщення процесів з головної пам'яті на диск і повністю.

Вивантажений процес може бути повернутий у той самий адресний простір або в інший. Це обмеження диктується шляхом зв'язування. Для схеми зв'язування на етапі виконання можна завантажити процес до іншого місця пам'яті.

Свопінг не має безпосереднього відношення до управління пам'яттю, швидше він пов'язаний із підсистемою планування процесів. Очевидно, що свопінг збільшує час перемикання контексту. Час вивантаження може бути скорочений за рахунок організації спеціально відведеного простору на диску (розділ для свопінгу). Обмін із диском при цьому здійснюється блоками більшого розміру, тобто швидше, ніж через стандартну файлову систему.

Схема зі змінними розділами

Організація пам'яті як фіксованих розділів проста і ефективна до роботи з пакетними системами. Кожне завдання після того, як сягає початку черги, завантажується в розділ пам'яті і залишається там до свого завершення. Поки в пам'яті може зберігатися достатня кількість завдань для забезпечення постійної зайнятості центрального процесора, немає причин щось ускладнювати.

Але зовсім інша ситуація склалася із системами поділу часу або персональними комп'ютерами, орієнтованими працювати з графікою. Оперативної пам'яті іноді виявляється недостатньо у тому, щоб вмістити всі поточні активні процеси, і тоді надлишок процесів доводиться зберігати на диску, а обробки динамічно переносити в пам'ять.

Існують два основних підходи до управління пам'яттю, що залежать (почасти) від доступного апаратного забезпечення. Найпростіша стратегія, яка називається свопінгом (swapping) або звичайним підкачуванням, полягає в тому, що кожен процес повністю переноситься в пам'ять, працює деякий час і потім повністю повертається на диск.

У принципі система свопінгу може базуватися на фіксованих розділах. Більш ефективною, однак, представляється схема динамічного розподілу або схема зі змінними розділами, яка може використовуватися і в тих випадках, коли всі процеси повністю містяться в пам'яті, тобто відсутність свопінгу. І тут спочатку вся пам'ять вільна і розділена заздалегідь розділи. Знову надходить завдання виділяється строго необхідну кількість пам'яті, не більше. Після розвантаження процесу пам'ять тимчасово звільняється. Через деякий час пам'ять являє собою змінну кількість розділів різного розміру (рисунок 2.4). Сумежні вільні ділянки можуть бути об'єднані.

Рисунок 2.4 – Динамічне розподіл. Свопінг

Основна різниця між фіксованими розділами та непостійними розділами полягає в тому, що в другому випадку кількість, розміщення та розмір розділів змінюються динамічно в міру надходження та завершення процесів, тоді як у першому варіанті вони фіксовані. Гнучкість схеми, в якій немає обмежень, пов'язаних з певною кількістю розділів, і кожен з розділів може бути дуже великим або зовсім маленьким, покращує використання пам'яті, але, крім того, ускладнює операції розміщення процесів та звільнення пам'яті, а також відстеження змін, що відбуваються.

Коли в результаті підкачування процесів з диска в пам'яті з'являється безліч невикористаних фрагментів, їх можна об'єднати в одну велику ділянку, пересунувши всі процеси у бік молодших адрес настільки, наскільки це можливо. Така операція називається ущільненням чи стисненням пам'яті. Зазвичай її не виконують, тому що на неї йде багато часу роботи процесора. Наприклад, на машині з 256 Мбайт оперативної пам'яті, яка може копіювати 4 байти за 40 нс, ущільнення усієї пам'яті займе близько 2,7 с.

Ще один момент, на який варто звернути увагу: скільки пам'яті має бути надано процесу, коли він створюється чи скачується з диска? Якщо процес має фіксований розмір, що ніколи не змінюється, розміщення відбувається просто: операційна система надає точно необхідну кількість пам'яті, ні більше, ні менше, ніж потрібно.

Однак якщо область даних процесу може зростати, наприклад, в результаті динамічного розподілу пам'яті з купи, як відбувається у багатьох мовах програмування, проблема надання пам'яті виникає щоразу, коли процес намагається збільшитися. Коли ділянка невикористаної пам'яті розташована поруч із процесом, її можна віддати на користь процесу, таким чином, дозволивши процесу вирости на розмір цієї ділянки. Якщо ж процес сусідить з іншим процесом, для його збільшення потрібно або перемістити досить велику вільну ділянку пам'яті, або перекачати на диск один або більше процесів, щоб створити незайнятий фрагмент достатнього розміру. Якщо процес не може зростати в пам'яті, а область на диску, надана для підкачування, переповнена, процес буде змушений чекати на звільнення пам'яті або буде знищений.

Якщо припустити, що більшість процесів будуть збільшуватися під час роботи, ймовірно, відразу варто надавати їм трохи більше пам'яті, ніж потрібно, а щоразу, коли процес скачується на диск або переміщається в пам'яті, обробляти службові дані, пов'язані з переміщенням або підкачуванням процесів, більше не вміщуються у наданій їм пам'яті. Але коли процес вивантажується на диск, повинна завантажуватися тільки частина пам'яті, що дійсно використовується, так як дуже марнотратно також переміщати і додаткову пам'ять. На малюнку 2.5 можна побачити конфігурацію пам'яті з наданням простору для зростання двох процесів.

Якщо процес може мати два сегменти, що збільшуються, наприклад сегмент даних, використовуваний як купа для динамічно призначаються і звільняються змінних, і сегмент стека для звичайних локальних змінних і повертаються адрес, пропонується альтернативна схема розподілу пам'яті (рисунок 2.5 б). Тут бачимо, що з кожного процесу вгорі наданої йому області пам'яті знаходиться стек, який розширюється вниз, і сегмент даних, розташований окремо від тексту програми, який збільшується вгору. Область пам'яті між ними можна використовувати для будь-якого сегмента. Якщо її стає недостатньо, процес потрібно або перенести на інше, більше вільне місце, або вивантажити на диск до появи вільного просторунеобхідного розміру або знищити.


Рисунок 2.5 – Надання простору для зростання області даних (а); надання простору для зростання стека та області даних (б)

Одним із способів виділення місця для swap-файлу (розділу) є кратне виділення пам'яті, коли обсяг цього файлу дорівнює обсягу оперативної пам'яті, помноженого на константу від 0,5 до 2 або 3.

Якщо на комп'ютері є більше одного жорсткого диска, то для швидшого звернення до файлу підкачки його бажано розмістити на найменш навантаженому запитами читання/запису фізичному диску. Гарним виборомбуде фізичний файл підкачки на диску, який має найбільшу швидкість читання/запису.

Обсяг оперативної пам'яті, що є у комп'ютері, суттєво позначається на перебігу обчислювального процесу. Він обмежує кількість програм, що одночасно виконуються, і розміри їх віртуальних адресних просторів.

Якщо всі завдання мультипрограмної суміші є обчислювальними (мало операцій введення-виведення), для хорошого завантаження процесора може вистачити лише 3-5 завдань.

Якщо обчислювальна системазавантажена виконанням інтерактивних завдань, для ефективного використання процесора може знадобитися вже кілька десятків, або навіть сотень завдань.



Багато завдань потребує великих обсягів оперативної пам'яті.

В умовах, коли для забезпечення прийнятного рівня мультипрограмування наявної пам'яті виявляється недостатньо, було запропоновано метод організації обчислювального процесу, при якому образи деяких процесів повністю або частково вивантажуються на диск.

У мультипрограмному режимі крім активного процесу, є також призупинені процеси, що очікують завершення введення-виведення або звільнення ресурсів, а також процеси в стані готовності, що стоять у черзі до процесора.

Образи таких неактивних процесів можуть бути тимчасово, до наступного циклу активності вивантажені на диск. Незважаючи на це, ОС «знає» про існування процесів та враховує це при розподілі процесорного часу та інших ресурсів. На момент, коли підходить черга виконання вивантаженого процесу, його образ повертається з диска в оперативну пам'ять. Якщо при цьому виявляється, що вільного місцяв оперативній пам'яті не вистачає, то диск вивантажується інший процес.

Така підміна (віртуалізація) оперативна пам'ять дискової дозволяє підвищити рівень мультипрограмування.

Віртуальнимназивається ресурс, який користувачеві або програмі користувача є властивими властивостями, якими він, насправді, не володіє.

Зрозуміло, робота віртуальної оперативної пам'яті відбувається повільніше, ніж реальної.

Віртуалізація оперативної пам'яті здійснюється сукупністю програмних модулів ОС та апаратних схем процесора та включає вирішення наступних завдань:

· Розміщення даних у запам'ятовуючих пристроях різного типу;

· Вибір образів процесів або їх частин для переміщення з оперативної пам'яті на диск і назад;

· Переміщення в міру необхідності даних між пам'яттю та диском;

· Перетворення віртуальних адрес у фізичні.

Зауважимо, що із проблемою розміщення в оперативній пам'яті програм, які перевищують її розміри, програмісти зіткнулися досить давно. Одним із рішень було розбиття програми на частини, які називалися оверлеями. Коли один оверлей закінчував виконання, він викликав інший оверлей. Усі оверлеї зберігалися на диску і переміщалися між пам'яттю і диском засобами ОС виходячи з директив програміста, які у програмі.

Незважаючи на зовнішню схожість, має принципову відмінність від віртуальної пам'яті. Воно полягає в тому, що при оверле розбиття програми на частини і планування їх завантаження в оперативну пам'ять виконуються програмістом заздалегідь під час написання програми.

Віртуалізація пам'яті може бути здійснена на основі двох різних підходів:

· свопінг - образи процесів вивантажуються на диск та повертаються в оперативну пам'ять повністю;

· віртуальна пам'ять - між оперативною пам'яттю та диском переміщаються частини(Сегменти, сторінки) образів процесів.

Свопінг– окремий випадок віртуалізації. Це найбільш простий спосіб спільного використанняоперативної пам'яті та диска.

Недолік – надмірність. Коли ОС вирішує активізувати процес, на його виконання, часто не потрібно завантажувати в оперативну пам'ять всі його сегменти повністю. Аналогічно при звільненні пам'яті для завантаження нового процесу часто не потрібно вивантажувати інший процес на диск повністю. Достатньо вивантажити лише частину його образу. Переміщення надмірної інформації уповільнює роботу системи та неефективно використовується оперативна пам'ять.

Ще один недолік. Системи, що підтримують свопінг, не здатні завантажити для виконання процес, віртуальний адресний простір якого перевищує наявну вільну пам'ять.

У сучасних ОС свопінг застосування не знаходить.

Ключовою проблемою віртуальної пам'яті, що виникає в результаті багаторазової зміни розташування в оперативній пам'яті образів процесів або їх частин, є перетворення віртуальних адрес на фізичні.

В даний час вся безліч реалізацій віртуальної пам'яті може бути представлена ​​трьома класами:

· Сторінка віртуальна пам'ять. Переміщення даних здійснюється сторінками - частинами віртуального адресного простору, фіксованого та порівняно невеликого розміру.

· Сегментна віртуальна пам'ятьпереміщення здійснюється сегментами – частинами віртуального адресного простору довільного розміру.

· Сегментно-сторінкова віртуальна пам'ять. Тут використовується дворівневий поділ: віртуальний адресний простір ділиться на сегменти, потім сегменти діляться на сторінки. Одиницею переміщення є сторінка.

Для тимчасового зберігання сегментів і сторінок на диску відводиться або спеціальна область, або спеціальний файл, який називається сторінковий файл.

Поточний розмір сторінкового файлу є важливим параметром ОС, чим більше, тим більше програм може одночасно виконувати ОС. Однак, зі збільшенням сторінки файлу збільшується час на перекачування інформації і загальна корисна продуктивність системи зменшується.

Розмір сторінкового файлу в сучасних ОС є параметром, що налаштовується.


З поширенням комп'ютерів у російську мову проникло багато іноземних слів, про які звичайна людиназнати нічого не знає. Їх раніше вживали лише фахівці у тій чи іншій сфері. А масове використання слів такого плану розпочалося нещодавно. Одне з них – "свопінг". Це одне з нечисленних слів, яке може означати кардинально різні операції. Причому належить воно одразу двом сфер діяльності. Тому багато людей плутають його значення. Варто відразу зазначити, що це слово потрібно визначати за контекстом. Тільки тоді буде зрозуміло, до якої саме сфери воно відноситься до Наразі. А тепер розглянемо основні поняття, пов'язані із цим словом.

Вам буде цікаво:

Що таке свопінг?

Це слово походить від англійської swapping. Переклад (дослівний) має вигляд "обмінювати". Це слово в англійськоює вже давно. І там воно є звичайним дієсловом. І лише в російській мові в нього зовсім інший зміст. Є кілька варіантів тлумачення цього слова, і всі вони відносяться до різних сфер діяльності:

  • Свопінг у світі акцій. Таким терміном брокери на біржах означали швидкий обмін акціями. Нині свопінг також є на великих біржах. На "Форексі" також є таке поняття, але там воно позначає швидкий продажвсіх акцій.
  • Свопінг у комп'ютерному світі. У світі ПК і ноутбуків цим терміном називають процес звільнення частини оперативної пам'яті і перенесення даних у заздалегідь створений файл підкачки на жорсткому диску. Дуже корисна опція для тих, хто не має оперативної пам'яті.