
- •1. Эволюция операционных систем Операционные системы
- •Эволюция ос
- •2. Операционные системы (ос). Классификация ос по особенностям алгоритмов управления.
- •4. Поддержка многонитевости систем
- •3. Операционная система. Классификация спо по особенности аппаратных платформ.
- •1. Ос больших машин
- •Особенности методов построения.
- •5. Процесс, состояния процесса, свойства процессов.
- •Свойства процессов.
- •Процесс. Классификация процессов.
- •7. Ресурс, свойства ревурсов.
- •Свойства ресурсов
- •Ресурсы. Классификация ресурсов
- •6.По функциональной избыточности (изменчивости):
- •8.По восстанавливаемости:
- •9.По характеру использования:
- •Реализация понятия последовательного процесса в операционной системе
- •Потоки (нити, треды)
- •Дисциплины диспетчеризации
- •Планирование и диспетчеризация процессов и задач
- •10. Прерывания
- •Виды прерываний:
- •Дисциплины диспетчеризации
- •12. Архитектура ос.
- •Вспомогательные модули
- •Средства аппаратной поддержки ос
- •Микроядерная архитектура
- •2.Расширяемость
- •15. Файловая система. Структура магнитного диска.
- •16. Физическая организация fat
- •Загрузочная запись dos
- •17. Файловая система hpfs
- •Структура раздела hpfs.
- •18. Ntfs
- •19.Проектирование взаимодействующих вычислительных процессов (взаимное исключение). Синхронизация посредством операции ‘проверка - устаовка’.Семафоры.
- •1.Проектирование взаимодействующих вычислительных процессов (взаимное исключение).
- •2.Синхронизация посредством операции«проверка и установка»
- •3.Семафоры
- •20. Мониторы хоара. Почтовые ящики, конвейеры, тупики. Мониторы хоара.
- •Почтовые ящики
- •Конвейеры
- •Тупики:
- •21. Структура современных систем программирования.
- •22. Основные принципы построения транслятора.
- •4. Построение на основе хэш – функции.
- •23. Лексический анализатор, синтаксический разбор основные принципы построения транслятора.
- •24. Семантический анализ, подготовка к генерации кода, генерация кода основные принципы построения транслятора.
- •25. Регистры общего назначения. Команда mov.
- •Команда mov.
- •26. Назначение сегментов. Реализация арифметических операций на ассемблере. Назначение сегментов
- •Операция умножения
- •Операция деления
- •Определение данных. Организация условного и безусловного перехода на ассемблере
- •28. Логика и организация циклических вычислений с помощью команды loop
- •Команды логических операций
- •29. Регистрфлагов
- •30. Команды обработки строковых данных в ассемблере.
- •Команды обработки строк
- •31. Понятие объектно-ориентированной модели программных компонент delphi
- •31. Структура интерфейса визуальной среды delphi
- •35. Объект: понятие, свойства.
- •Понятие Свойства и События
- •34.Основные события
- •32.Описание и назначение основных компонент выбора вариантов стандартной панели
- •Отладка модулей проекта
- •Отладка синтаксических ошибок
- •Отладка логических ошибок
- •37. Графические компоненты
Потоки (нити, треды)
Процесс может быть разделен на несколько потоков (задач, тредов) которые выполняются параллельно в одном виртуальном пространстве процесса и могут тесно взаимодействовать друг с другом. Эти задачи не имеют собственных ресурсов, они развиваются в том же адресном пространстве, могут пользоваться теми же файлами, виртуальными устройствами и иными ресурсами, что и данный процесс. Треды как и процессы могут порождать треды-потомки, поскольку любой процесс состоит как минимум из одного треда.
Дисциплины диспетчеризации
Различают два класса дисциплин:
Бесприоритетные – в этом случае выбор задачи производиться в заранее установленном порядке без учета их относительной важности. Они бывают: линейные (в порядке очереди, случайный выбор процесса) и циклические.
Приоритетные: - отдельным задачам предоставляется преимущественное право попасть в состояние исполнения. Они бывают: с фиксированным приоритетом (с относительным, с абсолютным приоритетом, адаптивное обслуживание) и с динамическим приоритетом (приоритет зависит от времени ожидания или от времени обслуживания).
Существуют следующие дисциплины диспетчеризации:
FCFS (first come – first served) задачи обслуживаются в порядке очереди. В этом случае реализуется стратегия обслуживания «по возможности заканчивать вычисления в порядке их появления»
SJN (shortest job next) – требует, что бы для каждого задания была известна оценка потребности машинного времени, т.е. это означает что следующим будет выполнятся кратчайшее задание.
SRT (shortest remaining time) – следующее задание требует меньше всего времени для своего завершения.
RR (round robin) – предполагает, что каждая задача получает процессорное время порциями (квантами). После окончания кванта времени задача снимается с процессора и он передается следующей задаче а снятая задача ставиться в конец очереди задач готовых к выполнению.
Диспетчеризация без перераспределения процессорного времени, т.е. не вытесняющая многозадачность – это такой способ диспетчеризации процессов, при котором активный процесс выполняется до тех пор, пока он сам, что называется «по собственной инициативе», не отдаст управление диспетчеру задач для выбора из очереди другого, готово к выполнению процесса или треда. Дисциплины обслуживания FCFS, SJN, SRT относятся к не вытесняющим.
Диспетчеризация с перераспределением процессорного времени между задачами, то есть вытесняющая многозадачность (preemptive multitasking) – это такой способ, при котором решение о переключении процессора с выполнения одного процесса на выполнение другого процесса принимается диспетчером задач, а не самой активной задачей. Дисциплина RR и многие другие, построенные на ее основе, относятся к вытесняющим.
Планирование и диспетчеризация процессов и задач
Очень часто возникает задача подбора такого множества процессов, что при выполнении они будут как можно реже конфликтовать из за имеющихся в системе ресурсов. Такая задача называется планированием вычислительных процессов. Но в настоящее время актуальность этой задачи не так велика. На первый план вышли задачи динамического планирования, т.е. текущего наиболее эффективного распределения ресурсов, возникающего практически при каждом событии. Задачи динамического планирования стали называться диспетчеризацией.
Стратегия планирования определяет, какие процессы мы планируем на выполнение для того, чтобы достичь поставленной цели. Можно выделить следующие стратегии:
по возможности заканчивать вычисления в том же самом порядке, в котором они были начаты;
отдавать предпочтения более коротким процессам;
предоставлять всем пользователям одинаковые услуги.