
- •1. Операционные системы. Назначение и функции
- •2. Понятие операционной среды
- •3. Классификация операционных систем
- •4. Однопрограммный и мультипрограммный (мультизадачный) режимы
- •5. Прерывания; их назначение и функции.
- •6. Механизм обработки прерываний.
- •7. Внешние (асинхронные) и внутренние (синхронные) прерывания
- •8. Дисциплины обслуживания, используемые при программном управлении специальными регистрами маски (маскирование сигналов прерывания)
- •9. Вычислительный процесс и ресурсы
- •10. Основные принципы мультипрограммирования.
- •11. Ресурсы. Классификация ресурсов
- •12. Вычислительные процессы и задачи
- •13. Условия выделения ресурсов задачам
- •14. Диаграмма состояний процесса; дескриптор процесса
- •15. Основные виды ресурсов
- •16 Планирование и диспетчеризация процессов и задач; стратегии планирования.
- •17. Бесприоритетные и приоритетные дисциплины диспетчеризации
- •18. Дисциплины диспетчеризации
- •19. Дисциплина обслуживания sjn
- •20. Дисциплина обслуживания srt
- •21. Карусельная дисциплина диспетчеризации
- •22. Управление памятью в операционных системах.
- •24 Простое непрерывное распределение и распределение с перекрытием
- •25. Методы неразрывного распределения памяти; распределение разделами с фиксированными и подвижными границами
- •26. Сегментный способ организации виртуальной памяти. Свопинг сегментов.
- •27. Страничный способ организации виртуальной памяти.
- •28. Методы разрывного распределения памяти. Принцип буферизации.
- •29. Сегментно-страничный способ организации виртуальной памяти
- •30. Управление вводом-выводом в операционных системах: основные концепции организации ввода-вывода в ос
- •31. Режимы управления вводом-выводом.
- •32. Закрепление устройств; общие устройства ввода-вывода
- •33. Основные системные таблицы ввода-вывода
- •34. Файлы и организация работы с ними
- •35. Файловые системы и их особенности
- •36. Лекция. Взаимодействие процессов. Синхронизация. Тупики
- •1. Состав команд управления ос Windows.
- •2. Команды файловой системы ос Windows
- •3. Команды справочной системы ос Windows
- •4. Команды пакетных данных ос Windows
- •5. Разработка командных(пакетных) файлов ос Windows
13. Условия выделения ресурсов задачам
Операционная система поддерживает обособленность процессов: у каждого процесса имеется свое виртуальное адресное пространство, каждому процессу назначаются свои ресурсы (файлы, окна, семафоры и т.д.). Обособленность необходима, чтобы защитить один процесс от другого, т.к. они конкурируют друг с другом за доступ к ресурсам. В случае процессов ОС считает их совершенно несвязанными и независимыми. При этом именно ОС обеспечивает защиту выполняющихся вычислений и является арбитром в спорах конкурирующих процессов за ресурсы. Возможность задействовать внутренний параллелизм, который часто встречается в самих процессах, позволяет ускорить вычисления.
Каждый процесс всегда состоит, по крайней мере, из одного потока выполнения, и только если имеется внутренний параллелизм, программист может «расщепить» один поток на несколько параллельных. Потребность в потоках возникла еще в однопроцессорных вычислительных системах, поскольку они позволяли организовать вычисления более эффективно. Для использования достоинств многопроцессорных систем с общей памятью потоки уже просто необходимы, так как позволяют не только реально ускорить выполнение тех задач, которые допускают их естественное распараллеливание, но и загрузить процессорные элементы работой, с тем, чтобы они не простаивали. Заметим, однако, что желательно, чтобы можно было свести к минимуму взаимодействие потоков между собой, ибо ускорение от одновременного выполнения параллельных потоков может быть сведено к минимуму из-за задержек синхронизации и обмена данными. Каждый поток выполняется строго последовательно и имеет свой собственный программный счетчик и стек. Потоки, как и процессы, могут порождать потоки-потомки, поскольку любой процесс состоит по крайней мере из одного потока. Подобно традиционным процессам (то есть процессам, состоящим из одного потока), каждый поток может находиться в одном из активных состояний. Пока один поток заблокирован (или просто находится в очереди готовых к исполнению задач), другой поток того же процесса может выполняться. Потоки разделяют процессорное время так же, как это делают обычные процессы, в соответствии с различными вариантами диспетчеризации.
Как уже упоминалось, иногда потоки выполнения называют легковесными процессами. Все потоки имеют одно и то же виртуальное адресное пространство своего процесса. Это означает, что они разделяют одни и те же глобальные переменные. Поскольку каждый поток может иметь доступ к каждому виртуальному адресу, один поток может использовать стек другого потока
14. Диаграмма состояний процесса; дескриптор процесса
Оно как бы объединяет в себе и обычный процесс, и поток выполнения (тред). Это понятие и поддерживаемая для него на уровне аппаратуры информационная структура позволяют в дальнейшем при разработке операционной системы строить соответствующие дескрипторы как для задач, так и для процессов. И отличаться эти дескрипторы будут прежде всего тем, что дескриптор задачи может хранить только контекст приостановленного вычислительного процесса, тогда как дескриптор процесса должен содержать поля, описывающие тем или иным способом ресурсы, выделенные этому процессу. Для хранения контекста задачи в микропроцессорах с архитектурой i32 имеется специальный сегмент состояния задачи (Task State Segment, TSS). А для отображения информации о процессе используется уже иная информационная структура, однако она включает в себя TSS. Сегмент состояния задачи используется как основа для дескриптора процесса. Т.о. дескриптор процесса больше по размеру, чем TSS, и включает в себя такие традиционные поля, как идентификатор процесса, его имя, тип, приоритет и проч. Каждый поток может быть оформлен в виде самостоятельного сегмента, что приводит к тому, что простая (не многопоточная) программа будет иметь всего один сегмент кода в виртуальном адресном пространстве.