- •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. Редиректор и сервер. Встроенные сетевые компоненты
40. Атрибуты, инфраструктура процесса
Атрибуты процесса:
- PID – идентификатор процесса. Уникальный номер, по которому ядро различает тот или иной процесс. Присваивается по возрастанию и по мере освобождения процессов
- PPID – идентификатор родителя
- NiceNumber – приоритет процесса; - статический (задан) / динамический (установлен ядром)
- tty – терминал, ассоциируемый с процессом при нормально функционировании
- RID – реальный идентификатор пользователя, запустившего данный процесс. Связан с ID пользователя, запустившего данный процесс на выполнение
- EID – эффективный идентификатор пользователя, являющегося владельцем процесса. Позволяет расширять права пользователя, который запускает процесс до прав владельца процесса за счёт флага SUID, если ему это позволен (здесь RID <> EID)
- временная статистика
Так как процесс – образ программы, ему соответствует АП отображаемой памяти (код, стек, данные, библиотеки), структура данных ядра, необходимая для управления процессом.
Инфраструктура процесса
User Mode – инструкции прикладной программы, допустимые на непривилегированном уровне; не доступны некоторые структуры данных. Переход из пользовательского режима в режим ядра посредством системного вызова.
Kernel Mode – инструкции ядра на привилегированном уровне и делается это от имени вызвавшего процесса.
Образ процесса
В UM + libdata, в KM - самые основные структуры данных: U – area и Proc; служат для управления процессом. U – area соответствует контексту: proc соответствует дескриптору.
Структура данных proc:
-
Тип переменной
Название
Назначение
Char
Char
Unsigned
Unsigned short
Unsigned short Int
Short
Short
Signed_int
Unsigned int
Time_t
Time_t
Struct presion x
Short
Unsigned int
p_stat
p_pri
p_flag
p_vid
p_suid
p_sid
p_grp
p_id,p_ppid
p_sig
p_size
p_stime
p_utime
p_lost
p_region
p_xstat
p_utlb[]
Статус процесса
Текущий приоритет
Флаги о состоянии процесса
UID – идентификатор пользователя
EUID – эфф идентификатор пользователя
Идентификатор сеанса
Идентификатор группы
PID, PPID
Сигнал ошибки доставки
Размер адресного пространства
Время выполнения в режиме ядра
Время выполнения задачи
Указатель локальной дескрипторной таблицы
Список областей памяти процесса
Код возврата
Массив записей таблицы страниц для u-area
В каждый момент времени данные структур proc должны быть в ОЗУ, это минимальная информация, необходимая для определения места нахождения остальных структур. Остальные структуры могут находиться во вторичной памяти (swaping)
Структура proc – запись в системной таблице процессов. Запись этой для выполнения в данный момент процесса активизируется переменной curproc. Эта переменная всегда указывает на активный процесс. При переключении контекста переменную меняют.
Структура u-area
U=u-area=user_area-block
Содержит дополнительные данные о процессе; доступна только при выполнении процесса, находится в области памяти, на которую указывает переменная U, там содержится информация об открытых файлах (файловые дескрипторы), сохраняет значение регистров. Используется многими подсистемами ядра. Содержит стек фиксированного размера (стек ядра). При выполнении в режиме ядра в него заносится цепочка вызовов. Процесс не имеет возможности модифицировать эти данные, и область защищена от доступа в режиме пользователя.
Примерный контекст задачи в UNIX
-
АП в режиме задачи
Управляющая информация
Окружение процесса
Аппаратный контекст
Код
Данные
Стек
Разделяемая память
Proc
u-area
Данные для отображения виртуального АП в физическое
Переменные окружения
Их значения по умолчанию
Системный контекст
Регистровый контекст
Код и данные библиотек