- •Вопросы и литература по курсу аос (по всем вопросам должен быть представлен краткий рукописный конспект в общей тетради)
- •Структура программного обеспечения персонального компьютера.
- •Понятие операционной системы персонального компьютера. Основные интерфейсы компьютерной системы.
- •Краткая история операционных систем.
- •Доисторический период
- •Первый период (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;
- •Импорт и экспорт данных системного реестра;
- •Предопределенные ключи системного реестра;
Методы распределения памяти
Разные ОС по-разному распределяют память между процессами
Методы распределения памяти можно разделить на:
- без использования внешней памяти
- фиксированными разделами
- динамическими разделами
- перемещаемыми разделами
- с использованием внешней памяти
- страничное распределение
- сегментное распределение
- сегментно-страничное распределение
Фиксированные разделы
Наиболее простой и примитивный способ распределения памяти. Во время старта или загрузки системы память разбивается на разделы фиксированной величины, после чего границы разделов не сдвигаются.
Новый процесс поступает либо в общую очередь, либо в очередь конкретного раздела.
Система:
- сравнивает требуемый объем памяти с памятью раздела
- загружает программу в один из разделов и настраивает адреса
Недостаток системы:
- жесткость
- уровень мультипрограммирования заранее ограничен числом разделов
- невозможно выполнить прогу, которая больше самого большого раздела
Все же используется в системах реального времени, т.к. там детерминированность компенсирует недостаточную гибкость.
Динамические разделы
Память изначально свободна и не разбита на разделы
При поступлении процесса на исполнение ей выдается столько памяти, сколько нужно, если памяти не хватает, то процесс не исполняется
После завершения процесса память освобождается
ОС должна:
- вести таблицы свободных и занятых областей
- анализировать требования к памяти при создании нового процесса, подыскивать ему незанятую область
- загружать процесс в выделенный ему раздел, корректировать таблицы
- корректировать таблицы после завершения процесса
Плюсы:
- гибче
Минусы – фрагментация памяти.
Так организована память в ОС/360
Перемещаемые разделы
Выделение памяти перемещаемыми разделами призвано решить проблему фрагментации. Суть его – сжатие, то есть перемещение всех занятых участков в сторону старших или младших адресов, чтобы вся свободная память собралась в одном месте.
Ко всем функциям, исполняемым ОС в динамических разделах, добавляется сжатие, которое должно производиться:
- либо при каждом завершении процесса
- либо когда для нового процесса не хватает места.
Физические адреса здесь постоянно меняются, поэтому перемещающий загрузчик для их настройки использовать нельзя, нужно динамическое преобразование адресов.
Минусы:
- затраты времени
Остальные методы требуют использования внешней памяти
Сейчас пару слов про внешнюю память (свопинг и виртуальную память)
Программа для ее выполнения должна находиться в оперативной памяти.
А процессору для адекватной загрузки нужно довольно большое количество задач, особенно если задачи не вычислительного характера, а больше связаны с ожиданием ввода-вывода.
Итак, нам надо много задач для загрузки процессора, но в оперативную память столько не влезет.
Поэтому было предложено попеременно выгружать неактивные задачи (заблоченные, ожидающие ввода-вывода, готовые, но в очереди на исполнение) с оперативы на диск.
Такая подмена называется ВИРТУАЛИЗАЦИЕЙ – и она здорово помогает повысить уровень мультипрограммирования, т.к. теперь объем оперативы не так жестко ограничивает количество одновременно выполняемых задач.
Виртуальный ресурс – это такой ресурс, который для пользователя вроде как обладает определенными свойствами, но на самом деле их у него нет.
Работа такой виртуальной памяти будет значительно МЕДЛЕННЕЕ.
Что должна делать ОС для поддержки виртуальной памяти:
- размещать часть кодов исполняемых прог в памяти – часть – на диске.
- выбирать нужные образы процессов для перемещения их в/из оперативы;
- перемещать данные между памятью и диском
- преобразовывать виртуальные адреса в физические
- все это она должна делать сама, автоматически, чтобы у прикладного программиста не болела голова.
/* Первая попытка использовать внешнюю память – оверлеи.
Программист разбивал свою прогу на части, которые выполняли работу по очереди: один оверлей закончил – второй загрузился и начал работу.
То есть бедные программисты должны были все это учитывать, морока, в общем.*/
Существует 2 основных подхода к организации виртуализации памяти:
- свопинг
- виртуальная память
