Модель экзоядра. Микроядерная архитектура (модель «клиент–сервер»)




П принцип экзоядра, все отдать пользовательским программам. Например, зачем нужна файловая система? Почему не позволить пользователю просто читать и писать участки диска защищенным образом? Т.е. каждая пользовательская программа сможет иметь свою файловую систему. Такая операционная система должна обеспечить безопасное распределение ресурсов среди соревнующихся за них пользователей.

В развитии современных операционных систем наблюдается тенденция в сторону дальнейшего переноса задач из ядра в уровень пользовательских процессов, оставляя минимальное микроядро. В этой модели вводятся два понятия:

  • Серверный процесс (который обрабатывает запросы)
  • Клиентский процесс (который посылает запросы)

В задачу ядра входит только управление связью между клиентами и серверами.
Модель клиент-сервер. Это разделение труда между компьютерами. Компьютеры, предоставляющие услуги, которые используют другие компьютеры, называются серверами. Компьютер, который пользуется услугами другого компьютера, называется клиентом. Преимущества:

  • Малый код ядра и отдельных подсистем, и как следствие меньшее содержание ошибок.
  • Ядро лучше защищено от вспомогательных процессов.
  • Легко адаптируется к использованию в распределенной системе.

Недостатки:

  • Уменьшение производительности.

4. Структура операционной системы Windows
Структура операционной системы.

Архитектура операционных систем Windows XP и Windows Server 2003 является модульной. Структурно ее можно разделить на две части.
Первая часть работает в режиме ядра (kernel mode) и называется исполнительной системой Windows (Windows executive). Компоненты режима ядра обладают следующими функциональными возможностями:

  • имеют доступ к оборудованию;
  • имеют прямой доступ ко всем видам памяти компьютера;
  • не выгружаются на жесткий диск в файл подкачки;
  • имеют более высокий приоритет, нежели процессы режима пользователя.


Вторая часть работает в так называемом режиме пользователя (user mode) Эту часть составляют защищенные подсистемы ОС. Особенности процессов пользовательского режима:

  • не имеют прямого доступа к оборудованию, все запросы на использование аппаратных ресурсов должны быть разрешены компонентом режима ядра;
  • ограничены размерами выделенного адресного пространства, это ограничение устанавливается выделением процессу фиксированных адресов;
  • могут быть выгружены из физической памяти в виртуальную на жестком диске;
  • приоритет процессов данного типа ниже приоритета процессов режима ядра, это предохраняет ОС от снижения производительности или задержек, происходящих по вине приложений.

·

Уровень абстрагирования от оборудования (Hardware Abstraction Layer, HAL). Его задачей является отделение операционной системы от особенностей конкретных реализаций в аппаратном обеспечении компьютера, т. е. от различий в материнских платах, в модификациях процессоров, в наборах микросхем и др. Благодаря этому уровню управление подсистемами прерываний, прямого доступа к памяти, системными шинами и таймерами для ядра операционной системы является одинаковым. Уровень HAL реализован в системном файле Hal.dll.

 

5. Структура операционной системы Linux
Linux - это многопользовательская, многозадачная операционная система с открытым исходным кодом, которая конкурирует с системами Microsoft Windows и Apple Macintosh.
История Linux началась в 1969 году с создания MULTICS. Затем бабушки UNIX, и, наконец, основа - ОС MINIX. За которой и последовала более мощная и при этом абсолютно бесплатная система LINUX, первое ядро которой было написано Линусом Торвальдсом в 1991 году.
Linux состоит из четырех основных частей:
Ядро
Ядро Linux представляет собой единый блок бинарного кода. Все коды ядра и структуры данных, в том числе драйверы устройств, коды распределения ресурсов и виртуальной памяти, сетевой поддержки, а так же файловая система - хранятся в едином адресном пространстве. Преимуществом такой структуры является то, что не требуется никаких переключений при запросах процессами системных ресурсов или прерываниях от различных устройств.

Общее адресное пространство, однако, не препятствует модульности системы. По мере необходимости Linux подгружает в память либо выгружает из нее указанные модули.

В Linux все ядро работает в привилегированном режиме - режиме ядра. Никакая часть кода не работает в режиме пользователя. Фрагменты поддержки ОС, не требующие запуска в режиме ядра, помещаются в раздел системных библиотек.
Программы
Тысячи программ для работы с файлами, текстовые редакторы, математические программы, программы для работы с аудио- и видеоинформацией, для создания веб-сайтов, шифрования, записи компакт-дисков и т.д.
Командный процессор (shell)
Пользовательский интерфейс для набора команд, их исполнения и отображения результатов. Существуют различные командные процессоры: Bourne shell, Korn shell, C shell, Bourne Again Shell и др. Тем не менее, все эти командные процессоры имеют схожие основные функции.
GUI
Это графическая система, которая обеспечивает поддержку окон, меню, иконок, мыши и других известных элементов GUI - графического интерфейса пользователя. На основе X строятся более сложные графические среды; наиболее популярные из них - KDE и GNOME.

6. Понятие программного интерфейса, его назначение. Виды интерфейсов.
Интерфейс - совокупность технических, программных и методических (протоколов, правил, соглашений) средств сопряжения в вычислительной системе пользователей с устройствами и программами, а также устройств с другими устройствами и программами.

 

Интерфейс - в широком смысле слова, это способ (стандарт) взаимодействия между объектами. Интерфейс в техническом смысле слова задаёт параметры, процедуры и характеристики взаимодействия объектов. Различают:

Интерфейс пользователя - набор методов взаимодействия компьютерной программы и пользователя этой программы.

Программный интерфейс - набор методов для взаимодействия между программами.

Физический интерфейс - способ взаимодействия физических устройств. Чаще всего речь идёт о компьютерных портах.


Пользовательский интерфейс
- это совокупность программных и аппаратных средств, обеспечивающих взаимодействие пользователя с компьютером. Основу такого взаимодействия составляют диалоги. Под диалогом в данном случае понимают регламентированный обмен информацией между человеком и компьютером, осуществляемый в реальном масштабе времени и направленный на совместное решение конкретной задачи. Каждый диалог состоит из отдельных процессов ввода / вывода, которые физически обеспечивают связь пользователя и компьютера. Обмен информацией осуществляется передачей сообщения.
Современными видами интерфейсов(!) являются:

1) Командный интерфейс. Командный интерфейс называется так по тому, что в этом виде интерфейса человек подает "команды" компьютеру, а компьютер их выполняет и выдает результат человеку. Командный интерфейс реализован в виде пакетной технологии и технологии командной строки.

2) WIMP (Проще сказать, Графический) - интерфейс (Window - окно, Image - образ, Menu - меню, Pointer - указатель). Характерной особенностью этого вида интерфейса является то, что диалог с пользователем ведется не с помощью команд, а с помощью графических образов - меню, окон, других элементов. Хотя и в этом интерфейсе подаются команды машине, но это делается "опосредственно", через графические образы. Этот вид интерфейса реализован на двух уровнях технологий: простой графический интерфейс и "чистый" WIMP - интерфейс.

3) SILK (Проще говоря, Голосовой) - интерфейс (Speech - речь, Image - образ, Language - язык, Knowlege - знание). Этот вид интерфейса наиболее приближен к обычной, человеческой форме общения. В рамках этого интерфейса идет обычный "разговор" человека и компьютера. При этом компьютер находит для себя команды, анализируя человеческую речь и находя в ней ключевые фразы. Результат выполнения команд он также преобразует в понятную человеку форму. Этот вид интерфейса наиболее требователен к аппаратным ресурсам компьютера, и поэтому его применяют в основном для военных целей.

7. Понятие прерывания.
Прерывание
(англ. interrupt) — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.
В зависимости от источника возникновения сигнала прерывания делятся на:

  • асинхронные, или внешние (аппаратные) — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание (англ. Interrupt request, IRQ);
  • синхронные, или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение стека, обращение к недопустимым адресам памяти или недопустимый код операции;
  • программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания, как правило, используются для обращения к функциям встроенного программного обеспечения (firmware), драйверов и операционной системы.

8. Понятия процесс, поток.
Проце́сс
— программа, которая выполняется в текущий момент.Компьютерная программа сама по себе — это только пассивная совокупность инструкций, в то время как процесс — это непосредственное выполнение этих инструкций. Также, процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д. Обычно, процесс в вычислительной системе представлен (также говорят, «владеет») следующими ресурсами:

  • образом исполняемого машинного кода, ассоциированного с программой;
  • памятью (обычно некоторой областью виртуальной памяти), которая включает в себя:
    • исполняемый код;
    • входные и выходные данные процесса;
    • стек вызовов (для отслеживания активных подпрограмм);
    • кучу для хранения промежуточных результатов вычислений, генерируемых во время выполнения;
  • дескрипторами ресурсов операционной системы, выделенными для процесса, например, файловыми дескрипторами (в терминологии ОС Unix) или «хэндлами» (в терминологии ОС Windows);
  • атрибутами безопасности, такими как владелец и набор полномочий процесса (допустимых операций);
  • состоянием процессора (контекстом), таким как:
    • содержимое регистров;
    • схема преобразования виртуальных адресов в физические;
    • и т. д.


Контекст текущего процесса выгружается в память, когда выполняется переключение на другой процесс.

9. Диспетчеризация процесса.
Одной из важных задач, которую решает ОС является проблема, связанная с определением когда и каким процессам следует выделять ресурсы процессора — задача планирования загрузки процессоров. Существуют три уровня такого планирования (см. рисунок сверху)

Поскольку процессы часто одновременно претендуют на одни и те же ресурсы, то в обязанности ОС входит поддержание очередей заявок процессов на ресурсы, например очереди к процессору, к принтеру, к последовательному порту. Важной задачей операционной системы является защита ресурсов, выделенных данному процессу, от остальных процессов. Одним из наиболее тщательно защищаемых ресурсов процесса являются области оперативной памяти, в которой хранятся коды и данные процесса. Совокупность всех областей оперативной памяти, выделенных операционной системой процессу, называется его адресным пространством. Говорят, что каждый процесс работает в своем адресном пространстве, имея в виду защиту адресных пространств, осуществляемую ОС. Защищаются и другие типы ресурсов, такие как файлы, внешние устройства и т. д. Операционная система может не только защищать ресурсы, выделенные одному процессу, но и организовывать их совместное использование, например, разрешать доступ к некоторой области памяти нескольким процессам.

В системе разделения времени ядро предоставляет процессу ресурсы центрального процессора (ЦП) на интервал времени, по истечении которого выгружает этот процесс и запускает другой, периодически переупорядочивая очередь процессов. Алгоритм планирования процессов использует время выполнения в качестве параметра. Каждый активный процесс имеет приоритет планирования; ядро переключает контекст на процесс с наивысшим приоритетом. При переходе выполняющегося процесса из режима ядра в режим задачи ядро пересчитывает его приоритет, периодически и в режиме задачи переустанавливая приоритет каждого процесса, готового к выполнению.
Диспетчеризация сводится к следующему:

- сохранение контекста текущего потока, который требуется сменить;

- загрузка контекста нового потока, выбранного в результате планирования;

- запуск нового потока на выполнение.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-08-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: