Под управлением процессами понимаются процедуры ОС, обеспечивающие запуск системных и прикладных программ, их выполнение и завершение.
В однозадачных ОС управление процессами решает следующие задачи:
· загрузка программы в память, подготовка ее к запуску и запуск на выполнение;
· выполнение системных вызовов процесса;
· обработка ошибок, возникших в ходе выполнения;
· нормальное завершение процесса;
· прекращение процесса в случае ошибки или вмешательства пользователя.
Все эти задачи решаются сравнительно просто.
В многозадачном режиме добавляются значительно более серьезные задачи:
· эффективная реализация параллельного выполнения процессов на единственном процессоре, переключение процессора между процессами;
· выбор очередного процесса для выполнения с учетом заданных приоритетов процессов и статистики использования процессора;
· исключение возможности несанкционированного вмешательства одного процесса в выполнение другого;
Функции управления
· предотвращение или устранение тупиковых ситуаций, возникающих при конкуренции процессов за системные ресурсы;
· обеспечение синхронизации процессов и обмена данными между ними.
Реализация многозадачного режима
Понятия процесса и ресурса
Согласно определению, данному в /7/, «последовательный процесс (иногда называемый «задача») есть работа, производимая последовательным процессором при выполнении программы с ее данными».
Проанализируем это определение. Оно подчеркивает последовательный характер процесса, т.е. выполнение команд в определенном порядке. Термин «задача» мы будем понимать как синоним термина «процесс» (в некоторых ОС эти термины различаются). Далее, процесс – понятие динамическое. Программа – это текст, процесс – выполнение этого текста.
Конечно, на практике мы часто говорим: «программа вызывает функцию», «программа ждет ввода» и т.п., однако, строго говоря, правильнее было бы «процесс, выполняющий программу, вызывает…».
Еще один важный момент в определении – упоминание данных. В многозадачных системах зачастую одна и та же программа может запускаться несколько раз (например, можно несколько раз открыть текстовый редактор Notepad для разных файлов). Это означает, что несколько процессов могут использовать одну и ту же программу, но с разными данными.
При описании работы многозадачных систем основное внимание уделяется вопросам, связанным с параллельным выполнением, т.е. с одновременной работой нескольких процессов. Однако общий термин «параллельное выполнение» объединяет два существенно различных способа организации выполнения процессов – синхронный и асинхронный параллелизм.
Синхронный параллелизм предполагает наличие общей тактовой последовательности, управляющей шагами выполнения параллельно работающих процессов. Синхронная организация используется в некоторых типах многопроцессорных вычислительных систем.
При асинхронном параллелизме никакого общего такта нет. Процессы выполняются независимо друг от друга, при этом не делается никаких предположений об их сравнительной скорости, о соотношении времени выполнения различных фрагментов программ и т.п.
Управление проектами в Asana » миссия, цели, проекты и задачи
Сопоставить продвижение разных процессов можно только в явно заданных точках программы процессов, называемых точками синхронизации. Синхронизация обычно означает ожидание одним процессом какого-либо события, связанного с другим процессом. Например, после разветвления выполнения на две параллельные ветви и выполнения ветвями определенных задач может понадобиться свести ветви воедино: та ветвь, которая закончила свое выполнение раньше, должна дождаться завершения другой ветви. Другой пример: процесс, выполняющий обработку введенных строк, может ждать, пока другой процесс не прочтет очередную строку из файла или с клавиатуры.
Точка синхронизации может быть связана также с обменом данными между процессами. Когда процесс-приемник завершает прием данных, то можно быть, по крайней мере, уверенным, что процесс-источник достиг того места в программе, где он должен был передать данные.
В дальнейшем всюду будет рассматриваться только асинхронный параллелизм, поскольку он характерен для работы ОС.
Другим основополагающим понятием, тесно связанным с управлением процессами, является понятие ресурса. Под ресурсом понимается любой аппаратный или программный объект, который может понадобиться для работы процессов и доступ к которому может при этом вызвать конкуренцию процессов. Говоря упрощенно, ресурс – это нечто дефицитное в вычислительной системе. К важнейшим ресурсам любой системы относятся процессор (точнее сказать, процессорное время), основная память, периферийные устройства, файлы. В зависимости от конкретной ОС, к дефицитным ресурсам могут относиться места в таблице процессов или в таблице открытых файлов, буферы кэша, блоки в файле подкачки и другие системные структуры данных.
Если два процесса никак не связаны логикой своей работы, то никакой синхронизации или обмена данными между ними нет, однако такие процессы все же могут оказывать косвенное влияние друг на друга вследствие конкуренции за ресурсы. Многозадачная ОС управляет доступом процессов к ресурсам. В некоторых случаях система временно закрепляет ресурс за одним процессом, отказывая другим процессам в доступе или заставляя их ждать освобождения ресурса. В других случаях оказывается возможным совместный доступ нескольких процессов к одному ресурсу.
Источник: infopedia.su
Управление задачами в операционных системах
Итак, время центрального процессора и оперативная память являются основными ресурсами в случае реализации мультипрограммных вычислений.
Оперативная память — это важнейший ресурс любой вычислительной системы, поскольку без нее (как, впрочем, и без центрального процессора) невозможно выполнение ни одной программы. Мы уже отмечали, что память является разделяемым ресурсом. От выбранных механизмов распределения памяти между выполняющимися процессорами очень сильно зависит и эффективность использования ресурсов системы, и ее производительность, и возможности, которыми могут пользоваться программисты при создании своих программ. Способы распределения времени центрального процессора тоже сильно влияют и на скорость выполнения отдельных вычислений, и на общую эффективность вычислительной системы.
Понятие процесса (задачи) нам уже известно. Здесь мы не будем стараться разделять понятия процесс (process) и поток (thread), вместо этого используя как бы обобщающий термин task (задача). В других разделах, если специально это не оговаривается, под задачей или процессом следует понимать практически одно и то же. Сейчас же мы будем говорить о разделении ресурса центрального процессора, поэтому термин задача может включать в себя и понятие треда (потока).
Итак, операционная система выполняет следующие основные функции, связанные с управлением задачами:
- создание и удаление задач;
- планирование процессов и диспетчеризация задач;
- синхронизация задач, обеспечение их средствами коммуникации.
Система управления задачами обеспечивает прохождение их через компьютер. В зависимости от состояния процесса ему должен быть предоставлен тот или иной ресурс. Например, новый процесс необходимо разместить в основной памяти — следовательно, ему необходимо выделить часть адресного пространства. Новый порожденный поток текущего процесса необходимо включить в общий список задач, конкурирующих между собой за ресурсы центрального процессора.
Создание и удаление задач осуществляется по соответствующим запросам от пользователей или от самих задач. Задача может породить новую задачу. При этом между процессами появляются «родственные» отношения. Порождающая задача называется «предком», «родителем», а порожденная — «потомком», «сыном» или «дочерней задачей». «Предок» может приостановить или удалить свою дочернюю задачу, тогда как «потомок» не может управлять «предком».
Основным подходом к организации того или иного метода управления процессами, обеспечивающего эффективную загрузку ресурсов или выполнение каких-либо иных целей, является организация очередей процессов и ресурсов.
Очевидно, что на распределение ресурсов влияют конкретные потребности тех задач, которые должны выполняться параллельно. Другими словами, можно столкнуться с ситуациями, когда невозможно эффективно распределять ресурсы с тем, чтобы они не простаивали. Например, всем выполняющимся процессам требуется некоторое устройство с последовательным доступом. Но поскольку, как мы уже знаем, оно не может распределяться между параллельно выполняющимися процессами, то процессы вынуждены будут очень долго ждать своей очереди. Таким образом, недоступность одного ресурса может привести к тому, что длительное время не будут использоваться и многие другие ресурсы.
Если же мы возьмем набор таких процессов, которые не будут конкурировать между собой за неразделяемые ресурсы при параллельном выполнении, то, скорее всего, процессы смогут выполниться быстрее (из-за отсутствия дополнительных ожиданий), да и имеющиеся в системе ресурсы будут использоваться более эффективно. Итак, возникает задача подбора такого множества процессов, что при выполнении они будут как можно реже конфликтовать из-за имеющихся в системе ресурсов. Такая задача называется планированием вычислительных процессов.
Задача планирования процессов возникла очень давно — в первых пакетных ОС при планировании пакетов задач, которые должны были выполняться на компьютере и оптимально использовать его ресурсы. В настоящее время актуальность этой задачи не так велика.
На первый; план уже очень давно вышли задачи динамического (или краткосрочного) планирования, то есть текущего наиболее эффективного распределения ресурсов, возникающего практически при каждом событии. Задачи динамического планирования стали называть диспетчеризацией. (Собственно модули супервизора, отвечающие за диспетчеризацию задач, часто называют планировщиками (sheduler). Но фактически, говоря о тех же планировщиках памяти или о каких-нибудь других модулях, отвечающих за динамическое распределение ресурсов, имеют в виду, что эти планировщики осуществляют диспетчеризацию. Наконец, иногда диспетчеризацию называют краткосрочным планированием).
Очевидно, что планирование осуществляется гораздо реже, чем задача текущего распределения ресурсов между уже выполняющимися процессами и потоками. Основное отличие между долгосрочным и краткосрочным планировщиками заключается в частоте запуска: краткосрочный планировщик, например, может запускаться каждые 30 или 100 мс, долгосрочный — один раз за несколько минут (или чаще; тут многое зависит от общей длительности решения заданий пользователей).
Долгосрочный планировщик решает, какой из процессов, находящихся во входной очереди, должен быть переведен в очередь готовых процессов в случае освобождения ресурсов памяти. Он выбирает процессы из входной очереди с целью создания неоднородной мультипрограммной смеси. Это означает, что в очереди готовых к выполнению процессов должны находиться — в разной пропорции — как процессы, ориентированные на ввод/вывод, так и процессы, ориентированные на преимущественную работу с центральным процессором.
Краткосрочный планировщик решает, какая из задач, находящихся в очереди готовых к выполнению, должна быть передана на исполнение. В большинстве современных операционных систем, с которыми мы сталкиваемся, долгосрочный планировщик отсутствует.
Планирование и диспетчеризация процессов и задач
Стратегии планирования
Прежде всего следует отметить, что при рассмотрении стратегий планирования, как правило, идет речь о краткосрочном планировании, то есть о диспетчеризации. Долгосрочное планирование, как мы уже отметили, заключается в подборе таких вычислительных процессов, которые бы меньше всего конкурировали между собой за ресурсы вычислительной системы.
Стратегия планирования определяет, какие процессы мы планируем на выполнение для того, чтобы достичь поставленной цели. Известно большое количество различных стратегий выбора процесса, которому необходимо предоставить процессор. Среди них, прежде всего, можно назвать следующие стратегии:
- по возможности заканчивать вычисления (вычислительные процессы) в том же самом порядке, в котором они были начаты;
- отдавать предпочтение более коротким процессам;
- предоставлять всем пользователям (процессам пользователей) одинаковые услуги, в том числе и одинаковое время ожидания.
Когда говорят о стратегии обслуживания, всегда имеют в виду понятие процесса, а не понятие задачи, поскольку процесс, как мы уже знаем, может состоять из нескольких потоков (задач).
Источник: studopedia.org
Функции и структуры операционных систем
Функции и структуры операционных систем имеют различия в однои многопроцессорных вычислительных системах, многомашинных комплексах и вычислительных сетях. Соответственно этому операционная система должна обеспечить одно- или мультипрограммный режим работы ЭВМ, режим мультиобработки задач, совместное функционирование уровней и подсистем САПР через специальную мониторную систему.
Для персональных ЭВМ наибольшее распространение получили операционные системы UNIX, MS DOS, Windows и другие.
Система UNIX достаточно проста по организации, легко переносится с одной машины на другие, ориентирована на пользователя-программиста. Система UNIX — это мультипрограммная система с коллективным доступом. Она обладает целым рядом достоинств: возможностью организации многоуровневой и многозадачной работы, высокой мобильностью, иерархической файловой структурой, гибким и богатым командным языком, богатой библиотекой сервисных процедур и функций. Эта система в настоящее время главным образом используется в исследовательских и учебных целях.
Широкое распространение в ПЭВМ получила операционная система MS DOS, являющаяся базовой для ЭВМ серии IBM PC и стандартом операционной системы для 16- и 32-разрядных персональных компьютеров. Система имеет развитый командный язык, возможности организации многоуровневых каталогов, работы с последовательными устройствами как с файлами, подключения дополнительных драйверов внешних устройств. Имеются трансляторы практически для всех популярных языков высокого уровня.
Важным достоинством операционных систем является возможность поддержки в ОЗУ так называемых виртуальных дисков. Под виртуальным диском понимается область ОЗУ, обращение к которой происходит точно так же, как если бы это был реальный физический диск. Подобное построение системы позволяет существенно повысить скорость записи и доступа к информации и значительно снизить нагрузку (число обращений) на реальный диск.
Для персональных ЭВМ разработан новый класс общесистемного программного обеспечения — так называемые программы-оболочки, которые существенно расширяют и дополняют понятие операционной системы. В традиционных операционных системах управляющие команды вводятся с клавиатуры; такой способ взаимодействия не нагляден и недостаточно удобен. С использованием программ-оболочек в полноэкранном режиме выполняются наиболее часто встречающиеся операции при работе с системой: просмотр содержимого каталога на дисках, переход из одного каталога в другой, копирование, перемещение и удаление файлов, запуск программ. Примерами таких программ-оболочек являются Norton Commander, Windows. Некоторые современные операционные системы имеют собственные программы-оболочки.
В последние годы началось активное вторжение персональных ЭВМ в обработку текстов, графических данных и т. д. В связи с этим специальным классом программного обеспечения выделились интегрированные пакеты программ, текстовые редакторы и динамические электронные таблицы.
Располагая текстовым редактором, персональную ЭВМ с печатающим устройством можно легко превратить в электронную пишущую машинку, по своим возможностям намного превосходящую обычные машинки: легкость изменения текста, исправления ошибок, вставка и удаление текста, распечатка в любом числе копий в различных форматах с использованием различных шрифтов и другие.
Известны текстовые редакторы Лексикон, Chi-Writer, Word, MultiMate и др.
Интересными программами являются динамические электронные таблицы, в ячейках которых могут помещаться тексты, числа и математические формулы, устанавливающие взаимосвязь между элементами ячеек. При работе программы может быть построена и рассчитана модель сложной системы, например предприятия, учреждения, другого экономического объекта. Современные динамические электронные таблицы (например, Lotus 1-2-3 FRAME WORK) включают в себя кроме собственно таблицы также текстовой редактор, СУБД, подсистему машинной графики, полиэкранный интерфейс, средства телекоммуникационной связи.
Контрольные вопросы и упражнения
1. Что представляет собой ПО САПР?
2. Перечислите документы, которые входят в состав ПО САПР.
3. Какова структура общесистемного ПО?
4. Поясните классы системного ПО.
5. Приведите примеры операционных систем для ПЭВМ.
6. Приведите основные характеристики и примеры прикладного программного обеспечения САПР РЭС.
7. Какие функции выполняет программа управления задачами?
8. Какие функции выполняет программа управления заданиями?
9. Что представляет собой ППП?
10. Что характерно для ППП простой структуры?
11. Чем характеризуется ППП сложной структуры и программные системы?
12. Что называется программно-методическим комплексом САПР?
13. Какие функции выполняет операционная система?
14. Перечислите связи между отдельными программными модулями.
15. Какие ППП используются для проектирования РЭС?
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru