Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ОС.doc
Скачиваний:
35
Добавлен:
19.11.2018
Размер:
262.14 Кб
Скачать

1.Появление операционных систем и их функции.
2.Понятие операционных сред и оболочек.
3.Прерывания.
4.Вычислительный процесс и его состояния, дескриптор процесса.
5.Мультипрограммирование, многопользовательский режим работы и режим разделения времени.
6.Виды ресурсов и возможности их разделения.
7.Процессы и потоки.
8.Классификация операционных систем.
9.Планирование и диспетчеризация процессов и задач.
10.Основные дисциплины диспетчеризации.
11.Качество диспетчеризации и гарантии обслуживания.
12.Диспетчеризация задач с использованием динамических приоритетов.
13.Память и отображения, виртуальное адресное пространство.
14.Простое непрерывное распределение и распределение с перекрытием.
15.Распределение памяти статическими и динамическими разделами.
16.Сегментная организация памяти.
17.Страничная и сегментно-страничная организация памяти.
18.Основные концепции организации ввода-вывода в операционных системах.
19.Режимы управления вводом-выводом. Закрепленные и общие устройства ввода-вывода.
20.Основные системные таблицы ввода-вывода.
21.Синхронный и асинхронный ввод-вывод.
22.Организация внешней памяти на магнитных дисках.
23.Кэширование операций ввода-вывода при работе с накопителями на магнитных дисках.
24.Функции файловой системы и иерархия данных
25.Файловая система FAT
26.Файловые системы VFAT и FAT32
27.Файловая система HPFS
28.Основные возможности файловой системы NTFS.
29.Структура тома с файловой системой NTFS. Разрешения NTFS.
30.Независимые и взаимодействующие вычислительные процессы.
31.Использование блокировки памяти при синхронизации параллельных процессов.
32.Синхронизация процессов с помощью операций проверки и установки. Семафоры и мьютексы.
33.Мониторы Хоара.
34.Почтовые ящики.
35.Конвейеры и очереди сообщений.
36.Понятие тупиковой ситуации при выполнении параллельных вычислительных процессов.
37.Примеры тупиковых ситуаций и причины их возникновения
38.Предотвращение и обход тупиков.
39.Обнаружение и распознавание тупика.
40.Основные принципы построения операционных систем.
41.Открытость и безопасность операционных систем.
42.Микроядерные и макроядерные операционные системы
43.Требования к операционным системам реального времени
44.Интерфейсы операционных систем.
45.Семейство операционных систем UNIX.
46.Операционные системы Linux и FreeBSD.
47.Операционная система QNX.
48.Семейство операционных систем OS/2 Warp.
49.Операционные системы Windows 9x.
50.Операционные системы Windows NT/2000/XP.

Лекции по курсу: Операционные системы, среды и оболочки

Литература • 1. А.В. Гордеев.Операционные системы: Учебник для вузов. 2-е изд. – СПб.: Питер, 2004 – 416 с. • 2. Олифер Н.А., Олифер В.Г.. Сетевые операционные системы. Учебник. СпБ: Питер, 2001 – 544 с. • 3. Таненбаум Э. Современные операционные системы. 2-е изд. – СПб.: Питер, 2002 – 1040 с. • 4. Иртегов Д.В. Введение в операционные системы. – БХВ-Петербург, 2002 – 624 с.

Тема 1. Основные понятия дисциплины • 1. Появление операционных систем и их функции. • 2. Понятие операционных сред и оболочек. • 3. Прерывания. • 4. Вычислительный процесс и его состояния, дескриптор процесса. • 5. Мультипрограммирование, многопользовательский режим работы и режим разделения времени. • 6. Виды ресурсов и возможности их разделения. • 7. Процессы и потоки. • 8. Классификация операционных систем.

1. Появление операционных систем и их функции • Операционные системы относятся к системному программному обеспечению. • История появления и развития системного обеспечения началась с того момента, когда люди осознали, что любая программа требует операций ввода-вывода данных. Это произошло в 50-е годы прошлого столетия. Собственно операционные системы появились чуть позже. Основной причиной их появления было желание автоматизировать процесс подготовки вычислительного комплекса к выполнению программы.

• Для автоматизации труда программиста (кодера) стали разрабатывать специальные алгоритмические языки высокого уровня, а для автоматизации труда оператора вычислительного комплекса была разработана специальная управляющая программа, загрузив которую в память один раз оператор мог ее далее использовать неоднократно и более не обращаться к процедуре программирования ЭВМ через пульт оператора. Именно эту управляющую программу и стали называть операционной системой. Со временем на нее стали возлагать все больше задач, она стала расти в объеме.

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

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

1) прием от пользователя (или от оператора системы) заданий, или команд, сформированных на соответствующем языке, и их обработка. 2) загрузка в оперативную память подлежащих исполнению программ; 3) распределение памяти, а в большинстве современных систем и организация виртуальной памяти; 4) запуск программы; 5) идентификация всех программ и данных; 6) прием и исполнение различных запросов от выполняющихся приложений; 7) обслуживание всех операций ввода-вывода; 8) обеспечение работы систем управлений файлами (СУФ) и/или систем управления базами данных (СУБД); 9) обеспечение режима мультипрограммирования, то есть организация параллельного выполнения двух или более программ на одном процессоре, создающая видимость их одновременного исполнения; 10) планирование и диспетчеризация задач; 11) организация механизмов обмена сообщениями и данными между выполняющимися программами; 12) обеспечение взаимодействия связанных между собой компьютеров (для сетевых ОС); 13) защита одной программы от влияния другой, обеспечение сохранности данных, защита самой операционной системы от исполняющихся на компьютере приложений; 14) аутентификация и авторизация пользователей. Аутентификация –процедура проверки имени пользователя и его пароля на соответствие тем значениям, которые хранятся в его учетной записи. Авторизация – в соответствии с учетной записью пользователя, который прошел аутентификацию, ему назначаются определенные права. 15) удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для операционных систем реального времени); 16) обеспечение работы систем программирования, с помощью которых пользователи готовят свои программы; 17) предоставление услуг на случай частичного сбоя системы.

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

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

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

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

• Помимо основной операционной среды в операционной системе организованы (путем эмуляции иной операционной среды) дополнительные программные среды. • Параллельное существование терминов «операционная система» и «операционная среда» вызвано тем, что операционная система (в общем случае) может поддерживать несколько операционных сред. • Операционная среда может включать несколько интерфейсов (оболочек): пользовательские и программные. • Программы-оболочки относятся к классу системных программ. Они обеспечивают более удобный и наглядный способ общения с компьютером, чем штатные средства ОС. • Некоторые программы не заменяют «штатную оболочку», а дополняют ее или добавляют в нее новые функции. 3. Прерывания. • Прерывание – это принудительная передача управления от выполняемой программы к системе (а через нее — к соответствующей программе обработки прерывания), происходящая при возникновении определенного события. • Идея прерывания была предложена в середине 50-х годов. Основная цель введения прерываний — реализация асинхронного режима функционирования и распараллеливание работы отдельных устройств вычислительного комплекса. • Механизм прерываний реализуется аппаратно-программными средствами. Прерывание непременно влечет за собой изменение порядка выполнения команд процессором.

• Механизм обработки прерываний подразумевает выполнение шагов: 1) установление факта прерывания; 2) запоминание состояния прерванного процесса вычислений. 3) управление аппаратно передается на подпрограмму обработки прерывания; 4) сохранение информации о прерванной программе, которую не удалось спасти помощью аппаратуры; 5) собственно выполнение программы, связанной с обработкой прерывания; 6) восстановление информации, относящейся к прерванному процессу; 7) возврат на прерванную программу.

• Шаги 1-3 реализуются аппаратно, шаги 4-7 — программно. • Прерывания, возникающие при работе вычислительной системы, можно разделить на два основных класса: внешние (их иногда называют асинхронными) и внутренние (синхронные). • Внешние прерывания вызываются асинхронными событиями, которые происходят вне прерываемого процесса.

Внутренние прерывания вызываются событиями, которые связаны с работой процессора, и являются синхронными с его операциями. • Наконец, существуют собственно программные прерывания.

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

4. Вычислительный процесс и его состояния, дескриптор процесса • Как понятие процесс является определенным видом абстракции. Последовательный процесс, иногда называемый задачей (task), — это отдельная программа с ее данными, выполняющаяся на последовательном процессоре. Под последовательным мы понимаем такой процессор, в котором текущая команда выполняется после завершения предыдущей. • Концепция процесса предполагает два аспекта: во-первых, он является носителем данных и, во-вторых, он собственно и выполняет операции, связанные с обработкой этих данных.

• Необходимо отличать системные управляющие вычислительные процессы, представляющие работу супервизора операционной системы и занимающиеся распределением и управлением ресурсов, от всех других процессов: задач пользователей и системных обрабатывающих процессов. Последние, хоть и относятся к операционной системе, но не входят в ядро операционной системы и требуют общих ресурсов для своей работы, которые получают от супервизора. • Супервизор – центральный управляющий модуль ОС. • Для системных управляющих процессов, в отличие от обрабатывающих, в большинстве операционных систем ресурсы распределяются изначально и однозначно. Эти вычислительные процессы сами управляют ресурсами системы, в борьбе за которые конкурируют все остальные процессы.

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

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

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

• Мультипрограммирование стало применяться все чаще и шире в 60-х годах XX века • Упрощение пользовательского интерфейса и развитие интерфейсных функций ОС позволило реализовать диалоговый режим работы, который может быть реализован и без мультипрограммирования. • Совмещение диалогового режима работы с компьютером и режима мультипрограммирования привело к появлению мулътитерминальных, или многопользовательских, систем. • Организовать параллельное выполнение нескольких задач можно разными способами. Если на каждую задачу поочередно выделяется некий квант времени, после чего процессор передается другой задаче, готовой к продолжению вычислений, то такой режим принято называть режимом разделения времени. Системы разделения времени активно развивались в 60-70 годы, и сам термин означал именно мультитерминальную и мультипрограммную систему. 6. Виды ресурсов и возможности их разделения

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

• Основные виды ресурсов вычислительной системы: • 1. Процессор, точнее — процессорное время. Процессорное время делится попеременно (параллельно). • 2. Память. Оперативная память может делиться и одновременно, и попеременно. Внешняя память может разделяться и одновременно, а доступ к ней всегда разделяется попеременно. • 3. Внешние устройства, как правило, могут разделяемыми и выделенными. • 4. Программные модули (прежде всего, системные). Могут быть однократно и многократно используемыми. Однократно используемые могут быть правильно выполнены только один раз, являются неделимым ресурсом. Повторно используемые программные модули могут быть непривилегированными, привилегированными и реентерабельными.

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

7. Процессы и потоки.

• Мультипрограммный режим предполагает, что операционная система организует выполнение нескольких вычислительных процессов на одном компьютере, и каждый вычислительный процесс не зависит от другого процесса. • Термин мультизадачный режим работы стали применять как раз для тех случаев, когда необходимо обеспечить взаимодействие между вычислениями. • Понятие процесса было введено для реализации идей мультипрограммирования. • Для реализации мультизадачности было введено понятие легковесные (thin) процессы, или, как их теперь называют, потоки выполнения, нити, или треды (threads).

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

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

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

• Основной особенностью операционных систем реального времени (ОСРВ) является обеспечение обработки поступающих заданий в течение заданных интервалов времени, которые нельзя превышать. Одной из наиболее известных ОСРВ для персональных компьютеров является ОС QNX. • По архитектурному принципу операционные системы разделяются на микроядерные и макроядерные (монолитные). В некоторой степени это разделение условно но, однако можно в качестве яркого примера микроядерной ОС привести ОСРВ QNX, тогда как в качестве монолитной можно назвать Windows 95/98 или Linux.

Тема 2. Управление задачами • Планирование и диспетчеризация процессов и задач. • Качество диспетчеризации и гарантии обслуживания. • Диспетчеризация задач с использованием динамических приоритетов.

1. Планирование и диспетчеризация процессов и задач Операционная система выполняет следующие основные функции, связанные с управлением процессами и задачами: o создание и удаление задач; o планирование процессов и диспетчеризация задач;

o синхронизация задач, обеспечение их средствами коммуникации.

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

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

• Дисциплины диспетчеризации (дисциплины обслуживания) – правила формирования очереди готовых к выполнению задач. • Различают два больших класса дисциплин обслуживания: бесприоритетные и приоритетные. • При бесприоритетном обслуживании выбор задачи производится в некотором заранее установленном порядке без учета их относительной важности и времени обслуживания. • При реализации приоритетных дисциплин обслуживания отдельным задачам предоставляется преимущественное право попасть в состояние исполнения.

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

• Наиболее часто используемые дисциплины диспетчеризации. 1. FCFS (First Come First Served – первым пришел, первым обслужен) – задачи обслуживаются в порядке их появления. Те задачи, которые были заблокированы в процессе работы после перехода в состояние готовности вновь ставятся в эту очередь готовности. При этом возможны два варианта: 1) ставить разблокированную задачу в конец очереди готовых к выполнению задач. 2) диспетчер помещает разблокированную задачу перед теми задачами, которые еще не выполнялись. Образуется две очереди: одна очередь образуется из новых задач, а вторая очередь — из ранее выполнявшихся, но попавших в состояние ожидания.

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

3. SRT (Shortest Remaining Time) — следующим будет выполняться задание, которому осталось меньше всего выполняться на процессоре.

• Карусельная дисциплина обслуживания RR (Round Robin) – каждая задача получает процессорное время квантами времени (time slice) q. После окончания кванта времени q задача снимается с процессора, и он передается следующей задаче. Снятая задача ставится в конец очереди задач, готовых к выполнению.

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

• Невытесняющая (non-preemptive multitasking), или кооперативная многозадачность (cooperative multitasking), — это способ диспетчеризации задач, при котором активная задача выполняется до тех пор, пока она сама, «по собственной инициативе», не отдаст управление диспетчеру задач для того, чтобы тот выбрал из очереди другой, готовый к выполнению процесс или поток. FCFS, SJN, SRT относятся к невытесняющим. • Вытесняющая многозадачность (preemptive multitasking), —решение о переключении процессора с выполнения одной задачи на выполнение другой принимается диспетчером задач, а не самой активной задачей. RR и другие, построенные на ее основе, относятся к вытесняющим.

2. Качество диспетчеризации и гарантии обслуживания • Одна из проблем, которая возникает при выборе подходящей дисциплины обслуживания — это гарантия обслуживания. Более жестким требованием к системе, чем просто гарантированное завершение процесса, является его гарантированное завершение к указанному моменту времени или за указанный интервал времени.

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

Для сравнения алгоритмов диспетчеризации обычно используются критерии: • загрузка центрального процессора; • пропускная способность центрального процессора ; • время оборота (turnaround time) процесса; • время ожидания (waiting time); • время отклика.

Главные причины, приводящие к снижению производительности системы: • накладные расходы на переключение процессора.

• переключение на другую задачу в тот момент, когда текущая задача выполняет критическую секцию, а другие задачи активно ожидают входа в свою критичес­кую секцию.

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

3. Диспетчеризация задач с использованием динамических приоритетов • Основная стратегия обслуживания применяемая в UNIX-системах, — это равенство в обслуживании и обеспечение приемлемого времени реакции системы. • Каждый процесс имеет два атрибута приоритета: текущий приоритет, на основании которого происходит планирование, и заказанный относительный приоритет • Процесс, ожидающему недоступного в данный момент ресурса, имеет значение приоритета сна.

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

• В Windows NT/2000/XP каждый поток выполнения имеет базовый уровень приоритета. • Для определения порядка выполнения потоков диспетчер задач использует систему приоритетов, направляя на выполнение задачи с высоким приоритетом раньше задач с низким приоритетом. Система прекращает исполнение, или вытесняет, текущий поток, если становится готовым к выполнению другой поток с более высоким приоритетом. • Имеется группа очередей — по одной для каждого приоритета.

• Для системных модулей зарезервирована очередь с номером 0. • Большинство задач в системе относятся к классу переменного приоритета (номер очереди от 1 до 15). Диспетчер задач корректирует их приоритеты по мере выполнения. Диспетчер приостанавливает исполнение текущей задачи, после того как та израсходует свой квант времени. Приоритет задачи, выполняющей много вычислений, постепенно понижается, но диспетчер повышает приоритет задачи после ее освобождения из состояния ожидания.

• В OS/2 имеется четыре класса задач. Для каждого класса задач имеется своя группа приоритетов с интервалом значений от 0 до 31. Итого, 128 различных уровней. • Задачи, имеющие самые высокие значения приоритета, называются критическими по времени (time critical). • Следующий класс задач имеет название приоритетного (серверного).

Большинство задач относят к обычному классу, его еще называют регулярным, или стандартным. По умолчанию система программирования порождает задачу, относящуюся именно к этому классу. • Существует еще класс фоновых задач, называемый в OS/2 остаточным.

• Внутри каждого класса задачи, имеющие одинаковый уровень приоритета, выполняются в соответствии с дисциплиной RR. • В OS/2 используется механизм называется повышением приоритета Операционная система изменяет приоритет задачи в трех случаях: • 1) повышение приоритета активной задачи • 2) повышение приоритета ввода-вывода • 3) повышение приоритета «забытой» задачи