- •Классификация и характеристика программного обеспечения
- •Назначение, классификация системного программного обеспечения. Требования к спо
- •Формирование целостного представления о назначения организации сис по.
- •Овладение методами и инструментами: настройки, откладки, диагностики и защиты программных систем.
- •Назначение, функции и основные качества операционных систем. Требования к современным ос
- •Поколения операционных систем и их классификация
- •Функциональные компоненты операционных систем: подсистема управления ресурсами
- •1.1. Управление процессами
- •1.2. Управление памятью
- •1.3. Управление файлами и внешними устройствами
- •Функциональные компоненты операционных систем: подсистема управления задачами
- •2.1. Защита данных и администрирование
- •2.2. Интерфейс прикладного программирования
- •2.3. Пользовательский интерфейс
- •Архитектура операционных систем: ядро и вспомогательные модули ос
- •Модулями ос
- •Архитектура операционных систем: ядро в привилегированном режиме
- •В привилегированном режиме
- •К привилегированному ядру
- •Архитектура операционных систем: многослойная структура ос
- •Типовые средства аппаратной поддержки операционных систем
- •Концепция, преимущества и недостатки микроядерной архитектуры
- •Пространство
- •Мультипрограммирование. Реализация в системах пакетной обработки
- •Ввода-вывода
- •В мультипрограммной системе (б)
- •Мультипроцессорная обработка: сущность и характеристика
- •Понятия «процесс» и «поток», операции над процессами в мультипрограммных системах
- •Планирование и диспетчеризация потоков в мультипрограммных системах
- •Состояния потока в мультипрограммных системах
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Алгоритмы планирования, основанные на квантовании
- •Алгоритмы планирования, основанные на приоритетах
- •Синхронизация процессов и потоков: цели и средства синхронизации
- •Синхронизация процессов и потоков: гонки и тупики
- •Синхронизация процессов и потоков: критическая секция, блокирующие
- •Синхронизация процессов и потоков: использование семафоров
- •Синхронизация процессов и потоков: синхронизирующие объекты ос
- •Функции операционных систем по управлению памятью
- •Управление памятью: виртуальное адресное пространство и виртуальная память
- •Алгоритмы распределения памяти: распределение памяти фиксированными разделами
- •Алгоритмы распределения памяти: распределение памяти динамическими разделами, перемещаемые разделы
- •Управление памятью: страничное распределение
- •Управление памятью: сегментное распределение
- •Управление памятью: сегментно-страничное распределение
- •Мультипрограммирование на основе прерываний: диспетчеризация и приоритезация прерываний в ос
- •Мультипрограммирование на основе прерываний: системные вызовы
- •Управление вводом-выводом в операционной системе: основные понятия и концепции организации ввода/вывода
- •Режимы управления вводом/выводом. Основные системные таблицы ввода/вывода
- •2.1. Режимы управления вводом/выводом
- •2.2. Основные системные таблицы ввода-вывода
- •Управление вводом-выводом в операционной системе: кэширование операций ввода/вывода при работе с накопителями на магнитных дисках
- •Управление файлами: общий принцип работы операционной системы с файлами
- •Управление файлами: общая характеристика файловых систем (fat, fat32 и ntfs)
- •2.1. Файловая система fat
- •2.2. Файловые системы vfat и fat32
- •3. Файловая система ntfs
- •3.1. Структура тома с файловой системой ntfs
- •3.2. Возможности файловой системы ntfs по ограничению
- •Сетевые и распределенные операционные системы
- •Функциональные компоненты сетевой операционной системы
- •Одноранговые и серверные сетевые операционные системы
- •Интерфейс прикладного программирования (api)
- •1.1. Принципы построения интерфейсов ос
- •1.2. Варианты реализации функций api
- •1). Реализация функций api на уровне ос
- •2). Реализация функций api на уровне системы программирования
- •3). Реализация функций api с помощью внешних библиотек
- •Платформенно-независимый интерфейс posix
- •Технологии программирования сом
Алгоритмы планирования, основанные на приоритетах
Алгоритм планирования, основанные на приоритетах
Приоритеты обслуживания – другая важная концепция, вытесняющих алгоритмов планирования.
Приоритетное обслуживания предполагает наличие у потоков некоторой изначально известной характеристики – приоритета, на основание которой определяется порядок их выполнения.
Приоритет – число, характеризующее степень привилегированности потока при использовании ресурсов ВМ.
Значение приоритета включается в описатель процесса.
При назначении приоритета ОС учитывает:
Является этот процесс системным или прикладным
Каков статус пользователя, запустивший процесс
Было ли явное указание пользователя на присвоение процессу определённого уровня приоритета
В большинстве современных ОС возможно изменение приоритета потоков:
По инициативе самого потока
По инициативе пользователя
Когда ОС сама меняет приоритет в зависимости от складывающейся ситуации (изменение – динамическое)
Во избежание разбалансировки системы большинством разработчиков ОС ограничивает возможности пользователей на изменение приоритетов, т.е. приоритеты назначаются по умолчанию.
Существуют 2 разновидности приоритетного обслуживания:
обслуживание с относительными приоритетами
обслуживание с абсолютными приоритетами
Общим для них является то, что на выполнение из очереди готовых потоков выбирается поток, имеющий наивысший приоритет.
В системах с относительными приоритетами момент смены активного потока выбирается тогда, когда поток сам покинет процессор, перейдя в состояние ожидание, либо завершится поток, либо произойдёт ошибка.
Поясняется рис. 4а
Рис. 4. Графы состояний потоков в системах с относительными и
абсолютными приоритетами
В системах с абсолютными приоритетами выполнение активного потока прерывается, кроме названных причин, ещё и при условии, если в очереди готовых потоков появился поток с приоритетом выше, чем у активного. В этом случае, активный поток вытесняется в очередь готовых потоков, а поток с высшим приоритетом начинает выполняться.
Рис. 4б
Для систем разделения и реального времени, абсолютные приоритеты невозможны.
В системах пакетной обработки чаще применяются относительные приоритеты. А абсолютные приоритеты нужны там, где важна быстрая реакция на события.
Синхронизация процессов и потоков: цели и средства синхронизации
Цели и средства синхронизации
В виду многообразия современных ОС существует достаточно обширный класс средств ОС для взаимной синхронизации процессов и потоков.
Целью синхронизации является исключение гонок и тупиков в случаях:
Обмена данными между потоками
При разделении данных
При доступе к процессору и устройству Ввода-Вывода (ВВ)
Во многих ОС средства синхронизации называются средствами межпроцессорного взаимодействия (IPS – Inter process communication)
Эти средства делятся на 2 группы:
Средства межпроцессорной синхронизации
Средства межпроцессорного обмена данных
В мультипрограммной среде выполнение потока всегда имеет асинхронный характер. Нельзя с полной определённостью сказать, на каком этапе будет находиться выполнения процесса в конкретный момент времени. Ещё более неопределёнными бывают моменты прерывания потоков, время нахождения их в очередях, порядок выбора их на выполнение.
Таким образом, потоки в общем случае протекают независимо асинхронно друг от друга.
Поэтому любое взаимодействие процессов или потоков связано с их синхронизацией, которая заключается в согласовании их скоростей путём приостановки потока до наступления некоторого события и последующей его активизации.
Для синхронизации потоков прикладных программ программист может использовать собственные средства и приёмы синхронизации. Однако, такие потоки будут взаимодействовать в рамках одного процесса. С учётом этого, во многих случаях более эффективными или даже единственно возможными являются средства синхронизации, предоставляемые ОС в форме системных вызовов.
Средства синхронизация нужны не только для взаимодействия прикладных процессов, но и для внутренних нужд ОС. Поэтому у многих ОС имеет целый спектр средств синхронизации, более того, они чаще всего образуют иерархию.