
- •Вопросы по курсу «Операционные системы» весеннего семестра 2010-2011 учебного года
- •1. Общие сведения об операционных системах, цели применения ос, структура ос.
- •2. Модель взаимодействия компонентов операционной системы.
- •3. Классификация ос.
- •4.5. Теоретические основы параллельного программирования, понятия: процесс, задача, мультизадачный режим работы ос, нить, контекст нити.
- •6. Теоретические основы параллельного программирования: классификация программных модулей; понятия реентерабельности и повторной входимости программных модулей.
- •7. Прерывания и механизмы обработки прерываний операционной системой.
- •8.9.Диспетчер задач: дисциплины диспетчеризации, критерии оценки дисциплин диспетчеризации задач.
- •10. Теоретические основы параллельного программирования: независимые и взаимодействующие процессы, понятия ресурса и критического ресурса.
- •11. Теоретические основы параллельного программирования: список условий функционирования взаимодействующих процессов, понятие тупика.
- •12. Теоретические основы параллельного программирования: принцип организации критических секций.
- •13. Теоретическая классификация видов взаимодействия процессов: сигналы, семафоры, мьютексы.
- •15. Теоретическая классификация видов взаимодействия процессов: очереди сообщений, файлы, разделяемая память, объект «ресурс».
- •16. Теоретическая классификация видов взаимодействия процессов: почтовые ящики, конвейеры.
- •17 Организация подсистемы безопасности в ос Windows: создание и открытие объектов, понятие описателя, атрибуты безопасности, права доступа, структура описателя безопасности.
- •18.Организация подсистемы безопасности в ос Windows: маркеры, привилегии пользователей, олицетворение.
- •19. Организация подсистемы безопасности в ос Windows: получение доступа к объекту.
- •20. Процессы в ос Windows: понятие Win32 api; main() и WinMain(), создание и завершение процессов и нитей, основные функции работы с процессами и нитями.
- •21. Работа с файлами в ос Windows: синхронная и асинхронная.
- •24. Таймеры ожидания в ос Windows и понятие apc
- •25. Структурная обработка исключений.
- •26. Способы управления памятью: простое непрерывное распределение, оверлейное распределение.
- •1. Простое непрерывное распределение
- •2. Оверлейное распределение (OverLay)
- •27. Способы управления памятью: распределение статическими и динамическими разделами.
- •28. Способы управления памятью: сегментная организация памяти.
- •29. Страничная организация памяти
- •30. Сегментно-страничный способ организации памяти
- •31. Таблицы физических страниц памяти в современных ос. Понятие pfn, понятие mdl.
- •32. Распределение оперативной памяти в современных компьютерах. Спецификация acpi
- •33. Распределение первого мегабайта оперативной памяти в персональных компьютерах.
- •35. Резервирование памяти с помощью функции VirtualAlloc
- •36. Работа с кучами процессов
- •37 . Динамически загружаемые библиотеки (dll). Связывание во время загрузки библиотеки.
- •38. Системные перехватчики (hook
- •40. Службы
3. Классификация ос.
Прежде всего, различают ОС общего и специального назначения. ОС специального назначения в свою очередь подразделяются на ОС для переносных микрокомпьютеров и различных встроенных систем (напр., сотовых телефонов), ОС баз данных (Oracle), ОС реального времени и т.д.
По режиму обработки задач. Различают ОС обеспечивающие однопрограммные и мультипрограммные режимы. Под мультипрограммным режимом понимают способ организации вычислений, когда на однопроцессорной ВС создается видимость одновременного исполнения нескольких программ. Иногда говорят о мультизадачном режиме работы. Будем считать, что мультизадачный режим – режим разделения времени, мультипрограммный – режим пакетной обработки (в рамках курса понятия эквивалентны).
По организации работы в диалоговом режиме различают однотерминальные и мультитерминальные ОС.
По ограничению времени реакции ОС делятся на ОС общего назначения и реального времени. У ОС реального времени существует ограничение на время реакции на входной запрос. Мягкое, нормальное, жесткое – классификация ОС реального времени. Различие между ОС реального времени и общего назначения – существует ограничение ан время вычисления. Если решение не поступило к заданному сроку – оно отбрасывается. В мягком реальном времени время задержки 1-10 млс. В жёстком реальном времени – немедленная реакция на события. Время реакции разделяется на 2 составляющие: 1)время отсечки; 2) время ответа. По способу организации ядра различают ос монолитные (Windows) и модульной структуры (QNX).
4.5. Теоретические основы параллельного программирования, понятия: процесс, задача, мультизадачный режим работы ос, нить, контекст нити.
Процесс – это выполнение отдельной программы с её данными на последовательном процессоре. Задача – (1) совокупность программных модулей и данных, требующих ресурсов вычислительной системы для своей реализации. (2) единица работы, для выполнения которой предоставляется цп.
Ресурс – всякий объект, которые может распределяться внутри системы с течением времени. Ресурсы могут быть разделяемыми, когда несколько процессов их используют одновременно. Могут быть и неделимыми, те предоставляются в эксклюзивном доступе. Изначально ресурсами считались процессорное время, память, каналы ввода вывода, периферийные устройства. В последнее время понятие ресурса стало шире. Теперь к ресурсам можно отнести программные компоненты, информационные каналы, компоненты ос, такие как описатели на объекты и сами объекты.
Мультизадачный режим позволяет переключить ЦП на выполнение другой задачи, пока первая ожидает завершения операции I/O, за счёт чего повышается быстродействие по сравнению с однозадачной, выполняющей аналогичные действия. В мультизадачном режиме работы повышается пропускная способность системы. На рис. процессы обращаются к одному и тому же ресурсу. Это становится возможным благодаря концепции виртуальных ресурсов. Данная концепция позволяет унифицировать разработку процессов и повысить эффективность использования ресурсов. Суть концепции: ОС использует все реальные ресурсы компьютера и на их основе создаёт новый виртуальный компьютер с заранее определёнными характеристиками, при этом каждый виртуальный ресурс моделируется с учётом его специфики. Виртуальный процессор моделируется на реальном CPU gen`v выделения квантов времени. Виртуальная память моделируется реальным ОЗУ на основе динамического преобразования адресов. Устройства ввода-вывода используются параллельно. В результате на базе одного ПК реализуется несколько виртуальных ВС. Для ОС win м.б. организована ВС как для программ, разработанных для самой ОС win, так и для программ, разработанных, например, в MS-DOS. Однако, поскольку реально требуется гораздо больше памяти, то реальному компьютеру хватает имеющейся в наличии ОП + файл подкачки на диске. Для каждого процесса создаётся собственная виртуальная ВС. В рамках концепции виртуальных ресурсов можно пойти дальше и для каждой виртуальной ВС создать несколько виртуальных процессоров, каждый из которых будет выполнять свою собственную задачу. Выполнение такой задачи виртуальным процессом называют tread - «нить». В современных ос различают тяжеловесные и легковесные нити. Тяжеловесные нити – это нити, которые организованы ос в рамках концепции виртуальных ресурсов. Легковесная нить – это нить, которая организована специальной библиотекой в составе процесса, те часть концепции виртуальных ресурсов переходит от ос к процессу. Если ПК располагает 2-мя реальными процессорами, то две нити могут выполняться параллельно. Если процессор один, то параллельное исполнение эмулируется с помощью разделения времени. Поскольку все нити одного процесса выполняются в рамках этого процесса, то они разделяют одно и то же адресное пространство, т.е. имеют одни и те же глобальные переменные, общие виртуальные устройства, файловые дескрипторы. Это с одной стороны создаёт удобство при написании программы, а с другой требует от программиста особых навыков при написании программ. Кроме того, различные процессы т.ж. могут взаимодействовать между собой посредством механизмов межпроцессорного взаимодействия. Параллельное программирование – прогр-ние параллельных процессов и нитей. Создавать программы надо так, чтобы они использовали min вычисл. ресурсов. Контекст нити. Что различно у двух нитей, выполняющихся в рамках одной виртуальной ВС: Регистры процессора, включая программный счетчик, стек, нити-потомки, текущее состояние – всё это контекст нити.