
- •1.Определение ос. Ос как виртуальная машина и как диспетчер аппаратных и прораммных ресурсов.
- •2.Назначение и основные функции ос. Классификация ос. Варианты классификации.
- •5.Многопроцессорные ос. Симметричная и несимметричная параллельная обработка.
- •3.Эволюция ос. Современные ос, их характеристики и области применения.
- •4.Однозадачные и многозадачные ос. Преимущества многозадачности и ее реализация в ос.
- •Сетевые компоненты ос.
- •Оc с разделением времени. Основные свойства, классы решаемых задач. Примеры современных реализаций.
- •Ос реального времени. Жесткие и нежесткие системы. Интерфейс с внешней средой.
- •Операционные системы unix. Основные линии развития (at&t и bsd unix). Современные реализации для пэвм.
- •Операционные системы Microsoft Windows. Основные версии и реализации, их характеристики и свойства.
- •Современные типы ос для пэвм. Назначение, характеристики и свойства.
- •Функциональная организация (структура) типовой многозадачной ос. Базовые функциональные подсистемы. Ядро и пользовательский слой ос.
- •Архитектурные принципы (принципы разработки и организации) современной мультипрограммной ос. Модульная структура ос.
- •Подсистема планирования (управления) процессов и потоков в ос. Понятие процесса, потока и ресурса. Типы ресурсов. Информационные структуры процесса (потока).
- •Жизненный цикл процесса. Диаграмма состояний. Переходы между состояниями. Диаграмма состояний потоков в ос ms Windows (2000/xp).
- •16. Алгоритмы планирования. Квантование времени (вытеснение). Планирование на основе приоритетов. Приоритетное планирование потоков в ms Windows (2000/xp).
- •Организация взаимодействия (синхронизация) параллельных процессов и потоков. Эффект гонок. Критическая секция. Типовые задачи синхронизации.
- •Системные механизмы для синхронизации потоков. Блокирующие переменные, мьютексы, семафоры.
- •Подсистема управления памятью. Основные функции. Сегментная и страничная программные модели памяти.
- •Концепция виртуальной памяти. Трансляция виртуальных адресов.
- •Иерархическая организация памяти эвм. Принцип кэширования. Устройство кэш-памяти (созу) на процессоре. Алгоритмы работы кэш-памяти.
- •Алгоритмы распределения основной памяти эвм.
- •Страничный обмен (замещение), как метод реализации виртуальной памяти. Таблицы страниц процесса. Свопинг процессов.
- •Структура виртуального адресного пространства процесса в ms Windows nt (2000/xp).
- •Архитектура (модель) ос ms Windows nt (2000/xp). Компоненты ядра и компоненты пользовательского режима. Файловое дерево ос ms Windows на загрузочном томе.
- •Порядок и основные процедуры для загрузки ос на аппаратной платформе ibm-совместимых пэвм. Мультисистемная организация, диспетчеры загрузки ос.
- •Подсистема ввода-вывода ос. Буферизация обмена данными между внешней и основной памятью. Дисковый (системный) кэш.
- •Управление устройствами (аппаратурой) в ос. Независимость программ от устройств. Типы устройств. Драйверная подсистема ос. Модель драйвера в ос Windows.
- •Файловая система ос (fs). Внешняя модель (архитектура) fs. Правила именования и пространства имен в ос Windows. Элементы полного имени. Типы файловых объектов и их атрибуты.
- •Внутренняя организация файловой системы (fs). Системные данные fs на томе. Типы файловых систем.
- •Множественность файловых систем (fs) современных ос. Файловые системы ос Windows: fat12, fet16, fat32, cdfs, ntfs (ntfs5), сетевые fs. Диспетчер файловых систем (ifs ), драйверы fs.
- •Файловая система faTхх. Назначение и организация таблицы распределения файлов. Типы записей в fat.
- •Структура элемента каталога в файловой системе faTхх. Опорные и дополнительные элементы. Метка тома.
- •Поддержка и внутренняя организация длинных имен в ос Windows для файловых систем faTxx. Псевдоним длинного имени в пространстве имен dos.
- •Система операций над файлами. Типы доступа к данным файла. Защита файлов и данных в ос. Обеспечение целостности fs. Восстанавливаемость после сбоев ос и аппаратуры.
- •Файловая система ntfs. Основные свойства и возможности. Обеспечение целостности и отказоустойчивости ntfs. Управление доступом к данным и защита данных в ntfs.
- •Внутренняя организация ntfs на логическом томе. Метафайлы и их назначение. Структура главной таблицы файлов (мfт).
- •Интерфейс прикладного программирования в ос. Библиотеки функций api, системные вызовы. Назначение и реализация в инструментальных системах (системах программирования).
- •Командный (консольный) интерфейс ос. Виртуальная машина ms-dos, интерпретатор команд и его функции. Синтаксис консольных команд. Система команд и их классификация.
- •Внутренние команды командного интерфейса ос. Формат вызова, механизм внутренней реализации. Примеры внутренних команд vdm.
- •Команды-фильтры. Конвейеризация (потоковое сцепление) команд в командном интерфейсе. Перенаправление стандартного ввода-вывода в файлы и другие устройства.
- •Конфигурационные, диагностические и информационные команды ос.
- •Среда окружения командного интерфейса и ее назначение. Команды формирования окружения. Системные переменные.
- •Система команд ос для операций с файлами. Команды для работы с каталогами.
- •Программирование в среде командного интерфейса. Пакетные командные файлы: - внутренние команды, передача параметров.
- •Графический интерфейс конечного пользователя (gui). Концепция рабочего стола. Стандартные элементы оформления и управления в gui. Способы запуска приложений.
- •Защита данных и программ в ос. Модель безопасности ос ms Windows (2000/xp). Механизм учетных записей пользователей, регистрация в системе. Права доступа.
- •Инструменты конфигурирования и настройки ос ms Windows (2000/xp). Панель управления. Системное администрирование.
- •Системная база данных ос ms Windows - реестр. Общая организация, типы параметров. Утилиты для работы с реестром. Экспорт и импорт данных реестра.
- •51. Развертывание (инсталляция) ос на аппаратной платформе. Дистрибутив ос. Утилиты для установки.
- •52. Поддержка сетей в ос ms Windows. Сетевые компоненты, конфигурирование стека сетевых протоколов. Сетевые утилиты ос. Прикладные пользовательские сетевые сервисы.
Организация взаимодействия (синхронизация) параллельных процессов и потоков. Эффект гонок. Критическая секция. Типовые задачи синхронизации.
Синхронизация
Процессам часто нужно взаимодействовать друг с другом, например, один процесс может передавать данные другому процессу, или несколько процессов могут обрабатывать данные из общего файла. Во всех этих случаях возникает проблема синхронизации процессов, которая может решаться приостановкой и активизацией процессов, организацией очередей, блокированием и освобождением ресурсов.
Пренебрежение вопросами синхронизации процессов, выполняющихся в режиме мультипрограммирования, может привести к их неправильной работе или даже к краху системы.
Сложность проблемы синхронизации состоит в нерегулярности возникающих ситуаций. В данном случае все определяется взаимными скоростями процессов и моментами их прерывания. Поэтому отладка взаимодействующих процессов является сложной задачей. Ситуации подобные той, когда два или более процессов обрабатывают разделяемые данные, и конечный результат зависит от соотношения скоростей процессов, называются гонками.
Критическая секция
Важным понятием синхронизации процессов является понятие "критическая секция" программы. Критическая секция - это часть программы, в которой осуществляется доступ к разделяемым данным. Чтобы исключить эффект гонок по отношению к некоторому ресурсу, необходимо обеспечить, чтобы в каждый момент в критической секции, связанной с этим ресурсом, находился максимум один процесс. Этот прием называют взаимным исключением.
Простейший способ обеспечить взаимное исключение - позволить процессу, находящемуся в критической секции, запрещать все прерывания. Однако этот способ непригоден, так как опасно доверять управление системой пользовательскому процессу; он может надолго занять процессор, а при крахе процесса в критической области крах потерпит вся система, потому что прерывания никогда не будут разрешены.
Типовые задачи синхронизации
1. Задача взаимного исключения
При работе нескольких параллельных процессов с общими данными возникает необходимость взаимоисключать одновременный доступ процессов к данным. При этом участки программ процессов для работы с разделяемыми данными образуют так называемые критические области (секции). В общем виде постановка задачи взаимного исключения формулируется следующим образом: необходимо согласовать работу n 2 параллельных процессов при использовании некоторого критического ресурса таким образом, чтобы удовлетворить следующим требованиям:
– одновременно внутри критической области должно находиться не более одного процесса;
– критические области не должны иметь приоритета по отношению друг к другу;
– остановка какого-либо процесса вне его критической области не должна влиять на дальнейшую работу процессов по использованию критического ресурса;
– решение о вхождении процессов в их критические области при одинаковом времени поступления запросов на такое вхождение и равноприоритетности процессов не откладывается на неопределенное время, а является конечным по времени;
– относительные скорости развития процессов неизвестны и произвольны;
– любой процесс может переходить в любое состояние, отличное от активного, вне пределов своей критической области;
– освобождение критического ресурса и выход из критической области должны быть произведены процессом, использующим критический ресурс, за конечное время.
2. Задача «производитель-потребитель»
Рассмотрим систему из двух параллельных процессов, включающую процесс производитель и процесс-потребитель. Процессы взаимодействуют через некоторую обобщенную область памяти – буфер сообщений. В эту область процесс-производитель помещает очередное сообщение, а процесс-потребитель считывает очередное сообщение. В общем случае буфер способен хранить несколько сообщений. Необходимо согласовать работу двух процессов при одностороннем обмене сообщениями по мере развития процессов таким образом, чтобы удовлетворить следующим требованиям:
– выполнять требования задачи взаимного исключения по отношению к критическому ресурсу
– учитывать состояние буфера сообщений, характеризующего возможность или невозможность посылки (принятия) очередного сообщения.
Процесс-производитель при попытке поместить очередное сообщение в полностью заполненный буфер должен быть блокирован. Попытка процесса-потребителя чтения из пустого буфера также должна быть блокирована.
3. Задача «читатели-писатели»
Процессы-читатели считывают, а процессы-писатели записывают информацию в общую область памяти. Одновременно может быть несколько активных процессов-читателей. При записи информации область памяти рассматривается как критический ресурс для всех процессов, т. е. если работает процесс-писатель, то он должен быть единственным активным процессом. Задача состоит в определении структуры управления, которая не приведет к тупику и не допустит нарушения критерия взаимного исключения.