Особливості апаратно-програмних вирішень файл-сервера
Комп'ютер файл-сервера посідає особливе місце серед інших комп'ютерів мережі. Він повинен мати більші ємності для зберігання даних, більші швидкодію та оперативну пам'ять.
Критичним моментом у роботі файл-сервера є його здатність швидко відшукувати дані та видавати їх без помітної затримки робочій станції. На продуктивність файл-сервера впливають багато факторів: швидкість роботи адаптера, тип мережі, ємність доступної оперативної пам'яті, параметри твердого диска. Найважливішим параметром файл-сервера є час доступу до даних. Він складається з часу шукання (радіального переміщення головок) та часу обертання (часу, потрібного для підходу потрібного сектора).Хорошим є сервер з часом доступу 10-25 мс. Збільшити продуктивність файл-сервера та надійність зберігання даних можна за допомогою різних апаратних та програмних вирішень. Назвемо деякі з них.
Використання дискового співпроцесора. Спеціальний дисковий співпроцесор керує читанням та записуванням, інформації на диск. Отже, розвантажується центральний процесор, збільшуються продуктивність та вартість системи.
Застосування інтелектуальних адаптерів. Частину роботи щодо організації обміну даними та доступу до пам'яті виконує адаптер, використуючи спеціальні алгоритми. Як правило, адаптери серверів коштують дорожче. Крім того, вони можуть мати більшу розрядність або використовувати прямий доступ до пам'яті.
Ліфтовий пошук (elevator seeking). Ліфтове переміщення головок дисковода - це процедура, що дає змогу поліпшити записування та читання даних з диска. Запити, які надходять, накопичуються протягом деякого часу. Після цього оптимізується їхня черговість, щоб мінімізувати переміщення головок. Така процедура зменшує тривалість виконання запиту на 40%. Крім того, зменшується зношування диска.
Кеш-пам'ять (сазЬ тетогу). На сервері розміщують спеціальну швидкодіючу пам'ять, у яку заносять структуру каталогів та FАТ-таблиці (апаратний кеш). Крім того, частину вільної оперативної пам'яті комп'ютера виділяють для читання/записування. Кожного разу читають не тільки визначений кластер диска, але Й кілька сусідніх (файли найчастіше містяться в сусідніх кластерах). У цьому випадку велика ймовірність того, що наступне читання можна буде виконати з пам'яті, а не з диска. Отже, тривалість доступу зменшиться.
Кешування файлів. У процесі роботи система може аналізувати, які файли використовуються найчастіше, та зберігати їх у пам'яті, а не на диску. Це разом з операцією ліфтового пошуку підвищує ефективність застосування сервера в сотні разів.
Гешування каталогів (directory hashing). Якщо каталоги в сервері дуже великі, то потрібен тривалий час на відшукання конкретного файлу за його іменем (необхідно переглянути всі імена попередніх файлів каталогу). У процесі гешування кожен запис каталогу перетворюється у 2-байтові значення, які зберігаються в спеціальних геш-таблицях. Пошук потрібного імені файлу зводиться до порівнянь числових значень з цих таблиць.
Індексування FАТ- та геш-таблиць. Для прискорення пошуку застосовують індексування таблиць. У цьому випадку створюють та зберігають спеціальні індексні файли.
Дублювання дисків (disk mirroring). Поряд з одним встановлюють другий ідентичний твердий диск, який в оперативному режимі дублює роботу першого. Якщо один вийшов з ладу, робота сервера не припиняється.
Мультипроцесорність. Для збільшення швидкодії в сучасних серверах щораз частіше використовують кілька (до кількох десятків) процесорів, які працюють у режимі розподілу пам'яті (Symmetrical Multiprocessing (SMP), Asymmetrical Multiprocessing (ASMP). Як правило, у таких серверах можна виконати гарячу (без припинення роботи сервера) заміну окремих блоків.
RAID-масиви. У сучасних серверах для збільшення гнучкості, надійності зберігання та збільшення обсягів інформації часто використовують масиви твердих дисків.
Особливості реалізації та роботи сервера друкування
Сервер друкування - це комп'ютер, який виконує завдання для окремої групи користувачів з друкування матеріалів. Як звичайно, він керує одним або кількома принтерами. Подібно до файл-сервера, сервер друкування може бути призначеним та непризначеним.
Якщо якійсь робочій станції дано завдання роздрукувати документ, то вона звертається до принтера мережі за його символьним іменем (до робочої станції можна приєднати і локальний принтер, однак він повинен мати інше ім'я). Програма переспрямування, в якій зберігається інформація про ресурси мережі, надсилає запит до сервера друкування. Якщо принтер вільний, сервер відразу спрямовує завдання в буфер друкування - частину оперативної пам'яті сервера, яка використовується для скерування завдань на друкування з заданою швидкістю (рис.2).

Рис..2. Робота сервера друкування,
Якщо принтер зайнятий, то завдання записується на диск сервера друкування і чекає своєї черги. Програмне забезпечення сервера друкування може керувати чергою, присвоювати завданням пріоритети, групувати за форматами документів та ін. Якщо буфер друкування частково звільняється, до нього надходять завдання з диска. Такий процес називається спулінгом (spoling), відповідний програмно-апаратний механізм - спулом друкування.
Вимоги до сучасних опероаційних систем
Головною вимогою до операційної системи є виконання нею основних функцій ефективного управління ресурсами і забезпечення зручного інтерфейсу для користувача і прикладних програм. Сучасна ОС, як правило, повинна підтримувати мультипрограмну обробку, віртуальну пам'ять, свопінг, багатоканальний графічний інтерфейс користувача, а також виконувати багато інших необхідних функцій і послуг. Крім цих вимог функціональної повноти до операційних систем пред'являються не менш важливі експлуатаційні вимоги, що перераховані нижче.
1. Розширюваність. У той час як апаратна частина комп'ютера застаріває за кілька років, корисне життя операційних систем може вимірятися десятиліттями. Прикладом може служити ОС UNIX. Тому операційні системи завжди змінюються з часом эволюцюційно, і ці зміни більш значимі, чим зміни апаратних засобів. Зміни ОС звичайно полягають у придбанні нею нових властивостей, наприклад підтримці нових типів зовнішніх пристроїв чи нових мережевих технологій. Якщо код ОС написаний таким чином, що доповнення і зміни можуть вноситися без порушення цілісності системи, те таку ОС називають розширюваною. Розширюваність досягається за рахунок модульної структури ОС, при якій програми будуються з набору окремих модулів, взаємодіючих тільки через функціональний інтерфейс.
2. Переносимість. В ідеалі код ОС повинен легко переноситися з процесора одного типу на процесор іншого типу і з апаратної платформи (які розрізняються не тільки типом процесора, але і способом організації всієї апаратури комп'ютера) одного типу на апаратну платформу іншого типу. Переносимі ОС мають кілька варіантів реалізації для різних платформ, таку властивість ОС називають також багатоплатформеністю.
3. Сумісність. Існує кілька «долгоживущих» популярних операційних систем (різновиду UNIX, MS-DOS, Windows 3.x, Windows NT, OS/2), для яких напрацьована широка номенклатура застосувань (ужитків). Деякі з них користаються широкою популярністю. Тому для користувача, що переходить з тих чи інших причин з однієї ОС на іншу, дуже приваблива можливість запуску в новій операційній системі звичного застосування (ужитку). Якщо ОС має засоби для виконання прикладних програм, написаних для інших операційних систем, то про неї говорять, що вона має сумісність з цими ОС. Варто розрізняти сумісність на рівні двійкових кодів і сумісність на рівні вихідних текстів. Поняття сумісності включає також підтримку користувальницьких інтерфейсів інших ОС.
4. Надійність і відмовозахищеність. Система повинна бути захищена як від внутрішніх, так і від зовнішніх помилок, збоїв і відмов. Її дії повинні бути завжди передбачуваними, а застосування (ужитки) не повинні мати можливості наносити шкоду ОС. Надійність і відмовозахищеність ОС насамперед визначаються архітектурними рішеннями, покладеними в її основу, а також якістю її реалізації (відлагодженістю коду). Крім того, важливо, чи включає ОС програмну підтримку апаратних засобів забезпечення відмовозахищеності, таких, наприклад, як дискові масиви або джерела безперебійного живлення.
5. Безпека. Сучасна ОС повинна захищати дані й інші ресурси обчислювальної системи від несанкціонованого доступу. Щоб ОС мала властивість безпеки, вона повинна як мінімум мати у своєму складі засоби аутентифікації —- визначення легальності користувачів, авторизації — надання легальним користувачам диференційованих прав доступу до ресурсів, аудита — фіксації всіх «підозрілих» для безпеки системи подій. Властивість безпеки особливо важливо для мережевих ОС. У таких ОС до задачі контролю доступу додається задача захисту даних, переданих по мережі.
6. Продуктивність. Операційна система повинна мати настільки хорошу швидкодію і час реакції, наскільки це дозволяє апаратна платформа. На продуктивність ОС впливає багато факторів, серед яких основними є архітектура ОС, різноманіття функцій, якість програмування коду, можливість виконання ОС на високопродуктивній (багатопроцесорній) платформі