- •Вопросы и литература по курсу аос (по всем вопросам должен быть представлен краткий рукописный конспект в общей тетради)
- •Структура программного обеспечения персонального компьютера.
- •Понятие операционной системы персонального компьютера. Основные интерфейсы компьютерной системы.
- •Краткая история операционных систем.
- •Доисторический период
- •Первый период (1945-1955)
- •Управление файлами и внешними устройствами
- •Основные функциональные компоненты ос.
- •Подсистема управления процессами
- •Управления памятью
- •Защита данных и администрирование
- •Интерфейс прикладного программирования
- •Пользовательский интерфейс
- •Сетевые и распределенные операционные системы.
- •Требования к современным операционным системам.
- •Базовая архитектура операционной системы. Понятие ядра системы. Классификация операционных систем в зависимости от особенностей архитектуры ядра.
- •По архитектуре ядра системы можно разделить на:
- •-2) Слоистая архитектура ядра
- •Аппаратная зависимость и переносимость операционных систем.
- •Совместимость операционных систем и множественные прикладные среды.
- •Подсистема управления процессами, основные задачи. Понятие многозадачности.
- •Многозадачность в системах пакетной обработки, разделения времени и реального времени. Системы пакетной обработки.
- •Системы разделения времени
- •Системы реального времени
- •Состояния потока
- •Планирование и диспетчеризация потоков
- •Квантование – каждому потоку последовательно выделяется квант процессорного времени.
- •Алгоритмы планирования, основанные на приоритетах
- •Смешанные алгоритмы планирования
- •Приоритеты и концепции планирования потоков в Windows 2000, ос Unix System V и os/2. Система ос Unix System V Release 4
- •Система os/2
- •Система Windows 2000
- •Планирование процессов и потоков в системах реального времени.
- •Назначение
- •Механизм прерываний
- •Реализация системных вызовов. Использование механизма прерываний для реализации системных вызовов.
- •Понятие гонок
- •Критическая секция кода и исключение гонок
- •Блокирующие переменные
- •Понятие семафора и его использование для целей синхронизации.
- •Синхронизация и проблема тупиков.
- •Синхронизирующие объекты в операционных системах.
- •Методы распределения памяти
- •Фиксированные разделы
- •Динамические разделы
- •Перемещаемые разделы
- •Остальные методы требуют использования внешней памяти
- •Свопинг
- •Виртуальная память
- •Страничная организация памяти
- •2 Базисных свойства страничной организации:
- •Сегментное распределение памяти
- •Сегментно-страничное распределение
- •Организация виртуальной памяти, преобразование адреса.
- •Обмен данными между процессами на основе виртуальной памяти.
- •Аппаратная поддержка сегментной организации памяти в системах на основе процессоров с архитектурой ia32. Небольшое вступление про процессоры ia-32 и аппаратную поддержку мультипрограммирования
- •Регистры сегментов
- •Управляющие регистры:
- •Регистры системных адресов
- •Регистры отладки и тестирования
- •Средства поддержки сегментной организации памяти в процессорах Пентиум (собственно ответ на билет)
- •Итак, процесс обратился за памятью. Что происходит?
- •Защита данных в системах с сегментной организацией памяти на основе процессоров с архитектурой ia32.
- •Привилегии подробнее:
- •Смешанная сегментно-страничная организация памяти в системах на основе процессоров с архитектурой ia32. Трансляция адреса. Буфер ассоциативной трансляции (tlb).
- •Кэширование данных
- •Принципы работы кэш - памяти.
- •Проблема согласования данных.
- •Вытеснение данных из кэШа
- •Случайное отображение
- •Детерминированный способ отображения
- •Управление памятью в реальном режиме адресации на примере консоли Windows xp.
- •Задачи подсистемы управления внешними устройствами.
- •Организация параллельной работы устройств ввода-вывода и процессора
- •Согласование скоростей обмена
- •Разделение устройств и данных между процессами
- •Обеспечение удобного и логического интерфейса между устройствами и остальной частью системы
- •Поддержка широкого спектра драйверов с возможностью расширения
- •Динамическая загрузка и выгрузка драйверов.
- •Поддержка синхронных и асинхронных операций ввода-вывода
- •Поддержка нескольких файловых систем.
- •Типы файлов
- •Иерархическая структура фс
- •Имена файлов
- •Монтирование
- •У файла есть:
- •Логическая организация файла:
- •Физическая организация данных на диске.
- •Физическая организация файла.
- •Связанный спискок кластеров дисковой памяти
- •Связанный список индексов – фс фат.
- •Файловые операции.
- •Универсальные действия:
- •Стандартные файлы ввода и вывода, перенаправление ввода-вывода.
- •Файловые системы Unix (s5 и ufs).
- •Обзор семейства операционных систем Microsoft Windows.
- •Системный реестр: структура системного реестра Windows;
- •Импорт и экспорт данных системного реестра;
- •Предопределенные ключи системного реестра;
Реализация системных вызовов. Использование механизма прерываний для реализации системных вызовов.
Системный вызов позволяет приложению обратиться к ОС с просьбой выполнить то или иное действие (процедуру) ОС. ОС для программиста выглядит как библиотека системных вызовов, с помощью которых можно выполнять действия, запрещенные в пользовательском режиме (например, обмен данными с устройствами ввода - вывода).
Требования к реализации системных вызовов:
Обеспечивать переключение в защищенный режим
Обладать высокой скоростью вызова процедур ОС
Обеспечивать единообразное обращение к системным вызовам для всех аппаратных платформ, на которых работает ОС
Быть легко расширяемой новыми вызовами
Обеспечивать контроль со стороны ОС за корректным использованием вызовов.
Первое требование выполнимо только если реализовывать системные вызовы в виде программных прерываний.
(Некоторые из этих требований противоречат друг другу. Например, скорость работы требует векторных прерываний, но они привязывают нас к особенностям аппаратной платформы и не позволяют легко вводить новые прерывания.)
ОС может выполнять системные вызовы:
- по децентрализованной схеме
- по централизованной схеме (используется в большинстве ОС)
При централизованной обработке системных вызовов в ОС существует ДИСПЕТЧЕР СИСТЕМНЫХ ВЫЗОВОВ.
Перед выполнением прерывания приложение передает ОС:
- номер системного вызова (который будет индексом в таблице прерываний, реализующих системные вызовы)
* через стек
* через РОН
- агрументы для системного вызова
* через РОН
* через стек
* через массив
Потом приложение генерирует прерывание с определенным и единственным номером вектора (INT 2Eh – Windows NT, INT 80h - Линукс).
Диспетчер прерываний – простая программа, которая:
Сохраняет содержимое регистров процессора в системный стек
Проверяет, адекватный ли номер вызова поступил (не вышел ли за границу таблицы системных вызовов)
Передает управление соответствующей процедуре ОС для реализации системного вызова.
А уже процедура ОС извлекает из системного стека аргументы и выполняет заданное действие. Если системный вызов сложный, то она вызывает необходимые модули из подсистемы управления памятью, ввода-вывода и тд.
После завершения работы процедура возвращает управление диспетчеру прерываний, кроме этого передает ему КОД завершения вызова.
Диспетчер восстанавливает регистры процессора, помещает КОД в определенный регистр и выполняет инструкцию возврата из прерывания (восстанавливает непривилегированный режим работы процессора).
Это т.н табличный способ организации системных вызовов, он принят практически во всех ОС, легко расширяем.
ОС может выполнять системные вызовы:
- в синхронном режиме
- в асинхронном режиме
Синхронный системный вызов (блокирующий) – процесс делает вызов, потом честно останавливается, ждет его результатов, после чего может возобновить работу.
Асинхронный системный вызов – процесс делает вызов и продолжает работу, периодически проверяя, не готовы ли уже нужные ему данные.
Большинство системных вызовов синхронны, но в последнее время асинхронные вызовы используются все чаще. Это дает больше возможностей разработчиками сложных приложений, кроме того, они особенно нужны в ОС на основе микроядерной архитектуры (в таких ОС часть ОС работает в пользовательском режиме, и этой части нужно свободно организовывать свою работу.)
Основы синхронизации процессов и потоков. Понятие гонок. Критическая секция кода и исключение гонок. Блокирующие переменные. Понятие семафора и его использование для целей синхронизации. Синхронизация и проблема тупиков. Синхронизирующие объекты в операционных системах.
Основы синхронизации процессов и потоков
С возникновением мультипрограммирования появилась проблема синхронизации. Эта проблема связана с совместным использованием ресурсов компа разными процессами и потоками.
Средства синхронизации называются еще IPC – inter process communication – это средства межпроцессной коммуникации и межпроцессного обмена данными.
Выполнение потока в мультипрограммной среде всегда носит асинхронный характер – никогда нельзя предугадать, когда именно будет выполняться то или иное действие. Все потоки выполняются независимо и асинхронно друг по отношению к другу.
Но в ситуации, когда потокам нужно взаимодействовать между собой или использовать разделяемые ресурсы, потоки нужно синхронизировать.
Для синхронизации программист может использовать:
- собственные средства (написать свою глобальную переменную, в которую заносить состояние синхронизируемого объекта)
- воспользоваться готовыми средствами синхронизации ОС. ОС обычно предоставляет широкий спектр средств синхронизации, так что это предпочтительнее.
Средства ОС могут быть функционально специализированными:
- для синхронизации потоков одного процесса
- для синхронизации потоков разных процессов и тд.
