- •Операционные системы и среды
- •1.Назначение и функции ос. Характеристики современных ос.
- •2. Принципы построения ос. Ядро. Микроядерная архитектура.
- •Типы архитектур ядер операционных систем
- •3. Микроядерная архитектура(microkernel architecture)
- •3.Многозадачность и многопроцессорность ос Мультипрограммирование
- •1.Мультипрограммирование в системах пакетной обработки
- •2.Мультипрограммирование в системах разделения времени
- •3.Мультипрограммирование в системах реального времени
- •Мультипроцессорная обработка
- •4.Понятие процесса и потока. Планирование и диспетчеризация потоков. Алгоритмы планирования. Процессы и потоки
- •Алгоритмы планирования
- •1.Вытесняющие алгоритмы планирования, основанные на квантовании
- •2.Вытесняющие алгоритмы планирования, основанные на приоритетах
- •3.Смешанные алгоритмы планирования
- •5.Назначение и типы прерываний.
- •Механизм прерываний
- •6.Алгоритмы распределения памяти.
- •1. Алгоритмы распределения памяти без использования внешней памяти
- •1.2.Распределение памяти динамическими разделами
- •1.3.Распределение памяти перемещаемыми разделами
- •2.Алгоритмы распределения памяти с использованием внешней памяти
- •2.1.Страничное распределение
- •2.2.Сегментное распределение
- •2.3.Сегментное - страничное распределение
- •7. Файлы, типы файлов, атрибуты файлов.
- •8.Логическая и физическая организация файловой системы.
4.Понятие процесса и потока. Планирование и диспетчеризация потоков. Алгоритмы планирования. Процессы и потоки
Под процессом понимается программа в стадии выполнения. Процесс можно рассматривать также как единицу работы для процессора. Для современных типов процессоров существует и более мелкая единица работы поток или нить.
Процесс рассматривается ОС, как заявка на все виды ресурсов (память, файлы и пр.), кроме одного - процессорного времени.
Поток - это заявка на процессорное время.
В дальнейшем в качестве единицы работы ОС будут использоваться понятия процесс и поток. В тех же случаях, когда это не играет существенной роли, они будут называться задача.
Планирование процессов и потоков
Планирование означает определение момента: когда прервать выполнение активного потока и какой поток активизировать. Планирование выполняется на основе описателей потоков. Планирование процессов и потоков включает:
Создание-уничтожение процессов
Взаимодействие между процессами
распределение процессорного времени
Обеспечение процессов необходимыми ресурсами (единолично, совместно)
Синхронизация (контроль за возникновением «гонок», блокировок)
После завершения процесса - «зачистка», т.е. удаление следов пребывания в системе
Диспетчеризация: реализация результатов планирования. Включает в себя:
переключение потоков
сохранение контекста текущего потока
загрузка контекста нового потока
запуск нового потока
Алгоритмы планирования
Невытесняющие (non-preemptive) - поток выполняется, пока по собственной инициативе не отдаст управление ОС для активизации другого потока
Вытесняющие (preemptive) - решение о переключении принимается ОС
Вытесняющие алгоритмы планирования делятся на алгоритмы, основанные на:
квантовании
приоритетах
смешанные
1.Вытесняющие алгоритмы планирования, основанные на квантовании
Каждому потоку выделяется отрезок времени квант
Смена активного потока происходит, в случае:
поток завершился
произошла ошибка
поток перешел в состояние ожидания
исчерпан квант
Грубо величина кванта должна составлять менее 20млс. Кванты, выделяемые потоку, могут быть фиксированной величины, а могут меняться со временем. Современные ОС используют кванты переменной величины.
2.Вытесняющие алгоритмы планирования, основанные на приоритетах
В основе этих алгоритмов лежат принципы приоритетного обслуживания
Каждый поток имеет приоритет, число характеризующее степень привилегированности при использовании ресурсов
Приоритет потока связан с приоритетом процесса, который назначается при создании процесса
Значение зависит от того, является процесс системным или пользовательским, каков статус запустившего процесс. Существуют две разновидности приоритетного планирования: обслуживание с относительными и абсолютными приоритетами. В обоих случаях выбор потока на выполнение из очереди готовых, осуществляется одинаково: выбирается поток с наивысшим приоритетом. Однако проблема определения момента смены активного потока решается по-разному.
В системах с относительными приоритетами активный поток выполняется до тех пор пока сам не покинет процессор.
В системах с абсолютными приоритетами активный поток дополнительно к сказанному, может покинуть процессор в том случае, если в очереди готовых потоков появился поток с более высоким приоритетом.