- •1. Операционные системы
- •2. Функциональные компоненты локальной ос
- •3. Назначение и функции сетевой ос
- •4. Функциональные компоненты сетевой ос
- •5. Коммуникационные средства
- •6. Классификация ос
- •8. Архитектура ос
- •9. Монолитные и многоярусные ядра
- •10. Функциональные компоненты Linux
- •11. Структура ядра
- •12. Функции слоёв ядра
- •13. Вспомогательные модули
- •14. Микроядерные системы
- •15. Объектная модель функционирования
- •16. Состав исполнительной системы WinNt
- •17. Совместимость
- •18. Множественные прикладные среды. Способы реализации
- •19. Интерфейсы ос
- •20. Файловая система
- •21. Логическая организация файла
- •22. Физическая организация файла
- •23. Общая модель фс
- •Непрерывное
- •2) Цепочечная
- •3) Фиксированный
- •Битовые карты (таблицы) – каждому блоку ставится в соответствие свой бит (1 – занят, 0 – свободен)
- •Цепочки сводных свободных порций
- •Список свободных блоков
- •Индексированный
- •24. Функции фс
- •25. Фс unix-подобных ос
- •26. Структура фс
- •27. Структура фс базовых unix-подобных ос
- •28. Архитектура виртуальной фс
- •29. Последовательность действий при монтировании
- •30. Файловые дескрипторы и трансляция имён
- •31. Физическая организация fat
- •32. Физическая организация ntfs
- •33. Управление процессами
- •34. Контекст и дескриптор
- •35. Структура контекста процесса
- •36. Планирование и диспетчеризация
- •37. Алгоритмы планирования
- •38. Планирование и диспетчеризация в unix системах
- •39. Управление процессами в unix-подобных системах
- •40. Атрибуты, инфраструктура процесса
- •41. Создание процессов
- •42. Этап exec()
- •43. Межпроцессные взаимодействия (ipc)
- •44. Каналы (pipe)
- •45. Fifo
- •46. Пространство имен
- •47. Сообщения
- •48. Семафоры
- •49. Разделяемая память
- •50. Сигналы
- •51. Последовательность событий
- •52. Функции управления процессами
- •53. Сообщения в микроядерных ос.
- •54. Процессы и потоки в WinNt
- •55. Базовая структура процесса, создание процесса в WinNt
- •56. Основные различия управления процессами в различных средах
- •57. Состав потока в WinNt и контекст потока
- •58. Передача сообщений с помощью lpc (локальный вызов процедур)
- •59. Распределенные системы. Удаленный вызов процедур. Rpc (Remote Procedure Call)
- •60. Система ввода-вывода в Win nt
- •61. Реализация свв в Windows nt
- •62. Унифицированная модель драйвера
- •63. Формат пакета irp
- •64. Структура драйвера
- •65. Редиректор и сервер. Встроенные сетевые компоненты
55. Базовая структура процесса, создание процесса в WinNt
На основе базового процесса строятся множественные прикладные среды.
Модель – клиент-серверная.
Структура процесса
В каждой эмуляции необходимо реализовать процедуры, обслуживающие:
1) создание и завершение каждого из процессов;
2) протоколирование и поддержка взаимодействия процессов; 3)выполнение операций локальных и сетевых от имени клиентского процесса;
4) чтение и запись в АП клиентского процесса;
5) остановка клиентского потока, изменение его контекста и запуск вновь;
6) перехват и обработка исключений, генерируемых процессами клиентов.
Любая подсистема выполняет 2 функции: 1) эмуляция среды; 2) поддержание структуры процесса.
Диспетчер процессов обращается к диспетчеру объектов. Диспетчер объектов выдает описатель в API POSIX, который преобразуется в id процесса.
Приложение обращается к средствам API конкретной подсистемы, после чего формируется соответствующий запрос сервера/подсистемы на создание процесса. Средство передачи сообщений используемой системы ОС передает запрос в диспетчер процессов, после взаимодействия диспетчера процессов с диспетчером объектов создается базовый процесс и уже полученный описатель преобразуется в идентификатор.
Cоздание процесса в WinNT
Реализация за пределами исполнительной системы процессами сред.
Базовый набор механизмов, которые могут использовать среды.
В NT – создание процесса == создание объекта.
NT CreateProcess() – семантика создание базового процесса.
1) Создаёт новый процесс (независимый), возвращает описатель объекта.
2) Вызывающий задаёт родителя, от которого новый процесс наследует те параметры, который открыты для …
3) Инициализируется АП нового процесса исполнительной программой или как копия АП родителя.
4) Возвращается описатель объекта NT для нового процесса.
5) не создаётся поток в новом процессе, но поддерживается многопоточность.
Диспетчер процессов NT не запоминает, каким процессом был создан новый процесс.
Родительский процесс для наследования в NT назначается.
Подсистемы POSIX – от лица клиентского приложения посылает запрос в исполнительную систему NT на создание базового процесса с наследованием от клиента, а не подсистемы. Для этого есть специальный сервис процесса, который позволяет назначать родителя от имени подсистемы.
56. Основные различия управления процессами в различных средах
1. Поддержка многонитиевости (многопоточности). Win32, OS/2 – поддерживает многонитиевость. POSIX – не поддерживает (как и MS-DOS, Win16). Речь идет о семантике управления. В одном случае это интегрируется в систему, в другом привносится.
2. Отношения между процессами:
- механизм наследования в POSIX, OS/2 – поддерживается, в NT – не поддерживается.
- объединение процессов в группы, сессии (объединение групп) – вполне определенная семантика управления.
3. Правила создания новых процессов:
-
Функция
Win32
POSIX
OS/2
Функция API
CreateProcess()
fork()
DosExecpgm()
Иерархия процессов
Нет форм соотношения родитель-потомок
Новый процесс как потомок вызвавшего
Аналогично POSIX
Наследование
Копирует все описатели объекта, открытые с атрибутом наследования
Аналог fork()
Копируются для потомков все описателя каналов, файлов, семафоров и т.д., открытых с атрибутом наследования
Инициализация адресного пространства
Инициализируется исполняемой программой
Наследуется АП родителя
Исполняемая программа
Идентификатор процесса
Описателем объекта
Идентификатор
Идентификатор возвращается при условии, что процесс потомок будет выполняться асинхронно
Потоки
Создает поток при создании процесса, поддерживает многопоточность с точки зрения семантики управления
Создается один поток, но не поддерживается многопоточность
Создает поток и поддерживает многопоточность