- •Назначение и функции ос. Ос как виртуальная машина
- •2. Назначение и функции ос. Ос как система управления ресурсами
- •3.Функциональные компоненты ос. Управление процессами.
- •4. Функциональные компоненты ос. Управление памятью
- •5.Функциональные компоненты ос. Управление файлами и внешними устройствами.
- •6. Функциональные компоненты ос. Защита данных и администрирование
- •7.Функциональные компоненты ос. Интерфейс прикладного программирования
- •8.Функциональные компоненты ос. Пользовательский интерфейс
- •9.Сетевые и распределенные ос
- •10. Функциональные компоненты сетевой ос Основные функциональные компоненты сетевой ос:
- •11. Одноранговые и серверные сетевые операционные системы
- •Ос в одноранговых сетях.
- •Ос в сетях с выделенными серверами
- •12. Требования к современным операционным системам
- •13. Ядро и вспомогательные модули ос
- •14. Ядро в привилегированном режиме
- •15. Многослойная структура ос
- •16. Аппаратная зависимость и переносимость ос
- •Типовые средства аппаратной поддержки ос:
- •17. Машинно-зависимые компоненты ос
- •18. Переносимость операционной системы
- •19. Коцепция микроядерной архитектуры
- •Преимущества и недостатки:
- •20. Совместимость и множественные прикладные среды
- •Двоичная совместимость и совместимость исходных текстов
- •Трансляция библиотек
- •Способы реализации прикладных программных сред
- •21. Мультипрограммирование в системах пакетной обработки
- •22. Мультипрограммирование в системах разделения времени
- •23. Мультипрограммирование в системах реального времени
- •24. Мультипроцессорная обработка
- •25. Планирование процессов и потоков
- •26. Создание процессов и потоков
- •27. Планирование и диспетчеризация потоков
- •28. Вытесняющие и невытесняющие алгоритмы планирования
- •29. Алгоритмы планирования, основанные на квантовании
- •30. Алгоритмы планирования, основанные на приоритетах
- •31. Смешанные алгоритмы планирования
- •32. Планирование в системах реального времени
- •33. Моменты перепланировки
- •34. Функции ос по управлению памятью
- •35. Типы адресов
- •36. Алгоритмы распределения памяти Распределение памяти фиксированными разделами
- •Распределение памяти динамическими разделами
- •Перемещаемые разделы
- •37.Страничное распределение
- •38.Сегментное распределение
- •39.Сегментно-страничное распределение
- •40.Разделяемые сегменты памяти
- •41. Кэширование данных
- •43. Кэш память. Проблема согласования данных
- •44.Способы отображения основной памяти на кэш
- •45. Схемы выполнения запросов в системах с кэш-памятью
- •46. Логическая организация файловой системы
- •47. Иерархическая структура файловой системы
- •48. Монтирование
- •49. Атрибуты файлов
- •50. Логическая организация файла
- •51. Физическая организация ntfs
- •52. Структура тома ntfs
- •53. Структура файлов ntfs
- •54. Каталоги ntfs
- •55. Файловые операции. Два способа организации файловых операций
- •56. Открытие файла
- •57. Обмен данными с файлом
- •58. Блокировки файлов
- •59. Стандартные файлы ввода и вывода, перенаправление вывода
- •60. Контроль доступа к файлам. Доступ к файлам как частный случай доступа к разделяемым ресурсам
- •61. Механизм контроля доступа
- •62. Организация контроля доступа в ос unix
- •63. Организация контроля доступа в ос Windows nt
25. Планирование процессов и потоков
Одной из основных подсистем мультипрограммной ОС, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами и потоками, которая занимается их созданием и уничтожением, поддерживает взаимодействие между ними, а также распределяет процессорное время между несколькими одновременно существующими в системе процессами и потоками.
Подсистема управления процессами и потоками ответственна за обеспечение процессов необходимыми ресурсами. ОС поддерживает в памяти специальные информационные структуры, в которые записывает, какие ресурсы выделены каждому процессу. Она может назначить процессу ресурсы в единоличное пользование или в совместное пользование с другими процессами. Некоторые из ресурсов выделяются процессу при его создании, а некоторые — динамически по запросам во время выполнения. Ресурсы могут быть приписаны процессу на все время его жизни или только на определенный период. При выполнении этих функций подсистема управления процессами взаимодействует с другими подсистемами ОС, ответственными за управление ресурсами, такими как подсистема управления памятью, подсистема ввода-вывода, файловая система.
Когда в системе одновременно выполняется несколько независимых задач, то возникают дополнительные проблемы. Хотя потоки возникают и выполняются асинхронно, у них может возникнуть необходимость во взаимодействии, например при обмене данными. Согласование скоростей потоков также очень важно для предотвращения эффекта «гонок» (когда несколько потоков пытаются изменить один и тот же файл), взаимных блокировок или других коллизий, которые возникают при совместном использовании ресурсов. Синхронизация потоков является одной из важных функций подсистемы управления процессами и потоками.
Каждый раз, когда процесс завершается, ОС предпринимает шаги, чтобы «зачистить следы» его пребывания в системе. Подсистема управления процессами закрывает все файлы, с которыми работал процесс, освобождает области оперативной памяти, отведенные под коды, данные и системные информационные структуры процесса. Выполняется коррекция всевозможных очередей ОС и списков ресурсов, в которых имелись ссылки на завершаемый процесс.
26. Создание процессов и потоков
Создать процесс — это прежде всего означает создать описатель процесса, в качестве которого выступает одна или несколько информационных структур, содержащих все сведения о процессе, необходимые операционной системе для управления им. В число таких сведений могут входить, например, идентификатор процесса, данные о расположении в памяти исполняемого модуля, степень привилегированности процесса (приоритет и права доступа) и т. п. Примерами описателей процесса являются блок управления задачей (ТСВ - Task Control Block) в OS/360, управляющий блок процесса (РСВ — Process Control Block) в OS/2, дескриптор процесса в UNIX, объект-процесс (object-process) в Windows NT.
Создание процесса включает загрузку кодов и данных исполняемой программы данного процесса с диска в оперативную память. Для этого ОС должна обнаружить местоположение такой программы на диске, перераспределить оперативную память и выделить память исполняемой программе нового процесса. Затем необходимо считать программу в выделенные для нее участки памяти и, возможно, изменить параметры программы в зависимости от размещения в памяти. В системах с виртуальной памятью в начальный момент может загружаться только часть кодов и данных процесса, с тем чтобы «подкачивать» остальные по мере необходимости. Существуют системы, в которых на этапе создания процесса не требуется непременно загружать коды и данные в оперативную память, вместо этого исполняемый модуль копируется из того каталога файловой системы, в котором он изначально находился, в область подкачки — специальную область диска, отведенную для хранения кодов и данных процессов. При выполнении всех этих действий подсистема управления процессами тесно взаимодействует с подсистемой управления памятью и файловой системой.
В многопоточной системе при создании процесса ОС создает для каждого процесса как минимум один поток выполнения. При создании потока так же, как и при создании процесса, операционная система генерирует специальную информационную структуру — описатель потока, который содержит идентификатор потока, данные о правах доступа и приоритете, о состоянии потока и другую информацию. В исходном состоянии поток (или процесс, если речь идет о системе, в которой понятие «поток» не определяется) находится в приостановленном состоянии. Момент выборки потока на выполнение осуществляется в соответствии с принятым в данной системе правилом предоставления процессорного времени и с учетом всех существующих в данный момент потоков и процессов. В случае если коды и данные процесса находятся в области подкачки, необходимым условием активизации потока процесса является также наличие места в оперативной памяти для загрузки его исполняемого модуля.
Во многих системах поток может обратиться к ОС с запросом на создание так называемых потоков-потомков. В разных ОС по-разному строятся отношения между потоками-потомками и их родителями. Например, в одних ОС выполнение родительского потока синхронизируется с его потомками, в частности после завершения родительского потока ОС может снимать с выполнения всех его потомков. В других системах потоки-потомки могут выполняться асинхронно по отношению к родительскому потоку. Потомки, как правило, наследуют многие свойства родительских потоков. Во многих системах порождение потомков является основным механизмом создания процессов и потоков.