П принцип экзоядра, все отдать пользовательским программам. Например, зачем нужна файловая система? Почему не позволить пользователю просто читать и писать участки диска защищенным образом? Т.е. каждая пользовательская программа сможет иметь свою файловую систему. Такая операционная система должна обеспечить безопасное распределение ресурсов среди соревнующихся за них пользователей.
В развитии современных операционных систем наблюдается тенденция в сторону дальнейшего переноса задач из ядра в уровень пользовательских процессов, оставляя минимальное микроядро. В этой модели вводятся два понятия:
- Серверный процесс (который обрабатывает запросы)
- Клиентский процесс (который посылает запросы)
В задачу ядра входит только управление связью между клиентами и серверами.
Модель клиент-сервер. Это разделение труда между компьютерами. Компьютеры, предоставляющие услуги, которые используют другие компьютеры, называются серверами. Компьютер, который пользуется услугами другого компьютера, называется клиентом. Преимущества:
- Малый код ядра и отдельных подсистем, и как следствие меньшее содержание ошибок.
- Ядро лучше защищено от вспомогательных процессов.
- Легко адаптируется к использованию в распределенной системе.
Недостатки:
- Уменьшение производительности.
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. Диспетчеризация процесса.
Одной из важных задач, которую решает ОС является проблема, связанная с определением когда и каким процессам следует выделять ресурсы процессора — задача планирования загрузки процессоров. Существуют три уровня такого планирования (см. рисунок сверху)
Поскольку процессы часто одновременно претендуют на одни и те же ресурсы, то в обязанности ОС входит поддержание очередей заявок процессов на ресурсы, например очереди к процессору, к принтеру, к последовательному порту. Важной задачей операционной системы является защита ресурсов, выделенных данному процессу, от остальных процессов. Одним из наиболее тщательно защищаемых ресурсов процесса являются области оперативной памяти, в которой хранятся коды и данные процесса. Совокупность всех областей оперативной памяти, выделенных операционной системой процессу, называется его адресным пространством. Говорят, что каждый процесс работает в своем адресном пространстве, имея в виду защиту адресных пространств, осуществляемую ОС. Защищаются и другие типы ресурсов, такие как файлы, внешние устройства и т. д. Операционная система может не только защищать ресурсы, выделенные одному процессу, но и организовывать их совместное использование, например, разрешать доступ к некоторой области памяти нескольким процессам.
В системе разделения времени ядро предоставляет процессу ресурсы центрального процессора (ЦП) на интервал времени, по истечении которого выгружает этот процесс и запускает другой, периодически переупорядочивая очередь процессов. Алгоритм планирования процессов использует время выполнения в качестве параметра. Каждый активный процесс имеет приоритет планирования; ядро переключает контекст на процесс с наивысшим приоритетом. При переходе выполняющегося процесса из режима ядра в режим задачи ядро пересчитывает его приоритет, периодически и в режиме задачи переустанавливая приоритет каждого процесса, готового к выполнению.
Диспетчеризация сводится к следующему:
- сохранение контекста текущего потока, который требуется сменить;
- загрузка контекста нового потока, выбранного в результате планирования;
- запуск нового потока на выполнение.