Архітектура процесу однозадачних сервера

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

Для підтримки таких середовищ в Oracleіспользуется архітектура процесу однозадачних сервера (single-taskserverprocessarchitecture), яка представлена ​​на рис. 6.

Однозадачний процес ефективний в середовищі, створеному на основі хост-комп'ютера, так як в цьому випадку як клієнтську, так і серверну частину програми виконує лише один процес. Однак однозадачних конфігурацію Oracleподдержівают не всі операційні системи: її можуть застосовувати тільки ті з них, які забезпечують належний захист кордону між клієнтської і серверної програмами. Наприклад, операційна сістемаVAXVMSкомпанііDigitalможет підтримувати однозадачних конфігурацію для з'єднань в середовищі хост-машини, а більшість серверовUNIX- немає; замість цього для підтримки як з'єднань клієнт / сервер, так і з'єднань в середовищі хост-машин більшість серверовUNIXдолжно використовувати конфігурацію многопоточного або виділеного сервера.

Області пам'яті і кешування даних

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

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

Кеш-попадання, кеш-промахи і кеш-перезавантаження

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

Кеш пам'яті зазвичай являє собою фіксований ділянку пам'яті, який не збільшується і не зменшується в розмірі. Тому існує обмеження для зберігання даних в кеші. Коли кеш заповнений даними і в нього потрібно вважати додаткову інформацію, додаток повинен вирішити, які блоки слід видалити з кеша, щоб звільнити місце для нових даних. Для збереження в пам'яті найчастіше використовуваних блоків даних і мінімізації числа кеш-промахів і кеш-перезавантажень додаток повинен застосовувати відповідний алгоритм кешування (cachingalgorithm) і з його допомогою вирішувати, коли видаляти застарілі блоки з кешу. Широко поширений алгоритм кешування, називаемийMRU / LRU (most-recently-used / least-recently-usedcachingalgorithm- алгоритм кешування "використовувався пізніше всіх / використовувався раніше всіх). Сенс цього алгоритму полягає в тому, що при його застосуванні блоки даних, що використовувалися пізніше всіх , зберігаються в кеші, а блоки даних, що використовувалися раніше всіх, записуються назад на диск, коли потрібно додатковий простір пам'яті.