- Операционная система должна полностью контролировать использование и распределение аппаратных ресурсов. Поэтому большинство процессоров поддерживают как минимум два режима работы:
- в режиме ядра (kernel mode) выполняются все разрешенные инструкции, а в ходе выполнения доступна вся имеющаяся память и любые регистры
-
- в пользовательском режиме (user mode) доступ к регистрам и памяти ограничен. Так, приложению не будет позволено работать с памятью за пределами набора адресов, установленного для него операционной системой, или обращаться напрямую к регистрам устройств.
Режимы работы монолитной ОС - Код операционной системы процессор выполняет в режиме ядра
- Единственный способ перейти из пользовательского режима в режим ядра — это сделать системный вызов, реализуемый через операционную систему
- Поскольку системные вызовы — это лишь базовые службы, предоставляемые операционной системой, и поскольку ограничение доступа к памяти и регистрам нередко реализуется аппаратно, операционная система в состоянии полностью их контролировать
Монолитные операционные системы - Существование двух режимов работы привело к такой организации операционных систем, при которой практически весь их код выполняется в режиме ядра.
- Результатом часто становятся гигантские монолитные программы, работающие в едином адресном пространстве.
- Оборотная сторона такого подхода состоит в том, что перенастроить систему часто бывает нелегко.
- Другими словами, заменить или адаптировать компоненты операционной системы без полной перезагрузки, а возможно и полной перекомпиляции и новой установки очень трудно.
- С точки зрения открытости, проектирования программ, надежности или легкости обслуживания монолитные операционные системы — это не самая лучшая из идей.
Do'stlaringiz bilan baham: |