- •Классификация и характеристика программного обеспечения
- •Назначение, классификация системного программного обеспечения. Требования к спо
- •Формирование целостного представления о назначения организации сис по.
- •Овладение методами и инструментами: настройки, откладки, диагностики и защиты программных систем.
- •Назначение, функции и основные качества операционных систем. Требования к современным ос
- •Поколения операционных систем и их классификация
- •Функциональные компоненты операционных систем: подсистема управления ресурсами
- •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 группы:
Симметричные и несимметричные многопроцессорные системы.
В свою очередь они рассматриваются по 2м аспектам:
С точки зрения архитектуры
С точки зрения организации вычислительного процесса
Симметричная архитектура мультипроцессорной системы предполагает однородность всех процессоров и единообразия их включения в систему. Такие системы плохо масштабируются.
В асимметричной (несимметричная) архитектуры могут отличаться как своими характеристиками так и функционально рулю, которым им поручается в системе. Эти процессоры могут и включаться по-разному.
Масштабирование по горизонтали (кластеры)
Отдельное устройство называют кластерами, а всю систему кластерной
С точки зрения способа организации вычислительного процесса наиболее простым является несимметричная мультипроцессирование по принципу ведущий, ведомый. Такой подход возможен как для архитектурных несимметричных систем, так для архитектурно – симметричных систем
имметричное мультипроцессирование – как способ организации вычислительного процесса может быть реализовано только в мультипроцессорной архитектуры. В таких системах ОС является общей для всех процессоров, и он равноправно участвую в управлении вычислительного процесса
В таких системах ОС полностью децентрализована, модули ОС выполняются на любой доступном процессоре. Все ресурсы выделяются для каждой выполняемой задачи по мере возникновения у них потребностей и никак не закрепляются за процессором.
При таком подходе все процессоры работают с одной и той же динамической выравниваемой нагрузкой. Кроме этого, в случае отказа одного процессора, симметричные системы автоматически сравнительно просто реконфигурируются.
Понятия «процесс» и «поток», операции над процессами в мультипрограммных системах
Понятие процесс и поток
Понятие процесс и поток в теории ОС напрямую связаны с мультипрограммированием. Эти понятия определяют внутренние единицы работы, между которыми будут разделяться ресурсы ВМ. В настоящее время в большинстве ОС определены 2 типа единицы работы:
Более крупная единица работы, обычно носит название процессов, реже задачи
Более мелких работ носит название потока, реже трейд, нить
Т.к. работа любой ВС заключается в выполнении некоторой программы, то и с процессом и с потоком связывается некоторый программный код, который для этих целей оформляется в виде исполняемого модуля.
Чтобы программный код выполнить необходимо:
Загрузить в ОП
Выделить место для его хранение данных
Предоставить доступ к устройствам ввода-вывода и др.
Исходя из этих задач, процесс рассматривается ОС, как заявка на потребление всех видов ресурсов кроме процессорного времени.
Процессорное время, как важнейший ресурс распределяется в ОС между потоками.
В некоторых ОС, в том числе и современных понятие поток отсутствует, только есть понятие процесса, в этом случае эффект мультипрограммной обработки возможен лишь при выполнении пакета задач (процесса). Добиться эффекта мультипрограммирования при выполнении лишь одного процесса, можно лишь разделив его на потоки и выполняя их параллельно на разных устройствах ВМ. Таким образом, потоки возникли в ОС как средства распараллеливания вычислений. Задача распараллеливания вычислений может быть решена традиционными способами. Например:
Программист может взять всё на себя в рамках разрабатываемого приложения создать подпрограмму диспетчер, которая в ходе вычислительного процесса будет передавать управление то одной, то другой ветви программы.
Создание для одного приложения нескольких процессов для каждой из параллельных работ.
С учетом названных способов распараллеливание вычисление в рамках традиционного подхода можно отметить, что нужен другой механизм распараллеливания вычислений, который учитывал бы тесные связи между отдельными ветвями вычислений одного и того же приложения и не вносил бы запутанности в алгоритм решения задач. Такой механизм в современных ОС называет многопоточной обработкой, он предполагает:
Введение новой единицы работы
Понятие процесс меняет смысл, его смысл заключается в назначение адресного пространства и набором ресурсов, которые совместно используются всеми его потоками
Понятие поток соответствует последовательный переход процессора от одной команды программы к другой в течении времени, которой выделяет ОС на время работы.
Достоинства многопоточной обработки:
Меньшие накладные расходы
Потоки в адресном пространстве изолируются друг от друга в меньшей степени
Организовать взаимодействие обмена данными между потоками значительно проще
Мультипрограммирование более эффективно на уровне потоков, а не процессов, каждый поток имеет собственный счетчик команд и стек. Задача оформлена в виде нескольких потоков в рамках одного процесса может быть выполнена быстрее за счет псевдопараллельного выполнения их отдельных частей.
Наибольший эффект отведения многопоточной обработки достигается в мультипроцессорной системе, в которых потоки в том числе и принадлежащие одному процессору могут выполняться на разных процессорах действительно параллельно.
Операции над процессом
Подсистема управления над процессами выполняет следующие операции:
Создание процесса. Создание описателя процесса (индификатор процесса, данные о расположении исполняемого модуля, степень привилегированности процесса и т.п.) – включение его в очередь – выделение процессу начальных ресурсов.
При создании процесса ОС использует 2 основных типа информационных структур: дескриптор процесса и контекст процесса.
Дескриптор обычно содержит следующую информацию: состояние процесса – расположение образа процесса в ОП и на диске – значение отдельных составляющих приоритета и итоговое значение в глобальном приоритете – индификатор пользователя, создавший процесс – информацию о родственных процессах – информацию о событиях, осуществление которых ожидает процесс – индификатор названия процесса – область сохранения регистров – указатели выданных процессу ресурсов и др
Контекст процесса содержит менее оперативную, но более объемную часть информации о процессе, необходимого для возобновления выполнение процессе с требуемого места. Содержимое регистров процессора и программного счетчика – коды ошибок, выполняемых процессором системным вызовом - информацию обо всех открытых данным процессом файлом и незавершенных операциях вводов-выводов
уничтожение (удаление) его из системы. Ресурсы возвращаются системе – имя процесса удаляется из списка – блок управления процессом освобождается
запуск процесса
блокировка процесса
приостановка процесса
возобновление процесса
изменение приоритета процесса (работа с очередями)
Перечисленные операции присуще ОС, оперирующим только понятиям процесс. В ОС, где используются и процесс и поток часть перечисленных операций, характерных для процесса, а часть для потока