- •Вопрос 1. История развития ос. Существующие операционные системы и их характеристики. Классификация ос.
- •Вопрос 2. Основные компоненты ос. Назначение, структура и функции ос.
- •Вопрос 3. Требования к операционным системам.
- •Вопрос 4. Понятие ресурса, виды ресурсов, управление ресурсами.
- •Вопрос 5. Виртуальная память. Методы распределения памяти.
- •Вопрос 6. Принцип кэширования данных.
- •Вопрос 7. Понятие процесса. Состояние процесса и переходы между ними.
- •Вопрос 8. Управление процессами. Синхронизация процессов. Семафоры. Использование семафоров для решения задач взаимоисключения и синхронизации. Алгоритмы планирования процессов
- •Вопрос 9. Управление процессами. Сообщения. Тупики. Способы борьбы с тупиками.
- •Вопрос 10. Файловые системы. Fat, hpfs, ntfs. Основные отличия. Общая модель файловой системы.
- •Вопрос 11. Файловая система fat. Структура диска. Файлы. Размещение файлов.
- •Вопрос 12. Файловые системы hpfs и ntfs. Структура диска. Файлы. Размещение файлов.
- •Вопрос 13. Операционная система ms-dos. Порядок загрузки.
- •Вопрос 14. Операционная система ms-dos. Загрузочный сектор жесткого диска. Структура элементов раздела в таблице разделов диска.
- •Вопрос 15. Операционная система ms-dos. Структура загрузочного сектора диска.
- •Вопрос 16. Операционная система ms-dos. Форматы исполняемых файлов.
- •Вопрос 17. Операционная система ms-dos. Структура psp.
- •Вопрос 18. Понятие прерывания. Аппаратные и программные прерывания. Обработка прерываний.
- •Вопрос 19. Структура таблицы векторов прерывания.
- •Вопрос 20. Способы несанкционированного доступа к информации в ms-dos. Возможные механизмы защиты.
- •Вопрос 21. Структура сетевой ос.
- •Вопрос 22. Классификация угроз безопасности ос.
- •Вопрос 23. Понятие защищенной ос. Подходы к построению защищенной ос.
- •Вопрос 24. Архитектура Windows nt. Основные модули Windows nt.
- •Вопрос 25. Архитектура Windows nt. Уровень аппаратных абстракций.
- •Вопрос 27. Windows nt. Интерфейс прикладных программ.
- •Вопрос 28. Ос Windows nт. Понятие объекта. Структура объекта.
- •Вопрос 29. Ос Windows nt. Понятие процесса. Взаимодействие между процессами. Потоки. Нити.
- •Вопрос 30. Ос Windows nt. Модель безопасности и ее компоненты.
- •Вопрос 31. Ос Windows nt. Реестр. Управление конфигурацией. Значимые элементы Реестра.
- •Вопрос 32. Архитектуры сетевой подсистемы ос Windows nt. Встраивание средств защиты в сетевую подсистему.
- •Вопрос 33. Аудит в Windows nt.
- •Вопрос 34. Угрозы безопасности Windows nt и методы защиты.
- •Вопрос 35. Ос Windows nt. Основные функции Win32 api.
- •Пример api функции:
- •Вопрос 37. История развития и общая характеристика семейства ос unix. Основные сведения о системе.
- •Вопрос 38. Архитектура ос unix. Ядро ос. Основные функции. Принципы взаимодействия с ядром.
- •Вопрос 39. Файловые системы unix.
- •Вопрос 40. Ос unix. Понятие процесса. Взаимодействие между процессами. Сигналы.
- •Вопрос 41. Ос unix. Основные функции. Системные операции.
- •Вопрос 42. Ос unix. Управление памятью. Виртуальная память. Принцип Деннинга. Структура виртуального адресного пространства.
- •Вопрос 43. Ос unix. Системные вызовы управления вводом-выводом.
- •Вопрос 44 ос unix. Средства взаимодействия с пользователем.
- •Вопрос 45. Методы защиты информации в ос мсвс.
- •Вопрос 46. Ос unix. Существующие типы файлов.
- •Вопрос 47. Стандарты защищенности ос и адекватная политика безопасности.
- •Вопрос 48. Определение и основные особенности операционных систем реального времени.
Вопрос 29. Ос Windows nt. Понятие процесса. Взаимодействие между процессами. Потоки. Нити.
Процессы и нити
Процессы реализованы в форме объектов, доступ к ним – посредством службы объектов. Процессы имеет многонитевую организацию. Процессы и нити имеют синхронизацию. Менеджер процесса не поддерживает отношений «родитель – поток». Адресное пространство каждого процесса защищено от вмешательства других процессов; механизмы виртуальной памяти. Система защищена от прикладных процессов.
Чтобы выполнить какую-либо функцию ОС, нить должна выполняться в форме ядра. Пользовательские процессы получают доступ к функциям ядра посредством системных вызовов.
В число атрибутов тела объекта процесса входят: •Идентификатор процесса • Пакет доступа (содержит информацию о безопасности) •Базовый приоритет •Процессорная совместимость •Время выполнения
Объект нить имеет атрибуты: •Идентификатор клиента •Контекст нити (область памяти, содержание регистров) •Динамический приоритет •Базовый приоритет (совпадает с приоритетом процесса) •Процессорная совместимость нитей (типы процессоров, на которых данная нить выполняется) •Время выполнения в режиме пользователя и в режиме ядра •Счетчик приостановок
Алгоритмы планирования процессов и нитей
При выборке нитей просматриваются те, которые готовы.
Первоочередная готовность – знаем, какой процесс выполняется следующим.
Ожидание – какие – либо ресурсы заняты.
Для определения смены порядка выполнения нитей используются алгоритмы, основанные на квантовании и приоритете (32-приоритетный).
При создании процесса процессу присваивается базовый приоритет. Нити наследуют его.
Нить покидает процесс, если:
-
заканчивается
-
заканчивается квант времени
-
более приоритетная нить
Процесс
Процесс задается функцией:
Create Process (
LPCTSTR Lpsz Application name
LPCTSTR Lpsz Command Line
LPSECURITY ATRIBUTES l’psa Process
LPSECURITY ATRIBUTES l’psa Thread
BOOL fInherit Mandles
PWORD fdw create
LPVOID Ipv Environment
LPTSIR Ipsz CurDir
LPSTARTUPINFO IpsiStartInfo
LPPROCESS INFORMATION Ippriproc Info
)
LP – указатель
STR – структура
1 параметр – имя, командная строка, переданная файлу. Можно указать полную строку; (системный каталог Windows, основной каталог Windows).
2 параметр – объекты ядра, с ними связаны атрибуты защиты (SECURITY ATRIBUTES).
Флаг fdw имеет несколько значений (определяет, как будет создаваться процесс):
DEBUG PROCESS (позволяет родительскому процессу проводить отладку дочернего; если флаг установлен, родительский процесс – отладчик)
DEBUG ONLY_THUS_PROCESS (аналогичен; родительский процесс уведомляется только об одном дочернем процессе)
CREATE_SUSPENDED (позволяет создавать процесс и приостанавливать его текущий поток)
CREATE_NEW_CONSOLE (приводит к созданию нового консольного приложения)
CREATE_NEW_WINDOW (приводит к созданию нового консольного кольца для нового процесса)
CREATE_SEPARATE_WOW_VDM (позволяет запускать без окон)
Только при запуске 16-разрядного Windows – приложения.
3 параметр – поставить свое переменное окружения.
4 параметр – позволяет изменить строку окружения.
5 параметр – текущий каталог
6 параметр – указатель на структуру
Нити
Многозадачность является важнейшим свойством ОС. Для поддержки этого свойства ОС определяет и оформляет для себя те внутренние единицы работы, между которыми и будет разделяться процессор и другие ресурсы компьютера. Эти внутренние единицы работы в разных ОС носят разные названия - задача, задание, процесс, нить.
При мультипрограммировании повышается пропускная способность системы, но отдельный процесс никогда не может быть выполнен быстрее, чем если бы он выполнялся в однопрограммном режиме (всякое разделение ресурсов замедляет работу одного из участников за счет дополнительных затрат времени на ожидание освобождения ресурса). Однако задача, решаемая в рамках одного процесса, может обладать внутренним параллелизмом, который в принципе позволяет ускорить ее решение. Например, в ходе выполнения задачи происходит обращение к внешнему устройству, и на время этой операции можно не блокировать полностью выполнение процесса, а продолжить вычисления по другой "ветви" процесса. Для этих целей современные ОС предлагают использовать сравнительно новый механизм многонитевой обработки (multithreading). При этом вводится новое понятие "нить" (thread), а понятие "процесс" в значительной степени меняет смысл. Мультипрограммирование теперь реализуется на уровне нитей, и задача, оформленная в виде нескольких нитей в рамках одного процесса, может быть выполнена быстрее за счет псевдопараллельного (или параллельного в мультипроцессорной системе) выполнения ее отдельных частей. Например, если электронная таблица была разработана с учетом возможностей многонитевой обработки, то пользователь может запросить пересчет своего рабочего листа и одновременно продолжать заполнять таблицу. Особенно эффективно можно использовать многонитевость для выполнения распределенных приложений, например, многонитевой сервер может параллельно выполнять запросы сразу нескольких клиентов.
В традиционных ОС понятие "нить" тождественно понятию "процесс". В действительности часто бывает желательно иметь несколько нитей, разделяющих единое адресное пространство, но выполняющихся квазипараллельно, благодаря чему нити становятся подобными процессам (за исключением разделяемого адресного пространства). Нити иногда называют облегченными процессами или мини-процессами. Действительно, нити во многих отношениях подобны процессам. Каждая нить выполняется строго последовательно и имеет свой собственный программный счетчик и стек. Нити, как и процессы, могут, например, порождать нити-потомки, могут переходить из состояния в состояние. Подобно традиционным процессам (то есть процессам, состоящим из одной нити), нити могут находится в одном из следующих состояний: ВЫПОЛНЕНИЕ, ОЖИДАНИЕ и ГОТОВНОСТЬ. Пока одна нить заблокирована, другая нить того же процесса может выполняться. Нити разделяют процессор так, как это делают процессы, в соответствии с различными вариантами планирования.
Однако различные нити в рамках одного процесса не настолько независимы, как отдельные процессы. Все такие нити имеют одно и то же адресное пространство. Это означает, что они разделяют одни и те же глобальные переменные. Поскольку каждая нить может иметь доступ к каждому виртуальному адресу, одна нить может использовать стек другой нити. Между нитями нет полной защиты, потому что, во-первых, это невозможно, а во-вторых, не нужно. Все нити одного процесса всегда решают общую задачу одного пользователя, и аппарат нитей используется здесь для более быстрого решения задачи путем ее распараллеливания. При этом программисту очень важно получить в свое распоряжения удобные средства организации взаимодействия частей одной задачи. Кроме разделения адресного пространства, все нити разделяют также набор открытых файлов, таймеров, сигналов и т.п. Нити имеют собственные: программный счетчик, стек, регистры, нити-потомки, состояние. Нити разделяют: адресное пространство, глобальные переменные, открытые файлы, таймеры, семафоры, статистическую информацию.