![](/user_photo/2706_HbeT2.jpg)
- •Системное программное обеспечение
- •Основные понятия теории операционных систем
- •Прерывания
- •Классификация операционных систем
- •Архитектура аппаратных и программных средств персонального компьютера
- •Регистры микропроцессоров Intel 8086/88
- •Формирование физического адреса
- •Прерывания
- •Особенности архитектуры микропроцессоров i80x86
- •Реальный и защищенный режимы работы процессора
- •Новые системные регистры микропроцессоров i80х86
- •Адресация в 32-разрядных микропроцессорах i80х86 при работе в защищенном режиме
- •Система прерываний 32-разрядных микропроцессоров i80х86
- •Управление задачами в операционных системах
- •Планирование процессов и диспетчеризация задач
- •Стратегии планирования (диспетчеризации)
- •Дисциплины диспетчеризации
- •Диспетчеризация задач с использованием динамических приоритетов
- •Управление памятью в операционных системах
- •Память и отображение, виртуальное адресное пространство
- •Простое непрерывное распределение и распределение с перекрытием
- •Распределение статическими и динамическими разделами
- •Разрывные методы распределения памяти
- •Распределение оперативной памяти в современных ос для пк
- •Управление вводом/выводом в операционных системах
- •Основные системные таблицы ввода-вывода
- •Файловая система
- •Структура магнитного диска
- •Файловая система fat
- •Файловая система ntfs
- •Структура тома с файловой системой ntfs
- •Основные отличия fat от ntfs
- •Управление параллельными взаимодействующими вычислительными процессами
- •Использование блокировки памяти при синхронизации параллельных процессов.
- •Синхронизация процессов посредством операции «проверка и установка»
- •Семафорные примитивы Дейкстры
- •Мониторы Хоара
- •Почтовые ящики
- •Конвейеры (программные каналы)
- •Очереди сообщений
- •Проблема тупиков и методы борьбы с ними
- •Предотвращение тупиков
- •Обход тупиков
- •Распознавание тупика
- •Современные операционные системы
- •Семейство операционных систем unix
- •Основные понятия системы unix
- •Функционирование системы unix
- •Файловая система
- •Межпроцессорные коммуникации
Основные понятия теории операционных систем
Операционная система:
-
выполняет функции управления вычислительными процессами в вычислительной системе;
-
распределяет ресурсы вычислительной системы между различными вычислительными процессами;
-
образует программную (операционную) среду, в которой выполняются прикладные программы пользователей.
Параллельное существование терминов «операционная система» и «операционная среда» вызвано тем, что ОС может в общем случае поддерживать несколько операционных сред. Можно сказать , что операционная среда – это то системное программное окружение, котором могут выполняться программы, созданные по правилам работы этой среды.
Понятие вычислительный процесс или просто процесс является одним из основных при рассмотрении ОС. Последовательный процесс может включать в себя несколько задач. Задачей называют единицу работы, для выполнения которой предоставляется центральный процессор.
Примеры процессов:
-
выполнение прикладных программ пользователей;
-
редактирование текста;
-
трансляция исходной программы;
-
компоновка объектного модуля;
-
исполнение загрузочного модуля;
-
и.т.д.
Определение концепции процесса необходимо для выработки механизмов распределения и управления ресурсами. Понятие ресурса – это также основное понятие ОС. Ресурсом называется всякий объект, который может распределяться внутри системы.
Ресурсы бывают:
-
Делимые:
-
используемые одновременно;
-
используемые параллельно.
-
Неделимые.
-
-
При разработке первых ОС ресурсами считались:
-
процессорное время;
-
Системные ресурсы
память; -
каналы ввода/вывода;
-
периферийные устройства.
Например, внешняя память может разделяться одновременно, а доступ к ней – попеременно. Внешние устройства прямого доступа могут использоваться параллельно, а последовательного доступа, например принтер, не может считаться разделяемым ресурсом.
В настоящее время понятие ресурса превратилось в абстрактную структуру с целым рядом атрибутов, характеризующих способы доступа к этой структуре и ее физическое представление в системе. Кроме системных ресурсов, как ресурс стали толковать и такие объекты, как сообщения и синхросигналы, которыми обмениваются задачи.
Введение в состав вычислительной машины специальных контроллеров позволило совместить во времени (распараллелить) операции вывода данных и последующие вычисления на центральном процессоре. Но все равно процессор продолжал часто и долго простаивать, дожидаясь завершения очередной операции ввода/вывода. Поэтому был организован мультипрограммный (многозадачный) режим работы вычислительной системы. Суть его состоит в том, что пока один процесс (задача) ожидает завершения очередной операции ввода/вывода, другая задача может быть поставлена на решение.
Ресурс может быть выделен задаче, обратившейся к супервизору ОС, если:
-
он свободен и в системе нет запросов от задач более высокого приоритета к этому же ресурсу;
-
текущий запрос и ранее выданные запросы допускают совместное использование ресурсов;
-
ресурс используется задачей низшего приоритета и может быть временно отобран.
В обычных ОС процесс появляется при запуске какой-нибудь программы. Он всегда находится в активном состоянии. В ОС реального времени многие процессы могут находиться в состоянии бездействия, т.е. находятся в пассивном состоянии.
Активный процесс, в свою очередь, может быть в одном из следующих состояний:
-
выполнения (running) – все затребованные процессом ресурсы выделены. В таком состоянии в однопроцессорной вычислительной системе находиться только один процесс;
-
готовности к выполнению (ready) – ресурсы могут быть предоставлены, тогда процесс перейдет в состояние выполнения;
-
ожидания (блокирования – blocked) – затребованные ресурсы не могут быть предоставлены, или не завершена операция ввода/вывода.
За время своего существования процесс может неоднократно совершать переходы из одного состояние в другое. Возможные переходы процесса изображены в виде графа состояний на рис. 2.
Рис. 2. Граф состояний процесса
Процесс из состояния бездействия может перейти в состояние готовности в следующих случаях:
-
по команде пользователя;
-
при выборе из очереди планировщиком;
-
по вызову из другой задачи;
-
по прерыванию от внешнего устройства, запускающего задачу;
-
при наступлении запланированного времени запуска программы.
Процессу, находящемуся в состоянии готовности, выделены все необходимые ресурсы, кроме центрального процессора. При выделении процессора он перейдет в состояние выполнения.
Из состояния выполнения процесс может выйти по одной из следующих причин:
-
процесс сообщает супервизору ОС о своем завершении. Супервизор либо переводит его в список бездействующих процессов, либо уничтожает;
-
процесс переводится супервизором ОС в состояние готовности в связи с появлением более приоритетной задачи или в связи с окончанием выделенного ему кванта времени;
-
процесс блокируется либо вследствие запроса операции ввода/вывода, либо в силу невозможности предоставить запрошенный ресурс.
При наступлении соответствующего события (завершилась операция ввода/вывода, освободился затребованный ресурс, в оперативную память загружена необходимая страница виртуальной памяти) процесс деблокируется и переводится в состояние готовности.
Таким образом, движущей силой, меняющей состояние процессов, являются события. Один из основных видов событий – это прерывания.
Понятие процесса было введено для реализации идей мультипрограммирования, а для реализации мультизадачности в ее исходном толковании ввели так называемые «легковесные» процессы – потоки или треды (tread – поток, нить). Когда говорят о процессах, тем самым отмечают их обособленность: у каждого процесса имеется свое виртуальное адресное пространство, каждому процессу назначаются свои ресурсы. В процессах же может быть внутренний параллелизм. Если процесс разбить на подпроцессы (потоки), то у пользователя появляется возможность параллельно выполнять несколько операций в рамках одного процесса. Потоки не имеют собственных ресурсов, они развиваются в том же адресном пространстве, что и данный процесс. Единственно, что им нужно иметь, – это процессорный ресурс.
Итак, сущность «поток» была введена для того, чтобы именно с помощью этих единиц распределять процессорное время между возможными работами.