Ядро ОС. Модель клиент-сервер и микроядро.
Модель клиент-сервер построена на базе микроядра. Ядро ОС - набор подпрограмм, предназначенных для организации работы всей ОС. В него входят функции: управления памятью, процессами, работа с внешними устройствами. Подход микроядра заключается в том, чтобы в составе самого ядра оставить минимальный набор подпрограмм, а все остальные функции возложить на отдельный модуль или сервис.
Сервер – поставщик какой-либо услуги, клиент – потребитель.
Эта модель используется в БД, сетевых обработках и т.д.
Сбои касаются только сетевой модели.
1) сбоившее приложение может быть прекращено и запущено заново
2) функции ОС можно легко расширять
Скорость работы системы чуть падает, так как на системный вызов уходит немного больше времени, чем на вызов подпрограммы. С концепцией клиент-сервер тесно связано понятие микроядра.
Суть в том, чтобы в ядре остался минимальный набор функций.
1) для организации многозадачности
2) для реализации системных вызовов
3) для обработки прерываний
Все остальные функции вынесены в виде серверов.
Функция, отвечающая за переключение процессов, а в сервере – функция, которая принимает решение, какому процессу дать ход.
Таким образом, достаточно внести изменение в подпрограммы микроядра. ОС, реализующих в чистом виде модель с микроядром, нет из соображений производительности. В первых версиях Windows графический интерфейс реализован отдельно, а в последних версиях – он входит в состав ядра. Использование микроядра совсем не означает, что ОС занимает мало места. Минимально было необходимо для Win 4.0 – 16 mb.
Модель клиент-сервер подходит для распределенных систем.
Распределенные и сетевые ОС
Сетевые ОС: пользователи сетевых ОС знают о том, что есть другие компьютеры, они могут удалённо подключаться и пользоваться их ресурсами. Каждый компьютер является полностью автономным и не зависит от других. Обладает собственным списком пользователей. Реализуется путём добавления малого куска кода к ОС (драйвер сетевого адаптера)
Распределенные ОС: Представляется традиционной ОС, хотя она и состоит из множества компьютеров. Пользователи не знают, на каком компьютере находятся их файлы, где выполняются программы. Все задачи доступа к файлам выполняют программы. Они поддерживают ОС. Они сложнее сетевых ОС.
Классификация ОС
От эффективности алгоритмов управления локальными ресурсами компьютера во многом зависит эффективность всей сетевой ОС в целом. Поэтому, характеризуя сетевую ОС, часто приводят важнейшие особенности реализации функций ОС по управлению процессорами, памятью, внешними устройствами автономного компьютера. Так, например, в зависимости от особенностей использованного алгоритма управления процессором, операционные системы делят на многозадачные и однозадачные, многопользовательские и однопользовательские, на системы, поддерживающие многонитевую обработку и не поддерживающие ее, на многопроцессорные и однопроцессорные системы.
Поддержка многозадачности. По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:
- однозадачные (например, MS-DOS, MSX) и
- многозадачные (OC EC, OS/2, UNIX, Windows 95).
Однозадачные ОС в основном выполняют функцию предоставления пользователю виртуальной машины, делая более простым и удобным процесс взаимодействия пользователя с компьютером. Однозадачные ОС включают средства управления периферийными устройствами, средства управления файлами, средства общения с пользователем.
Многозадачные ОС, кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.
Поддержка многопользовательского режима.По числу одновременно работающих пользователей ОС делятся на:
- однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);
- многопользовательские (UNIX, Windows NT).
Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей. Следует заметить, что не всякая многозадачная система является многопользовательской, и не всякая однопользовательская ОС является однозадачной.
Вытесняющая и невытесняющая многозадачность. Важнейшим разделяемым ресурсом является процессорное время. Способ распределения процессорного времени между несколькими одновременно существующими в системе процессами (или нитями) во многом определяет специфику ОС. Среди множества существующих вариантов реализации многозадачности можно выделить две группы алгоритмов:
- невытесняющая многозадачность (NetWare, Windows 3.x);
- вытесняющая многозадачность (Windows NT, OS/2, UNIX).
Основным различием между вытесняющим и невытесняющим вариантами многозадачности является степень централизации механизма планирования процессов. В первом случае механизм планирования процессов целиком сосредоточен в операционной системе, а во втором - распределен между системой и прикладными программами. При невытесняющей многозадачности активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы та выбрала из очереди другой готовый к выполнению процесс. При вытесняющей многозадачности решение о переключении процессора с одного процесса на другой принимается операционной системой, а не самим активным процессом.
Поддержка многонитевости.Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одной задачи. Многонитевая ОС разделяет процессорное время не между задачами, а между их отдельными ветвями (нитями).
Многопроцессорная обработка.Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами.
В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.
Многопроцессорные ОС могут классифицироваться по способу организации вычислительного процесса в системе с многопроцессорной архитектурой: асимметричные ОС и симметричные ОС. Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами.
Выше были рассмотрены характеристики ОС, связанные с управлением только одним типом ресурсов - процессором. Важное влияние на облик операционной системы в целом, на возможности ее использования в той или иной области оказывают особенности и других подсистем управления локальными ресурсами - подсистем управления памятью, файлами, устройствами ввода-вывода.
Специфика ОС проявляется и в том, каким образом она реализует сетевые функции: распознавание и перенаправление в сеть запросов к удаленным ресурсам, передача сообщений по сети, выполнение удаленных запросов. При реализации сетевых функций возникает комплекс задач, связанных с распределенным характером хранения и обработки данных в сети: ведение справочной информации о всех доступных в сети ресурсах и серверах, адресация взаимодействующих процессов, обеспечение прозрачности доступа, тиражирование данных, согласование копий, поддержка безопасности данных