Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос


Скачать 0.75 Mb.
Название Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос
страница 2/7
Тип Документы
rykovodstvo.ru > Руководство эксплуатация > Документы
1   2   3   4   5   6   7

Поддержка многозадачности

Однозадачные ОС (MS-DOS, MSX):

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

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

Многозадачные ОС (OC EC, OS/2, UNIX, Windows 95), кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.

Поддержка многопользовательского режима

Однопользовательские: MS-DOS, Windows 3.x, ранние версии OS/2;

Многопользовательские: UNIX, Windows NT.

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

(!) Не всякая многозадачная система является многопользовательской, и не всякая однопользовательская - однозадачной.

Вытесняющая и невытесняющая многозадачность

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

невытесняющая многозадачность (NetWare, Windows 3.x) - механизм планирования процессов целиком сосредоточен в ОС;

вытесняющая многозадачность (Windows NT, OS/2, UNIX) - механизм планирования процессов распределен между системой и прикладными программами.

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

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

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

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

Мультипрограммирование требует революции в строении вычислительной системы:

1) Реализация защитных механизмов.

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

2) Наличие прерываний.

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

3) Развитие параллелизма в архитектуре.

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

Не менее важна в организации мультипрограммирования роль ОС, реализующей:

организацию интерфейса между прикладной программой и ОС при помощи системных вызовов

организацию очереди из заданий в памяти и планирование выделение процессора одному из заданий

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

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

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

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

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

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

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

реактивность системы – способность системы выдерживать заранее заданные (возможно, очень короткие) интервалы времени между запуском программы и получением результата.

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

Мультипрограммирование в системах пакетной обработки.

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

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

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

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

Мультипрограммирование в системах разделения времени.

Повышение удобства и эффективности работы пользователя является целью систем разделения времени. Пользователям (или одному пользователю) предоставляется возможность интерактивной работы сразу с несколькими приложениями.

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

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

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

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

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

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

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

Это время – время реакции системы, а соответствующее свойство системы – реактивность. Требования ко времени реакции зависят от специфики управляемого процесса. Контроллер робота может требовать от встроенного компьютера ответ в течение менее 1 мс, в то время как при моделировании полета может быть приемлем ответ в 40 мс.

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

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

При проектировании программ под системы реального времени закладывается некоторый «запас» вычислительной мощности на случай пиковой нагрузки.

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

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

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

Недостатки такой организации системы:

– усложнение всех алгоритмов управления ресурсами (например, планирование процессов не для одного, а для нескольких процессоров)

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

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

Примеры ОС с мультипроцессорной – Sun Solaris 2.x, IBM OS/2, Microsoft Windows NT и т.д.

Различают симметричную и ассиметричную архитектуру таких систем.

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

Черты: возможность наращивания числа процессоров ограничена, т.к. все они пользуются одной и той же оперативной памятью и, следовательно, должны располагаться в одном корпусе – масштабируемость по вертикали до 4 или 8 процессоров; процессоры очень быстро обмениваются данными.

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

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

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

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

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

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

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

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

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

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

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

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

4. Роль прерываний при мультипрограммировании.

Мультипрограммирование, или многозадачность (multitasking), — это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ.

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

Различают следующие типы прерываний:

внешние (аппаратные),

внутренние (исключения -exception),

программные

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

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

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

5. Понятие процесса и потока. Создание процессов и потоков. Управляющие структуры процессов и потоков

Понятие процесса

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

Понятие потока

Потоки – последовательности команд.

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

Существует две основных категории реализации потоков:

Пользовательские потоки – потоки, реализуемые через специальные библиотеки потоков.

Потоки уровня ядра – потоки, реализуемые через системные вызовы.

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

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

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

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

Управляющие структуры процессов

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

  • идентификатор процесса (PID);

  • тип (или класс) процесса, который определяет для супервизора некоторые правила предоставления ресурсов;

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

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

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

  • информацию о ресурсах, которыми процесс владеет и/или имеет право пользоваться (указатели на открытые файлы, информация о незавершённых операциях ввода-вывода и др.);

  • место (или его адрес) для организации общения с другими процессами;

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

  • адрес задачи на диске (в случае отсутствия системы управления файлами) в её исходном состоянии и адрес на диске, куда она выгружается из ОП, если её вытесняет другая задача.

Операции над процессами

Изменением состояния процессов занимается ОС, совершая операции над ними.Основные операции над процессами удобно объединить в три пары:

  • создание процесса – завершение процесса (одноразовые);

  • приостановка процесса (перевод из состояния исполнение в состояние готовность) – запуск процесса (перевод из состояния готовность в состояние исполнение);

  • блокирование процесса (перевод из состояния исполнение в состояние ожидание) – разблокирование процесса (перевод из состояния ожидание в состояние готовность).

Необходимо помнить, что существует еще одна (непарная) операция: изменение приоритета процесса.


6. Контекст процесса и его состояния

Контекст процесса.

Информация, для хранения которой предназначен блок управления процессом состоит из:

регистрового контекста (содержимое всех регистров процессора);

системного (запись в таблице процессов, управляющая информация о процессе и т.д.);

пользовательского (код и данные).

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

Переключение контекста.

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

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

Состояния процесса

простейшая диаграмма состояний процесса

Простейшая диаграмма состояний процесса

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

более подробная диаграмма состояний процесса

В состоянии исполнение происходит непосредственное выполнение программного кода процесса. Выйти из этого состояния процесс может по трем причинам:

  • завершает свою деятельность;

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

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

С учетом состояния рождение и закончил исполнение модель состояний может быть представлена более детально.

диаграмма состояний процесса, принятая в курсе

Более детальная схема

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

Готовность-> исполнение: осуществляется выбор процесса для исполнения в соответствии с установленной дисциплиной обслуживания.

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

Ожидание->готовность: блокированный процесс переходит в состояние готовности к выполнению в момент появления некоторого ожидаемого события

Исполнение->ожидание: перевод процесса в заблокированное состояние осуществляется в случае, если для продолжения его работы требуется наступление некоторого события.

Исполнение-> завершение: если процесс сигнализирует об окончании своей работы или происходит его аварийное завершение, ОС прекращает его выполнение.

Дополнительное состояние приостановлен->готов может в некоторых случаях существовать в OCPB:

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

  • при ненадёжной работе системы и возможном её отказе;

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

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

  • в ОС Windows NT – 7 состояний

  • в ОС UNIX – 9 состояний

7. Планирование процессов и потоков: критерии, виды, алгоритмы планирования

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

Планирование процессов включает в себя решение следующих задач:

  • определение момента времени для смены выполняемого процесса;

  • выбор процесса на выполнение из очереди готовых процессов;

  • переключение контекстов "старого" и "нового" процессов.

Диспетчеризация – реализация решения, найденного в результате планирования.

Задачи диспетчеризации:

  • сохранение контекста текущего потока

  • загрузка контекста нового потока

  • запуск нового потока на выполнение

Выделяют следующие уровни планирования:

  • долгосрочное

  • краткосрочное

  • среднесрочное

Долгосрочное планирование

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

  • осуществляется достаточно редко

  • оказывает влияние на функционирование вычислительной системы на протяжении достаточно длительного времени

  • в некоторых ОС сведено к минимуму или отсутствует вовсе

Краткосрочное планирование

  • осуществляется, как правило, не реже одного раза в 100 миллисекунд.

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

  • при планировании использования процессора

Среднесрочное планирование

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

Критерии планирования и требования к алгоритмам

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

Цели планирования

Справедливость

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

Эффективность

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

В реальных вычислительных системах загрузка процессора: 40% - 90%

Сокращение полного времени выполнения (turnaround time)

Обеспечить минимальное время между стартом процесса или постановкой задания в очередь для загрузки и его завершением

Сокращение времени ожидания (waiting time)

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

Сокращение времени отклика (response time)

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

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

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

Свойства алгоритмов планирования

Независимо от целей планирования алгоритмы должны обладать следующими свойствами:

  • Предсказуемость.

Одно и то же задание должно выполняться приблизительно за одно и то же время.

  • Минимальные накладные расходы.

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

Алгоритмы планирования

First-Come, First-Served (FCFS)

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



(+) : простота реализации

(-): среднее время ожидания и среднее полное время выполнения для этого алгоритма существенно зависят от порядка расположения процессов в очереди.

 Выполнение процессов при порядке p0,p1,p2:

выполнение процессов при порядке p0,p1,p2

t1=13, t2=4, t3=1 => среднее время ожидания: (0+13+17)/3=10 единиц времени

среднее полное время выполнения: (13+17+18)/3=16 единиц времени

Выполнение процессов при порядке p2, p1, p0:

выполнение процессов при порядке p2, p1, p0

Среднее время ожидания: (5+1+0)/3=2 (в 5 раз <)

Среднее полное время выполнения: (18+5+1)/3=8 (в 2 раза <)

Round Robin (RR)

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

процессы на карусели
Процессы на карусели

На производительность алгоритма RR сильно влияет величина кванта времени:

при очень больших величинах кванта алгоритм RR вырождается в алгоритм FCFS

При очень малых – создаётся иллюзия того, что каждый из n процессов работает на собственном виртуальном процессоре с производительностью

~ 1/n от производительности реального процессора.

Shortest-Job-First (SJF)

Если выбирать процесс не по порядку (как в FCFS и RR), а основываясь на его минимальном времени непрерывного использования процессора, то это позволит повысить производительность алгоритма планирования использования процесса. Описанный алгоритм получил название «кратчайшая работа первой».

Основную сложность при реализации алгоритма SJF представляет невозможность точного значения времени выполнения очередного процесса.

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

Параллельные процессы

Параллельные процессы – последовательные вычислительные процессы, которые одновременно находятся в каком-либо активном состоянии (осуществляют борьбу за ресурсы).

Выделяют:

1. Независимые

Множества переменных (файлы данных, области ОП) не пересекаются, не влияют на результаты работы друг друга (могут только задерживать исполнение друг друга)

2. Взаимодействующие

Используют совместно некоторые (общие) переменные, и влияют на результаты выполнения друг друга.

Синхронизация процессов

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

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

Для синхронизации процессов прикладных программ программист может использовать:

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

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

Пример необходимости синхронизации



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

Переменная NEXT, доступная всем процессам-клиентам, содержит номер первой свободной для записи имени файла позиции файла “Заказов”.

Процессы-клиенты считывают эту переменную, записывают в соответствующую позицию файла “заказов” имя своего файла и наращивают значение NEXT на единицу.

При передаче управления процессу R, он, в соответствии со считанным ранее значением текущей свободной позиции запишет имя файла для печати в файл “заказов” в позицию поверх имени файла процесса S и файл процесса S напечатан не будет.

Критическая секция

Критическая секция – часть программы, результат выполнения которой может непредсказуемо меняться, если переменные, относящиеся к ней, изменяются другими потоками в то время, когда выполнение этой части еще не завершено. В примере критическая секция – файл “заказов”, являющийся разделяемым ресурсом для процессов R и S.

9. Механизмы синхронизации: блокирующие переменные, семафоры, мониторы.
1   2   3   4   5   6   7

Похожие:

Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon 2. Структура информационного канала. Информационно-логическая структура доказывания 3
Процессуально-познавательные функции общей информационной модели механизма расследуемого события
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon Программа государственного экзамена. Направление “Туризм” «Теория и организация туризма»
Эволюция понятия «туризм». Виды туризма, их характеристика и перспективы развития. Типы классификации видов туризма. Специфика делового...
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon План цикла по теме "химия и функции белков" Для педиатрического факультета
Основные правила работы в биохимической лаборатории. Работа с мерной посудой, дозаторами, аппаратурой. Техника безопасности (сдача...
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon Правительство Российской Федерации федеральное государственное автономное...
Понятие бренд и его эволюция. Значение бренда для фирм и потребителей
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon План: Основные понятия Функции гис классификация гис эволюция гис
Это может быть план здания, карта экологического мониторинга территории, атлас земельного кадастра или карта природных ресурсов...
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon План: Основные понятия Функции гис классификация гис эволюция гис
Это может быть план здания, карта экологического мониторинга территории, атлас земельного кадастра или карта природных ресурсов...
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon I. Понятие преступлений против несовершеннолетних и их законодательная эволюция
Развитие законодательства об ответственности за преступления против несовершеннолетних в России
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon Ooo "св-робот" Компьютерные курсы рабочая программа
Переменные, операции, выражения в php. Типы переменных. Изменение типа переменной. Динамические переменные. Константы. Комментарии....
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon Теоретические вопросы: Общая характеристика организационных звеньев...
Общая характеристика организационных звеньев (понятие, цели, функции). Формирование целевых подсистем
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon Медицинский колледж Вопросы к квалификационному экзамену
Мз рф, его структура и функции. Нормативные документы. Фармакологический и фармакопейный комитеты. Департамент государственного контроля...
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon Студента 2 курса магистратуры группы «Медицинское право» очной формы...
Понятие, эволюция и генезис оборота фальсифицированных лекарственных средств 14
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon Методические указания составлены в соответствии с рабочей программой...
ПМ. 03. Выполнение работ по профессии «оператор электронно-вычислительных и вычислительных машин»
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon Контрольная работа по дисциплине Трудовое право
Понятие, содержание и структура коллективного договора. Порядок разработки его проекта
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon Материально-техническое обеспечение кабинета №6 по профессии «Оператор...
Материально-техническое обеспечение кабинета №6 по профессии «Оператор электронно-вычислительных и вычислительных машин»
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon Российской Федерации Старооскольский технологический институт им. А. А. Угарова
ПМ. 03. Выполнение работ по профессии «оператор электронно-вычислительных и вычислительных машин»
Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос icon Российской Федерации Старооскольский технологический институт им. А. А. Угарова
ПМ. 03. Выполнение работ по профессии «оператор электронно-вычислительных и вычислительных машин»

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск