Microsoft windows xp мультизадачность

Продукт

>
Организация

>
День в истории управления и развития бизнеса

>
Октябрь в истории управления

>
25 Октября: Выпущена система Microsoft Windows XP — многозадачность и управление временем

25 октября 2001 года была выпущена знакомая всему миру операционная система Microsoft Windows XP. Эта версия вошла в практику использования как профессиональная версия.

Система Windows XP — это только клиентская система, которая выпущена во многих модификациях.

Приведем некоторые примеры. Система Windows XP Professional Edition для предпринимателей и предприятий разрешает шифрование файлов, удаленный доступ к рабочему столу ПК и поддержку многопроцессорных систем. Или другая версия, такая как система Windows Embedded for Point of Service. Она предназначена для пунктов сервиса и оптимизации розничной торговли и сферы услуг.

Система Windows XР по сравнению с предыдущими системами имеет ряд преимуществ: функциональные улучшения, возможность быстрого переключения между пользователями, улучшенная совместимость с программами, наличие удаленного помощника, сформированные функции управления системой и другие. Все это плюс многозадачная работа системы позволяет быстро и эффективно выполнять задачи.

Многозадачность — это свойство операционной системы обеспечивать параллельную обработку нескольких процессов. Многозадачная система динамически распределяют ресурсы на выполнение разных задач. Ее особенности следующие: каждая задача имеет свой приоритет, организуется очередь задач и обработка прерываний, обеспечивается защита адресного пространства, решаются конфликты доступа к устройствам и ресурсам, обеспечивается коммуникация между процессами.

Многозадачность системы позволяет экономить время для выполнения процессов. Управление временем позволяет эффективно решать задачи. Распределение времени и разбиение задач на подзадачи, выполнение этапами способствует скорому решению вопросов. Развитие информационных технологий привело к появлению разнообразных ресурсов, усовершенствующих наш рабочий процесс, позволяющих работать с огромными массивами информации за короткое время. Они дают необходимые средства для обработки данных, сведений, хранения больших объемов информации, передачи информации на любые расстояния за ограниченный промежуток времени. Управление временем с помощью информационных технологий имеет большие перспективы на будущее.

Система «Простой бизнес» позволяет создавать пользователям вести корпоративные проекыт и создавать отчеты по задачам. Их выполнение может идти параллельно. Назначение задач другим пользователям, передача информационных данных, управление задачами и рабочим временем сотрудников с помощью системы просто и эффективно реализуется.

Операционная система (в дальнейшем кратко ОС)  выступает посредником между человеком, аппаратурой компьютера и программами. Благодаря наличию операционной системы можно быть уверенным, что любая программа будет работать с любым устройством компьютера. Это позволяет воспринимать компьютер как единое целое, не вдаваясь в технические подробности.

Оглавление
1. Что такое Microsoft Windows
2. Интерфейс пользователя или пользовательский интерфейс
3. Драйверы для устройств
4. Что такое многозадачность

Мы взаимодействуем с операционной системой, а она уже следит за тем, чтобы оптимально исполнить наши команды. Фактически, операционная система представляет собой автоматизированную систему управления компьютером.

что такое microsof windows

Microsoft Windows – это графическая операционная система, ориентированная на организацию удобной работы пользователя на ПК.

В английском языке «window» означает «окно», а «windows» – «окна».

Иногда вместо «Microsoft Windows» встречается название «MS Windows». Здесь MS является сокращением от названия компании MicroSoft, основателем которой стал Билл Гейтс. Эта же компания является разработчиком офисных программ MS Office. К примеру, текстовый редактор Word, а также электронные таблицы Excel, презентации PowerPoint входят в состав офисного пакета MS Office.

Операционные системы семейства Windows пришли на смену операционным системам MS DOS, которые требовали от пользователя знания языка команд по управлению компьютером. Название «MS DOS» произошло от английского названия: MicroSoft Disk Operating System. Это была дисковая операционная система, разработанная фирмой Microsoft для IBM PC-совместимых персональных компьютеров.

Ниже приведен скриншот 1994 года. Так выглядела система MS DOS на экране персонального компьютера у пользователя.

Внешний вид MS DOS. Внизу видна строка для ввода команд MS DOS, которая начинается так C:\DOS>.

Операционная система Windows XP вышла в октябре 2001 года.

Следом за Windows XP появились новые версии операционной системы: Windows Vista, Windows 7, Windows 8 и последняя, но не окончательная Windows 10.

Что такое интерфейс пользователя

С развитием компьютеров на операционную систему возлагается все больше функций.

Механизм взаимодействия человека с программой называют интерфейсом пользователя или пользовательским интерфейсом.

Иначе говоря, интерфейс пользователя обеспечивает передачу информации между пользователем-человеком и программно-аппаратными компонентами компьютерной системы. Название образовано от анлийского «user interface», что можно перевести как «интерфейс пользователя» или «пользовательский интрефейс».

В понятие «интерфейс» включают внешний вид программы на экране монитора, основные принципы управления и даже конкретные команды. В операционной системе Windows у всех программ интерфейс пользователя строится примерно одинаково. Разные программы имеют похожее оформление, к ним применимы одни и те же приемы управления. Благодаря этому новые программы проще осваивать. Например, документы во всех программах открываются одинаково.

Драйверы для устройств

Другой очень важной функцией операционной системы является работа с оборудованием. Для каждого устройства компьютера нужен драйвер, т.е. небольшая программа, встраиваемая в операционную систему. Именно драйвер обеспечивает взаимодействие устройства с  прикладными программами, с которыми работают пользователи компьютеров.

Драйвер получает от программ стандартизированные команды и переводит их в специфические инструкции для каждого устройства: клавиатуры, мыши, принтера, сканера и других. Операционная система контролирует наличие драйверов устройств и корректность их работы.

Отличительным свойством графической системы Windows является необходимость использования манипулятора мышь. Это вызвано тем, что на экране Windows мы видим произвольно расположенные графические изображения, доступ к которым наиболее удобным образом обеспечивает манипулятор мышь.

Кстати, при первом подключении мыши к компьютеру автоматически устанавливаются драйвера для работы этого манипулятора.

В прежней дисковой операционной системе MS DOS пользователи вводили команды. При этом они видели перед собой черный текстовый экран, состоящий из 20-и строк. В каждой строке помещалось до 80-и текстовых символов. Манипулятор мышь применялся только в специальных графических приложениях, которые запускались сначала с помощью текстовых команд. И, таким образом, мышь применялась лишь как дополнительное средство управления.

Что такое многозадачность

Многозадачность в Windows – это способность одновременно выполнять несколько программ.

Например, в процессе подготовки текста в текстовом редакторе можно ещё параллельно печатать что-то на принтере и проверять отсутствие вирусов на жестком диске.

И аппаратные, и программные средства не застрахованы от сбоев. Задача операционной системы (ОС) состоит в том, чтобы свести последствия таких сбоев к минимуму. В ОС Windows ошибка отдельной программы обычно не влияет на работу других активных программ и на саму операционную систему.

Когда компьютер работает в составе локальной компьютерной сети (сети, состоящей из нескольких или многих компьютеров, например, в пределах одного офиса или даже квартиры), сетевые операции также выполняются под контролем операционной системы. ОС контролирует доступ к локальной сети и обеспечивает безопасность работы компьютера в локальной сети.

Операционная система Windows обеспечивает совместимость с ранее созданным программным обеспечением. Она позволяет при соответствующих настройках запускать и выполнять программные продукты, созданные в другой операционной системе. Например, в Windows 10 можно использовать многие программы, которые работали в Windows 7.

В комплект поставки Windows входит большое количество служебных и стандартных программ (графический редактор Paint, текстовый редактор Блокнот и т.д.), выполняющих всевозможные сервисные и пользовательские функции. Это также повышает привлекательность Windows, делает ее очень удобным и во многом незаменимым помощником пользователя персонального компьютера.

P.S. Дополнительные материалы:

1. Как перевернуть экран в Windows 10: два способа

2. Два интерфейса Windows 8 – два способа управления

3. Основные элементы меню Пуск для Windows 7

4. Панель задач Windows XP

5. Плюсы и минусы Андроида

Страницы работы

Содержание работы

Модуль 3.

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРА

Лекция 2. Операционная система Windows

Содержание лекции

Лекция 2. Операционная
система Windows. 3

Особенности
операционных систем Windows. 3

Преимущества
приоритетной многозадачности и  многопоточности. 3

Технология
Plug-and-Play. 4

Графический
пользовательский интерфейс. 5

Концепция
Windows XP. 5

Пользовательский
интерфейс Windows XP. 7

Основные
элементы экранного интерфейса. 7

Меню
Пуск. 10

Панель
задач. 15

Ярлыки
для программ, файлов и папок. 19

Запуск
программ.. 20

Начало
и завершение работы Windows XP. 20

Окна в
системе Windows. 22

Окно
приложения и окно документа. 22

Диалоговое
окно. 23

Управление
окнами. 24

Дополнительные
возможности Windows XP. 26

Работа
с компакт-дисками. 26

Работа
с цифровыми фотографиями. 28

Справочная
система Windows XP. 29

Поисковая
система Windows XP. 31

Встроенные
приложения Windows XP. 34

Программа
Калькулятор. 35

Графический
редактор Paint 37

Текстовые
редакторы Блокнот и WordPad. 39

Проигрыватель
Windows Media. 40

Создание
слайд-фильма с помощью  Windows Movie Maker. 43

Особенности операционных систем Windows                                                                   

Операционные системы семейства Windows,
начиная с версии Windows 95, имеют общие особенности, ключевыми из которых
являются:

·  простота в работе, достигаемая использованием
графического интерфейса, технологии поддержки самонастраивающейся аппаратуры
Plug-and-Play, встроенной сетевой поддержки, усовершенствованной обучающей и
справочной системы, допустимостью применения длинных имен файлов и др.;

·  повышенная производительность, обусловленная такими
свойствами Windows, как вытесняющая многозадачность и многопоточность,
повышенная устойчивость к сбоям, ускоренная печать, наличие высокоэффективных
мультимедийных компонентов и т.д.;

·  совместимость с существующими приложениями MS-DOS и
предыдущих версий Windows, поддержка любого оборудования и драйверов устройств,
сетевая совместимость с другими сетевыми операционными системами (далее – ОС).

Рассмотрим основные принципы и технологии Windows
более подробно.

Преимущества приоритетной многозадачности и 
многопоточности

ОС Windows обеспечивает возможность выполнения
одновременно нескольких задач. Каждая из разных по содержанию задач решается
практически одновременно в своем окне (отсюда и происхождение самого названия windows
– «окна»). Информация о вызванных программах в виде значков отображается на Панели
задач
. Однако, несмотря на производимое впечатление, в действительности
обычные компьютеры (с одним центральным процессором) не могут выполнять большое
количество разных приложений в один и тот же момент времени. Как правило, компьютеры
одновременно работают с одной задачей. Правда при этом отдельные операции могут
выполняться с очень большой скоростью. Таким образом, операционная система
может очень быстро переключаться с одного приложения на другое,  и у
пользователя создается впечатление одновременной работы приложений.

Самые первые версии Windows (например, Windows 3.11)
требовали от каждого приложения «добровольной» передачи контроля над
центральным процессором в различные моменты выполнения задачи, что позволяло
операционной системе передавать управление другой запущенной программе. Такой
режим работы называется режимом
кооперативной многозадачности
. При этом каждое приложение могло
захватить столько процессорного времени, сколько считало нужным, и часто то или
иное приложение «не желало» делиться ресурсами центрального процессора, т.е.
операционная система не могла «навести порядок».

Современные версии Windows поддерживают режим вытесняющей многозадачности, который
более совершенен. Он основан на приоритетах.
Приоритет — это величина, отражающая важность приложения.

Каждое приложение имеет некоторый приоритет.
Операционная система выделяет выполняющемуся приложению процессорное время в
соответствии с текущими приоритетами. Операционной системе не приходится ждать,
пока приложение или какая-нибудь операция в нем не откажется от контроля за
ресурсами центрального процессора, для того чтобы передать управление другой,
более приоритетной программе. Говорят, что более приоритетное приложение вытесняет
менее приоритетное. Это позволяет избегать так называемых зависаний
системы.

В Windows для повышения эффективности системы
используется также принцип
многопоточности
.

Многопоточность — это особый механизм, предусмотренный для          32-разрядных
приложений, позволяющий создавать и выполнять несколько потоков в одном
приложении. Поток (thread) — часть программы, которой может быть выделено
процессорное время и доля ресурсов наряду с другими частями программы для
одновременного выполнения. Например, текстовый редактор, состоящий из
нескольких потоков, способен существенно увеличить скорость обработки отдельных
операций и упростить работу пользователя: один поток может управлять вводом
текста  с клавиатуры и отображением его на экране дисплея, другой одновременно
выполнять какую-то фоновую операцию, например, проверку орфографии, а третий
распечатывать документ на принтере.

Распределение времени между активными приложениями в
Windows осуществляет ядро операционной системы, а поддержка вытесняющей многозадачности
обеспечивает плавное переключение между одновременно выполняемыми приложениями
и не позволяет одному приложению занять все системные ресурсы.

Технология Plug-and-Play

Технология Plug-and-Play («включай и работай»),
которая используется в Windows, позволяет без ручной настройки подключать новые
устройства к ЭВМ, например, принтер или лазерный проигрыватель. Она
ориентирована на поддержку любого типа устройств, включая мониторы, видеоплаты,
принтеры, звуковые карты, модемы, приводы CD-ROM, различные контроллеры жестких
дисков.

ОС самостоятельно создаёт и изменяет файлы
конфигурации, распознаёт конкретное техническое устройство и производит его
автонастройку. Она автоматически подбирает драйвер для работы этого устройства.

Драйверы
(driver – шофер, водитель) – системные программы, обеспечивающие работу
принтеров, дисководов, дисплеев, клавиатуры и других внешних устройств ЭВМ.

Microsoft предоставляет 32-разрядные драйверы для всех
основных устройств Plug-and-Play. Производители специального оборудования сами
разрабатывают подобные программы. При установке устройства, которое требует
наличия драйвера, отсутствующего в числе поставляемых в составе Windows, будет
выдан запрос о необходимости вставить установочную дискету с нужным драйвером
для этого устройства. Дополнительные устройства подключаются специальными программами-мастерами,
которые либо сами распознают устройство, либо в диалоговом режиме запрашивают
дополнительную информацию, благодаря чему процесс подключения устройств упрощается.

Графический
пользовательский интерфейс

Похожие материалы

  • MS Excel: Методические рекомендации к лабораторной работе
  • MS Word: Методические указания по выполнению лабораторной работы
  • Работа в электронной таблице MS Excel

Информация о работе

Аннотация: Основные термины и понятия, необходимые для обсуждения параллельных вычислений; общие подходы к созданию многопроцессорных вычислительных установок и планирование потоков в операционных системах.

Многозадачность в Windows

Для современных операционных систем и для различных систем программирования в современном мире поддержка разработки и реализация многозадачности стала необходимой. При этом на применяемые решения влияет значительное число факторов.

Конкретная реализация очень сильно зависит от того, какая вычислительная система и какие аспекты работы этой системы рассматриваются с точки зрения многозадачности. Так, например, в некоторых случаях эффективным способом реализации многозадачности может быть использование асинхронных операций ввода-вывода; в других случаях будет целесообразным использование механизмов передачи сообщений; очень часто применяется обмен данными через область совместно доступной памяти. Поэтому знакомство следует начать с основных сведений о вычислительных системах.

Современные операционные системы, как правило, поддерживают несколько различных механизмов многозадачности. Конкретный выбор в конкретной системе зачастую оказывает значительное влияние на правила разработки приложений. Поэтому следующим шагом должно быть знакомство с поддержкой многозадачности операционными системами. Мы рассмотрим в общих чертах реализацию многозадачности в Windows.

Однако, главным является не компьютер и не установленная на нем операционная система — всё это делается только для того, чтобы обеспечить эффективное выполнение приложений. Соответственно знакомство с многозадачностью должно завершиться обсуждением средств, которые операционная система предоставляет разработчикам приложений, и некоторым приемам разработки приложений.

Основные понятия

Начиная знакомство с многозадачными системами, необходимо выделить понятия мультипроцессирования и мультипрограммирования.

  • Мультипроцессирование — использование нескольких процессоров для одновременного выполнения задач.
  • Мультипрограммирование — одновременное выполнение нескольких задач на одном или нескольких процессорах.

В завершение знакомства укажем некоторые термины, определяющие базовые понятия, которыми оперируют операционные системы.

Мультипроцессирование

Говоря о мультипроцессировании, необходимо выделить ситуации, когда используются различные виды оборудования, например, одновременная работа центрального процессора и графического ускорителя видеокарты; либо когда организуется одновременная работа равноправных устройств, выполняющих сходные задачи. Последний случай (см. рис. 6.1) также предполагает различные подходы — с выделением управляющего и подчиненных устройств (асимметричное мультипроцессирование), либо с использованием полностью равноправных (симметричное мультипроцессирование).

Рис.
6.1.
Разные подходы к реализации мультипроцессирования

В современных компьютерах одновременно сосуществует несколько различных реализаций мультипроцессирования. Так, например, практически всегда применяются функционально различные устройства — центральный процессор, видеосистема, контроллеры прямого доступа к памяти (по сути, специализированные процессоры), интеллектуальные периферийные устройства и так далее. В большинстве случаев организация одновременной работы функционально различных устройств осуществляется на уровне операционной системы и требует непосредственного доступа к аппаратуре компьютера. Для разработчиков приложений возможность использования такого мультипроцессирования во многих случаях ограничивается применением асинхронных функций ввода-вывода.

Кроме того, очень часто используются многопроцессорные вычислительные системы, в которых используется несколько центральных процессоров. Сложилось несколько подходов к созданию таких компьютеров:

  • наиболее массовыми являются так называемые SMP (Shared Memory Processor или Symmetric MultiProcessor) машины. В таких компьютерах несколько процессоров подключены к общей оперативной памяти и имеют к ней равноправный и конкурентный доступ (см. рис. 6.2). По мере увеличения числа процессоров производительность оперативной памяти и коммутаторов, связывающих процессоры с памятью, становится критически важной. Обычно в SMP используются 2-8 процессоров; реже число процессоров достигает десятков. Взаимодействие одновременно выполняющихся процессов осуществляется посредством использования общей памяти, к которой имеют равноправный доступ все процессоры.

    Рис.
    6.2.
    SMP компьютер

  • при необходимости создания систем с качественно большим числом процессоров прибегают к MPP (Massively Parallel Processors) системам. Для этого используют несколько однопроцессорных или SMP-систем, объединяемых с помощью некоторого коммуникационного оборудования в единую сеть (см. рис. 6.3). При этом может применяться как специализированная высокопроизводительная среда передачи данных, так и обычные сетевые средства — типа Ethernet. В MPP системах оперативная память каждого узла обычно изолирована от других узлов, и для обмена данными требуется специально организованная пересылка данных по сети. Для MPP систем критической становится среда передачи данных; однако в случае мало связанных между собой процессов возможно одновременное использование большого числа процессоров. Число процессоров в MPP системах может измеряться сотнями и тысячами.

    Рис.
    6.3.
    MPP система

  • иногда используют так называемые NUMA и cc-NUMA архитектуры; они являются компромиссом между SMP и MPP системами: оперативная память является общей и разделяемой между всеми процессорами, но при этом память неоднородна по времени доступа. Каждый процессорный узел имеет некоторый объем оперативной памяти, доступ к которой осуществляется максимально быстро; для доступа к памяти другого узла потребуется значительно больше времени (см. рис. 6.4). cc-NUMA отличается от NUMA тем, что в ней на аппаратном уровне решены вопросы когерентности кэш-памяти (cache-coherent) различных процессоров. Формально на NUMA системах могут работать обычные операционные системы, созданные для SMP систем, хотя для обеспечения высокой производительности приходится решать нетипичные для SMP задачи оптимального размещения данных и планирования с учетом неоднородности памяти.

    Рис.
    6.4.
    NUMA или cc-NUMA система

Таким образом, с точки зрения реализации мультипроцессирования, для разработчиков ПО важно иметь представление о том, каковы средства взаимодействия между параллельно работающими ветвями кода — общая память с равноправным или неравноправным доступом, либо некоторая коммуникационная среда с механизмом пересылки данных. Наибольшее распространение получили SMP и MPP системы, соответственно, большинство операционных систем содержат необходимые средства для эффективного управления SMP системами. Для реализации MPP систем, как правило, используются обычные операционные системы на всех узлах и либо обычные сетевые технологии, с применением распространенных стеков протоколов, либо специфичное коммуникационное оборудование со своими собственными драйверами и собственными средствами взаимодействия с приложениями. NUMA системы распространены в меньшей степени, хотя выпускаются серийно. Нормальным при этом является применение массовых операционных систем, рассчитанных на SMP установки, несмотря на то, что это несколько снижает эффективность использования NUMA.

Windows содержит встроенные механизмы, необходимые для работы на SMP; также возможна установка этой ОС на cc-NUMA системах (современные версии Windows имеют механизмы поддержки cc-NUMA систем). Специальных, встроенных в ОС средств для исполнения приложений на MPP системах в Windows не предусмотрено. Windows предполагает альтернативное применение MPP систем, построенных на обычных сетях, для реализации web- или файловых серверов с балансировкой нагрузки по узлам кластера.

Мультипрограммирование

Мультипрограммирование (то есть одновременное выполнение разного кода на одном или нескольких процессорах) возможно и без реального мультипроцессирования. Конечно, при наличии только одного процессора должен существовать некоторый механизм, обеспечивающий переключение процессора между разными выполняемыми потоками. Такой режим разделения процессорного времени позволяет одному процессору обслуживать несколько задач «как бы одновременно»: осуществляя быстрое переключение между разными задачами и выполняя в данный момент времени код только одной задачи, процессор создает иллюзию одновременного выполнения кода разных задач. Более того, даже на многопроцессорных системах при реальной возможности распараллеливания задач по разным процессорам, обычно используют механизм разделения времени на каждом из доступных процессоров. Формально мультипрограммирование предполагает именно разделение процессорного времени, поэтому иногда его противопоставляют мультипроцессированию: реализация многозадачности на одном процессоре в противовес использованию многих процессоров.

Важно подчеркнуть, что мультипрограммирование предполагает управление одновременно выполняющимися приложениями пользователя, а не вообще всяким кодом. Любая реальная вычислительная система должна предусматривать специальные меры для своевременного обслуживания поступающих прерываний, исключений и остановок. Такое обслуживание должно выполняться независимо от работы приложений пользователя и в большинстве случаев имеет абсолютный приоритет над приложениями, так как задержка в обработке подобных событий чревата возникновением неустранимых сбоев и потерь данных. В результате операционные системы предоставляют некоторый механизм, обслуживающий возникающие прерывания и только в промежутках между прерываниями — приложения пользователя. Более того, поскольку аппаратные прерывания происходят в большинстве случаев асинхронно по отношению к приложениям и по отношению к другим прерываниям, то получается так, что система должна содержать два планировщика или диспетчера — один для прерываний, другой для приложений. Работа диспетчера прерываний здесь не рассматривается, поскольку относится сугубо к ядру операционной системы и практически не затрагивает работу приложений.

В мультипрограммировании ключевым местом является способ составления расписания, по которому осуществляется переключение между задачами (планирование), а также механизм, осуществляющий эти переключения.

По времени планирования можно выделить статическое и динамическое составление расписания (см. рис. 6.5). При статическом планировании расписание составляется заранее, до запуска приложений, и операционная система в дальнейшем просто выполняет составленное расписание. В случае динамического планирования порядок запуска задач и передачи управления задачам определяется непосредственно во время исполнения. Статическое расписание свойственно системам реального времени, когда необходимо гарантировать заданное время и сроки выполнения необходимых операций. В универсальных операционных системах статическое расписание практически не применяется.

Планирование задач

Рис.
6.5.
Планирование задач

Динамическое расписание предполагает составление плана выполнения задач непосредственно во время их выполнения. Выделяют динамическое планирование с использованием квантов времени — когда каждой выполняемой задаче назначают определенной продолжительности квант времени (фиксированной или переменной продолжительности) и планирование с использованием приоритетов — когда задачам назначают специфичные приоритеты и переключение задач осуществляют с учетом этих приоритетов. В реальных операционных системах обычно имеет место какая-либо комбинация этих подходов.

Понятия абсолютных и относительных приоритетов связаны с их влиянием на момент переключения с одной задачи на другую: в системах с абсолютными приоритетами такое переключение выполняется, как только в очереди готовых к исполнению задач появляется задача с более высоким приоритетом, чем выполняемая. В системах с относительными приоритетами появление более приоритетной задачи не приводит к немедленному переключению — момент переключения задач будет определяться по каким-либо иным критериям.

Выделяют понятия вытесняющей и невытесняющей многозадачности: в случае невытесняющей многозадачности решение о переключении принимает выполняемая в данный момент задача, а в случае вытесняющей многозадачности такое решение принимается операционной системой (или иным арбитром), независимо от работы активной в данный момент задачи.

На приведенном графе состояний задачи (см. рис. 6.6) прямая линия от состояния «выполнение» к состоянию «готовность» нарисована пунктиром, чтобы выделить отличие невытесняющей многозадачности от вытесняющей. В случае невытесняющей многозадачности выполняющаяся задача может либо завершиться, либо перейти в состояние «ожидание».

Граф состояния задачи

Рис.
6.6.
Граф состояния задачи

И тот, и другой переходы определены логикой работы самой задачи. На графе состояний задачи в случае невытесняющей многозадачности пунктирной линии от состояния «выполнение» к состоянию «готовность» не будет. В случае вытесняющей многозадачности вытеснение осуществляется по решению системы, а не только по инициативе задачи.

Для невытесняющей многозадачности характерно, что операционная система передает задаче управление и далее ожидает от нее сигнала, информирующего о возможности переключения на другую задачу; сама по себе операционная система выполняемую задачу не прерывает. Именно поэтому невытесняющая многозадачность рассматривается как многозадачность с относительными приоритетами — пока задача сама не сообщит, что настал подходящий для переключения момент, система не сможет передать управление никакой другой, даже высокоприоритетной, задаче.

Невытесняющая многозадачность проста в реализации, особенно на однопроцессорных машинах, и, кроме того, обеспечивает очень малый уровень накладных расходов на реализацию плана. Недостатками являются повышенная сложность разработки приложений и невысокая защищенность системы от некачественных приложений.

Характерный пример невытесняющей многозадачности — 16-ти разрядные Windows (включая собственно 16-ти разрядные версии Windows, выполнение 16-ти разрядных приложений в Windows-95, 98, ME и выполнение 16-ти разрядных приложений в рамках одной Windows-машины в NT, 2000, XP и 2003). В таких приложениях операционная система не прерывает выполнение текущей задачи до вызова ею функций типа GetMessage или WaitMessage, во время которых Windows осуществляет при необходимости переключение на другую задачу.

Вытесняющая многозадачность предполагает наличие некоторого арбитра, принадлежащего обычно операционной системе, который принимает решение о вытеснении текущей выполняемой задачи какой-либо другой, готовой к выполнению, асинхронно с работой текущей задачи.

В качестве некоторого обобщения можно выделить понятие «момент перепланирования», когда активируется планировщик задач и принимает решение о том, какую именно задачу в следующий момент времени надо начать выполнять. Принципы, по которым назначаются моменты перепланирования, и критерии, по которым осуществляется выбор задачи, определяют способ реализации многозадачности и его сильные и слабые стороны.

Так, если моменты перепланирования наступают только вследствие явного вызова функций приложением, мы имеем дело с невытесняющей многозадачностью и относительными приоритетами. Если смена приоритета вызывает перепланирование — значит, это система с абсолютными приоритетами и вытесняющей многозадачностью. Если моменты перепланирования наступают по исчерпанию временных квантов (возможно постоянного размера, а возможно и переменного), то система поддерживает вытесняющую многозадачность с квантованием.

Большинство современных операционных систем используют комбинированные планировщики, одновременно применяющие квантование с переменной продолжительностью кванта и абсолютные или относительные приоритеты (см. рис. 6.7).

Моменты перепланирования задач

Рис.
6.7.
Моменты перепланирования задач

Выбор задачи, которая начнет выполняться вследствие срабатывания планировщика, также определяется многими факторами. Среди важнейших — приоритет готовых к исполнению задач. Однако, помимо этого, часто принимают во внимание текущее и предыдущее состояния задачи. Такой подход позволяет реализовать достаточно сложный и тщательно сбалансированный планировщик задач. Очень часто применяют такой прием: назначенный задаче приоритет рассматривается в качестве некоторого «базового», а планировщик операционной системы может в определенных рамках корректировать реальный приоритет в зависимости от истории выполнения задачи. Типичными причинами коррекции приоритета являются:

  • запуск задачи (для возможно скорейшего начала исполнения);
  • досрочное освобождение процессора до исчерпания отведенного кванта (велик шанс, что задача и в этот раз так же быстро отдаст управление);
  • частый вызов операций ввода-вывода (при этом задача чаще находится в ожидании завершения операции, нежели занимает процессорное время);
  • продолжительное ожидание в очереди (приоритет ожидающей задачи часто постепенно начинают увеличивать);
  • и многие другие.

Работа планировщика существенно усложняется в случае SMP машин, когда необходимо принимать во внимание привязку задач к процессорам (иногда задаче можно назначить конкретный процессор) и то, на каком процессоре задача выполнялась до того (это позволяет эффективнее использовать кэш-память процессора).

Реализации Windows NT, 2000, XP, 2003+ предусматривают достаточно развитый и сложный планировщик, учитывающий множество факторов и корректирующий как назначение и длительность отводимых задаче квантов, так и приоритеты задач. При этом планировщик является настраиваемым, и его логика работы несколько отличается в зависимости от настроек системы (некоторые доступны через панель управления) и от назначения системы (работа планировщика различна у серверов и рабочих станций).

Важно отметить, что Windows является гибкой системой разделения времени с вытесняющей многозадачностью и не может рассматриваться в качестве системы реального времени. Даже те процессы, которые с точки зрения Windows относятся к классу процессов так называемого «реального времени», на самом деле требованиям, предъявляемым к системам реального времени, не удовлетворяют. Такие процессы получат приоритетное распределение процессорного времени и будут обрабатываться планировщиком с учетом их «особого статуса»; однако при этом нельзя гарантировать строгого выполнения временных ограничений. Более того, в силу используемых механизмов управления памятью, нельзя точно предсказать время, необходимое для выполнения той или иной операции. В любой момент времени при самом невинном обращении к какой-либо переменной или функции может потребоваться обработка ошибок доступа, подкачка выгруженных страниц, освобождение памяти и т.д. — то есть действия, время завершения которых предсказать крайне трудно. Фактически можно давать лишь вероятностные прогнозы по времени выполнения той или иной операции. До определенных рамок Windows можно применять в мягких системах реального времени — с достаточно свободными ограничениями, но даже незначительная вероятность превышения временных ограничений иногда просто недопустима.

Базовая терминология

В операционных системах сложилось несколько подходов к реализации многозадачности, и, соответственно, принятая в разных операционных системах терминология несколько отличается. Так, обычно разделяют понятия задачи, процесса и потока. При этом понятие задачи является в большей степени историческим, либо очень специфичным. Это понятие сформировалось, когда единицей выделения процессорного времени была сама задача; планировщик же мог только переключать задачи. В современных системах большее распространение получил подход, в котором в рамках одной «задачи» может быть выделено несколько одновременно выполняемых ветвей кода, соответственно термин «задача» заместился терминами «процесс» и «поток».

Процесс является объектом планирования адресного пространства и некоторых ресурсов, выделенных задаче. Но при этом процесс не является потребителем процессорного времени и не подлежит планированию.

Поток является объектом планирования процессорного времени. Дополнительно к этому с потоком ассоциируют некоторые другие свойства, например, пользователя, — это позволяет потокам даже одного процесса действовать от имени разных пользователей (воплощение) и использовать механизмы ограничения доступа к ресурсам операционной системы. Например, сервер, предоставляющий доступ к каким-либо файлам, может создать поток, обслуживающий конкретного клиента, и воплотить его с правами доступа, назначенными этому клиенту. Однако в данный момент для нас важно, что управление процессорным временем осуществляется применительно к потокам, а управление адресным пространством — применительно к процессам; каждый процесс содержит, как минимум, один поток.

Принято также деление потоков на потоки ядра и потоки пользователя (эти термины тоже неоднозначны). Потоки ядра в данном контексте являются потоками, для управления которыми предназначен планировщик, принадлежащий ядру операционной системы. Потоки пользователя при этом рассматриваются как потоки, которые управляются планировщиком пользовательского процесса. Строго говоря, потоки пользователя являлись переходным этапом между «задачами» и «процессами»: с точки зрения операционной системы использовались «задачи», которым выделялись и ресурсы, и процессорное время, тогда как разделение «задачи» на «потоки» осуществлялось непосредственно в самом приложении.

В Windows для обозначения этих понятий использованы термины process (процесс), thread (поток) и fiber (волокно). Достаточно часто термин «thread» переводится на русский язык как «нить», а не «поток». Термин «fiber» также может переводиться либо как «нить», либо как «волокно». Поток соответствует потоку ядра и планируется ядром операционной системы, а волокно соответствует потоку пользователя и планируется в приложении пользователя.

В операционной системе для описания потоков используются объекты двух типов — так называемые дескрипторы и контекст. Дескрипторы содержат информацию, описывающую поток, но не его текущее состояние исполнения. Контекст потока содержит информацию, описывающую непосредственно состояние исполнения потока. Так, например, дескриптор должен содержать переменные окружения, права доступа, назначенные потоку, приоритет, величину кванта и так далее, тогда как контекст должен сохранять информацию о состоянии стека, регистров процессора и т.д. Дескрипторы содержат актуальную в каждый момент информацию, а контекст обновляется в тот момент, когда поток выходит из исполняемого состояния. Из контекста восстанавливается состояние потока при возобновлении исполнения. Пока поток выполняется, содержимое контекста не является актуальным и не соответствует его реальному состоянию.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Что может блокировать порты на windows 10
  • На каком диске должна стоять windows
  • Как поменять имя юзера в windows 11
  • Gta sa windows store version
  • Где вы хотите установить windows 10 пусто