
- •1) Технологии проектирования операционных систем (микроядерные, монолитные ос, технология клиент - сервер)
- •2) Объектно-ориентированный подход в проектировании операционных систем.
- •3) Основные принципы проектирования операционных систем
- •4) Модульное программирование ос. Привилегированные, непривилегированные, рентабельные модули.
- •5) Управление процессами в многозадачных средах. Контекст и дескриптор процесса.
- •Состояния процессов
- •6) Управление процессами в многозадачных средах.
- •7. Методы синхронизации параллельно выполняющихся процессов. Взаимные исключения. Семафоры
- •8. Методы синхронизации параллельно выполняющихся процессов. Блокирующие переменные. Мониторы Хоара.
- •9. Управление процессами в многозадачных средах.
- •10) Логическая организация файловой системы. Файлы прямого, последовательного доступа, индексные файлы.
- •11) Физическая организация файлов на диске.
- •13) Файловая система ext. Особенности ее реализации.
- •14 Типы файловых систем
- •15) Общая модель современной файловой системы.
- •16) Методы защиты данных в ос unix.
- •17) Странично-сегментное управление памятью.
- •18) Виртуальные ресурсы. Виртуальная память. Свопинг.
- •19) Обеспечение эффективности обработки данных. Иерархия зу. Кэширование. Буферизация данных.
- •20) Управление устройствами ввода/вывода.
- •Прерывания и способы их обработки
- •Драйверы устройств
- •21) Управление устройствами ввода/вывода. Спулинг.
- •22) Компиляторы. Лексический анализатор. Дескрипторный текст программы.
- •23) Компиляторы. Синтаксический анализатор. Методы построения синтаксического дерева вывода.
- •24) Компиляторы. Семантический анализатор. Генерация, оптимизация кода программы.
- •25) Распределение оп при выполнении программ.
3) Основные принципы проектирования операционных систем
1 Принцип функциональной избирательности – в ОС выделяется некоторая часть важных модулей, которая постоянно должна находится в ОП для более эффективной организации вычислительного процесса. Эту часть наз ядром. Помимо программных модулей есть транзактные модули, кот загружаются в ОП по мере необходимости.
3. Принцип функциональной избыточности – этот принцип учитывает возможность проведения одной и той же работы разными способами.
4. Принцип виртуализации. Исп. понятие виртуальная машина - любая ОС является средством распределения ресурсов организуя по определенным правилам управление процессами, скрывает от пользователей и его приложений реальные аппаратные ресурсы. В результате пользователь использует виртуальную машины как некое устройство способное воспринимать и выполнять команды .
5. Принцип совместимости – совместимость - способность ОС выполнять проги написанные для других ОС или для более ранних версий данной ОС, а также для другой аппаратной платформы.
6. Принцип открытой и наращиваемой ОС – открытая ОС доступна для анализа системным специалистам обслуживающим ВЧ (ос семейства unix). Наращиваемая (модифицируемая) ОС позволяет вводить в состав ОС новые модули , совершенствовать существующие.
7. Принцип мобильности (переносимости) – при написании переносимой ОС руководствуются правилами: 1) большая часть ОС должна быть написана на языке который имеется во всех системах на которые в дальнейшем планируется ОС (на стандартизированном машинонезависимом языке СИ), 2) необходимо минимизировать те части кода которые непосредственно взаимодействуют с аппаратными средствами такие коды рекомендуется помещать в изолир модули при переносимости ОС с одной платформы на другую переписываются только они.
ОС является сердцевиной сетевого программного обеспечения, она создает среду для выполнения приложений и во многом определяет, какими полезными для пользователя свойствами эти приложения будут обладать. В связи с этим рассмотрим требования, которым должна удовлетворять современная ОС.
Главным требованием, предъявляемым к ОС, является способность выполнения основных функций: эффективного управления ресурсами и обеспечения удобного интерфейса для пользователя и прикладных программ. Современная ОС, как правило, должна реализовывать мультипрограммную обработку, виртуальную память, свопинг, поддерживать многооконный интерфейс, а также выполнять многие другие, совершенно необходимые функции. Кроме этих функциональных требований к операционным системам предъявляются не менее важные рыночные требования. К этим требованиям относятся:
• Расширяемость. Код должен быть написан таким образом, чтобы можно было легко внести дополнения и изменения, если это потребуется, и не нарушить целостность системы. Расширяемость может достигаться за счет модульной структуры ОС, при которой программы строятся из набора отдельных модулей, взаимодействующих только через функциональный интерфейс. Новые компоненты могут быть добавлены в ОС модульным путем, они выполняют свою работу, используя интерфейсы, поддерживаемые существующими компонентами.
Прекрасные возможности для расширения предоставляет подход к структурированию ОС по типу клиент-сервер с использованием микроядерной технологии. В соответствии с этим подходом ОС строится как совокупность привилегированной управляющей программы и набора непривилегированных услуг-серверов. Основная часть ОС может оставаться неизменной в то время, как могут быть добавлены новые серверы или улучшены старые.
• Переносимость. Код должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы (которая включает наряду с типом процессора и способ организации всей аппаратуры компьютера) одного типа на аппаратную платформу другого типа, делая при этом по возможности небольшие изменения в коде.
• Надежность и отказоустойчивость. Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. Ее действия должны быть всегда предсказуемыми, а приложения не должны быть в состоянии наносить вред ОС.
• Совместимость. ОС должна иметь средства для выполнения прикладных программ, написанных для других операционных систем. Кроме того, пользовательский интерфейс должен быть совместим с существующими системами и стандартами.
• Безопасность. ОС должна обладать средствами защиты ресурсов одних пользователей от других.
• Производительность. Система должна обладать настолько хорошим быстродействием и временем реакции, насколько это позволяет аппаратная платформа.