Мегаобучалка Главная | О нас | Обратная связь


Системы реального времени



2019-12-29 1909 Обсуждений (0)
Системы реального времени 0.00 из 5.00 0 оценок




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

1) Соблюдение предельных сроков — предотвращение потери данных.

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

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

I. Планирование в пакетных системах

1) «Первый пришел - первым обслужен» (FIFO - First In Fist Out)

Простейший неприоритетный алгоритм.

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

Достоинства: простота, справедливость.

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

Пример. Пусть в состоянии готовность находятся три процесса p1, p2 и p3, для которых известны времена их выполнения в некоторых условных единицах:

Таблица 1

Процесс Время выполнения
P1 13
P2 4
P3 1

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

Если процессы расположены в очереди процессов, готовых к исполнению, в порядке p1 , p2, p3, то картина их выполнения выглядит так, как показано на рис. 9.

Рис. 9. Выполнение процессов в порядке p1 , p2, p3

 

Первым для выполнения выбирается процесс p1, который получает процессор на все время своего выполнения, т. е. на 13 единиц времени. После его окончания в состояние исполнение переводится процесс p2, он занимает процессор на 4 единицы времени. И, наконец, возможность работать получает процесс p3.

Время ожидания для процесса p1 составляет 0 единиц времени, для процесса p2 – 13 единиц, для процесса p3 – 13 + 4 = 17 единиц. Таким образом, среднее время ожидания в этом случае – (0 + 13 + 17)/3 = 10 единиц времени.

Полное время выполнения для процесса p1 составляет 13 единиц времени, для процесса p2 – 13 + 4 = 17 единиц, для процесса p3 – 13 + 4 + 1 = 18 единиц. Среднее полное время выполнения оказывается равным (13 + 17 + 18)/3 = 16 единицам времени.

Если те же самые процессы расположены в порядке p3 , p2, p1, то картина их выполнения будет соответствовать рис. 10.

Рис. 10. Выполнение процессов в порядке p3 , p2, p1

Время ожидания для процесса p1 равняется 5 единицам времени, для процесса p2 – 1 единице, для процесса p3 – 0 единиц. Среднее время ожидания составит (5 + 1 + 0)/3 = 2 единицы времени. Это в 5 раз меньше, чем в предыдущем случае.

Полное время выполнения для процесса p1 получается равным 18 единицам времени, для процесса p2 – 5 единицам, для процесса p3 – 1 единице. Среднее полное время выполнения составляет (18 + 5 + 1)/3 = 8 единиц времени, что почти в 2 раза меньше, чем при первой расстановке процессов.

2) «Кратчайшее задание – первое»

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

Рассмотрим изображение, приведенное на рис. 11,а. Здесь представлены четыре задания: А, В, С, D сo сроками выполнения 8,4,4 и 4 минуты соответственно. Если их запустить в этом порядке, оборотное время для задания А составит 8 мин, для В — 12 мин, для С — 16 мин и для D — 20 мин, при среднем времени 14 мин.

Теперь рассмотрим запуск этих четырех заданий, когда первым запускается самое короткое из них, как показано на рис. 11,б. Теперь показатели оборотного времени составляют 4, 8,12 и 20 мин при среднем времени 11 мин.

Рис. 11. Пример планирования, когда первым выполняется самое короткое задание

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

Пример: возьмем ряд процессов p1, p2, p3 и p4 с различными временами выполнения и различными моментами их появления в очереди процессов, готовых к исполнению (таблица 2).

Таблица 2

Процесс Время появления Время выполнения
P1 0 6
P2 2 2
P3 6 7
P4 0 5

В начальный момент времени в состоянии готовность находятся только два процесса, p1 и p4. Меньшее время выполнения оказывается у процесса p4, поэтому он и выбирается для исполнения. По прошествии 2 единиц времени в систему поступает процесс p2. Время его выполнения меньше, чем остаток продолжительности у процесса p4, который вытесняется из состояния исполнение и переводится в состояние готовность. По прошествии еще 2 единиц времени процесс p2 завершается, и для исполнения вновь выбирается процесс p4. В момент времени t = 6 в очереди процессов, готовых к исполнению, появляется процесс p3, но поскольку ему для работы нужно 7 единиц времени, а процессу p4 осталось трудиться всего 1 единицу времени, то процесс p4 остается в состоянии исполнение. После его завершения в момент времени t = 7 в очереди находятся процессы p1 и p3, из которых выбирается процесс p1. Наконец, последним получит возможность выполняться процесс p3.

Время ожидания для процесса p1 составляет 7 единиц времени, для процесса p2 – 0 единицы, для процесса p3 – 7 единиц, p4 - 2. Таким образом, среднее время ожидания в этом случае – 4 единиц времени.

Полное время выполнения для процесса p1 составляет 13 единиц времени, для процесса p2 – 2 единицы, для процесса p3 – 14 единиц, р4 – 7 единиц. Среднее полное время выполнения оказывается равным 9 единицам времени.

 
 

Рис. 12. Диаграмма процессов с учетом времени появления

3) Приоритет наименьшему оставшемуся времени выполнения

Это версия алгоритма выполнения первым самого короткого задания.

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

 

II. Планирование в интерактивных системах

1) Циклическое планирование

Одним из самых старых, простых, справедливых и наиболее используемых алгоритмов.

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

Процессы сидят на карусели. Карусель вращается так, что каждый процесс находится около процессора в течение кванта времени. Пока процесс находится рядом с процессором, он получает процессор в свое распоряжение и может исполняться (рис. 13).

Рис. 13. Процессы на карусели

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

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

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

Пример. Пусть в состоянии готовность находятся три процесса p1, p2 и p3, для которых известны времена их выполнения в некоторых условных единицах:

Таблица 3

Процесс Время выполнения
P1 13
P2 4
P3 1

Пусть процессы подвергаются циклическому планированию с величиной кванта 4 мс.

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

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

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

Время ожидания для процесса p1 составляет 5 единиц времени, для процесса p2 – 4 единицы времени, для процесса p3 – 8 единиц времени. Таким образом, среднее время ожидания для этого алгоритма получается равным (5 + 4 + 8)/3 = 5,6(6) единицы времени.

Полное время выполнения для процесса p1 составляет 18 единиц времени, для процесса p2 – 8 единиц, для процесса p3 – 9 единиц. Среднее полное время выполнения оказывается равным (18 + 8 + 9)/3 = 11,6(6) единицы времени.

Рис. 14. Диаграмма процессов при циклическом планировании

На производительность циклического алгоритма сильно влияет величина кванта времени. Рассмотрим тот же самый пример с порядком процессов p1, p2, p3 для величины кванта времени, равной 1. Время ожидания для процесса p1 составит 5 единиц времени, для процесса p2 – тоже 5 единиц, для процесса p3 – 2 единицы. В этом случае среднее время ожидания получается равным (5 + 5 + 2)/3 = 4 единицам времени. Среднее полное время исполнения составит (18 + 9 + 3)/3 = 10 единиц времени.

 

2) Приоритетное планирование

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

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

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

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

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

Таблица 4

Процесс Время появления Время выполнения Приоритет
P1 0 6 4
P2 2 2 3
P3 6 7 2
P4 0 5 1

Как будут вести себя процессы при использовании невытесняющего приоритетного планирования?

Первым для выполнения в момент времени t = 0 выбирается процесс p4, как обладающий наивысшим приоритетом. После его завершения в момент времени t = 5 в очереди процессов, готовых к исполнению, окажутся два процесса p1 и p2. Больший приоритет из них у процесса p2, он и начнет выполняться. Затем в момент времени t = 7 для исполнения будет избран процесс p3, и лишь потом – процесс p1.

Рис. 15. Диаграмма процессов при невытесняющем приоритетном планировании

Иным будет предоставление процессора процессам в случае вытесняющего приоритетного планирования. Первым, как и в предыдущем случае, начнет исполняться процесс p4, а по его окончании – процесс p2. Однако в момент времени t = 6 он будет вытеснен процессом p3 и продолжит свое выполнение только в момент времени t = 13. Последним, как и раньше, будет исполняться процесс p1 (рис. 16).

Рис. 16. Диаграмма процессов при вытесняющем приоритетном планировании

III. Планирование в системах реального времени

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

Соотношение  является просто частью процессорного времени, используемого процессом i, а сама сумма – это коэффициент использования (или коэффициент загруженности) процессора, который, естественно, не может быть больше 1.

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

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

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

Пример: Алгоритмы планирования будем рассматривать на примере 3 периодических процессов A, B, C. Предположим, что процесс A запускается с периодом 30 мс и временем обработки 10 мс. Процесс B имеет период 40 мс и время обработки 15 мс. Процесс C запускается каждые 50 мс и обрабатывается за 5 мс. Суммарно эти процессы потребляют 0,808 процессорного времени, что меньше единицы. Соответственно, система в данном примере поддается планированию.

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

Рис. 16. Три периодических процесса с разным периодом и временем обработки

Классическим примером статического алгоритма планирования реального времени для прерываемых периодических процессов является алгоритм RMS (Rate Monotonic Scheduling – планирование с приоритетом, пропорциональным частоте). Этот алгоритм может использоваться для процессов, удовлетворяющих следующим условиям:

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

2) Ни один процесс не должен зависеть от любого другого процесса

3) Каждому процессу требуется одинаковое процессорное время на каждом интервале

4) У непериодических процессов нет жестких сроков

5) Прерывание процесса происходит мгновенно, без накладных расходов.

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

Алгоритм RMS работает, назначая каждому процессу фиксированный приоритет, обратно пропорциональный периоду и, соответственно, прямо пропорциональный частоте возникновения событий процесса. Например, в примере рис. 16 процесс A запускается каждые 30 мс (33 раза в секунду) и получает приоритет 33. Процесс B запускается каждые 40 мс (25 раз в секунду) и получает приоритет 25. Процесс C запускается каждые 50 мс (20 раз в секунду) и получает приоритет 20. Отметим, что реализация алгоритма требует, чтобы у всех процессов были разные приоритеты.

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

На рис. 17 показана работа алгоритма планирования для процессов A, B, C.

· Изначально все три процесса готовы к работе.

· Выбирается процесс с максимальным приоритетом – A. Ему разрешается работать в течение 10 мс, требующихся процессу до завершения.

· Когда процесс A освобождает процессор, начинает работать процесс B, а затем процесс C.

· Вместе эти процессы потребляют 30 мс, поэтому, когда процесс C заканчивает работу, снова запускается процесс A.

· Этот цикл повторяется до тех пор, пока в момент времени 70 мс у системы начинается период простоя.

· В момент времени 80 мс процесс B переходит в состояние готовности и запускается.

· Однако в момент времени 90 мс процесс A, обладающий более высоким приоритетом, также переходит в состояние готовности. Поэтому он прерывает выполнение процесса B и работает до момента времени 100 мс, пока не закончит свою работу.

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

 

Рис. 17. Пример алгоритмов планирования RMS и EDF

Алгоритм RMS может быть использован только при не слишком высокой загруженности процессора. Предположим, что процесс A имеет продолжительность работы не 10 мс, а 15 мс. Коэффициент использования процессора в таком случае равен 0,975. Теоретически для данного случая должен иметься метод планирования. Работа алгоритма показана на рис. 18.

· На этот раз процесс B завершает обработку к моменту времени 30 мс.

· В этот же момент процесс A снова приходит в состояние готовности. К тому времени, когда он заканчивает работу, снова готов процесс B и поскольку у него приоритет больше, чем у C, то запускается процесс B.

· Процесс C пропускает свой критический срок, алгоритм RMS терпит неудачу.

 

Рис. 18. Пример, в котором алгоритм RMS не может быть использован

Другим популярным алгоритмом планирования является алгоритм EDF (Earliest Deadline First – процесс с ближайшим сроком завершения в первую очередь). Алгоритм EDF представляет собой динамический алгоритм, не требующий от процессов периодичности. Он также не требует и постоянства временных интервалов использования процессора. Каждый раз, когда процессу требуется процессорное время, он объявляет о своем присутствии и о своем сроке выполнения задания. Планировщик хранит список процессов, сортированный по срокам выполнения заданий. Алгоритм запускает первый процесс в списке, то есть тот, у которого самый близкий по времени срок выполнения. Когда новый процесс переходит в состояние готовности, система сравнивает его срок выполнения со сроком выполнения текущего процесса.

Если у нового процесса график более жесткий, он прерывает работу текущего процесса. Пример работы алгоритма EDF показан на рис. 17.

 

· Вначале все процессы находятся в состоянии готовности. Они запускаются в порядке своих крайних сроков.

· Процесс A должен быть выполнен к моменту времени 30, процесс B должен закончить работу к моменту времени 40, процесс C – 50. Таким образом, процесс A запускается первым. Вплоть до момента времени 90 выбор алгоритма EDF не отличается от RMS.

· В момент времени 90 процесс A переходит в состояние готовности с тем же крайним сроком выполнения 120, что и у процесса B.

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

Рассмотрим рис. 18.

 

· В момент времени 30 между процессами A и C возникает спор. Поскольку срок выполнения процесса C равен 50 мс, а процесса A – 60 мс, планировщик выбирает процесс C. Этим данный алгоритм отличается от алгоритма RMS, в котором побеждает процесс A, как обладающий большим приоритетом.

· В момент времени 90 процесс A переходит в состояние готовности в 4 раз. Предельный срок процесса A такой же, что и у текущего процесса, поэтому у планировщика появляется выбор – прервать работу процесса B или нет. Поскольку необходимости прерывать процесс B нет, то он продолжает работу.

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


Решение задач

Задача №7. Пользовательский процесс формирует 1 страницу текста для вывода на принтер, затрачивая на это 200 мс. Формирование новой страницы начинается, если начинает печататься предыдущая страница. Объем буфера равен одной странице. Страница содержит 50 строк текста. Принтер способен напечатать 8 строк за 1 секунду. Будет ли приостанавливаться пользовательский процесс и на какое время? Изменится ли ситуация, если объем буфера будет равен 2 страницам?

1. Определим, сколько времени тратится на печать 1 страницы текста.

8 строк печатается за 1 секунду 50 строк печатается за t секунд

2. Начинает печататься страница, на это тратится 6250 мс. В это же время начинает формироваться новая строка, на это тратится 200 мс. Прежде, чем приступить к формированию новой строки, процесс должен ждать, пока завершиться печать: 6250-200=6050 мс.

3. Если объем буфера равен 2 страницам, то как только начинает печататься страница, пользовательский процесс формирует 2 строки, на это тратится 400 мс. Затем процесс ждет, пока закончиться печать страницы в течение: 6250-400=5850 мс.

Задача 2. В какой очереди предпочтительней выполнять процессы, если используется алгоритм FIFO: р1, р2, р3, р4 или р4, р2, р1, р3?

Процесс Длительность
Р1 8
Р2 2
Р3 5
Р4 4

Данные:

 

 

Построим диаграммы процессов для каждой очереди и определим числовые характеристики:

р1, р2, р3, р4 Среднее время ожидания: Среднее время выполнения: р4, р2, р1, р3 Среднее время ожидания: Среднее время выполнения:

Предпочтительней 2-я очередь.

Задача 3. Какой алгоритм предпочтительней использовать для планирования процессов р1, р2, р3, р4: циклический алгоритм с величиной кванта 3 или по кратчайшему времени поступления?

Процесс Длительность
Р1 7
Р2 2
Р3 5
Р4 10

Данные:

 

 

Построим диаграммы процессов для каждой очереди:

Среднее время ожидания:

Среднее время выполнения:

Среднее время ожидания:

Среднее время выполнения:

Задача 4. Определить среднее время ожидания и выполнения процесса. Если используется алгоритм «кратчайшее задание - первое» и известно. Что процессы поступают с интервалом в 2 единицы времени.

Процесс Длительность Время поступления
Р1 8 0
Р2 2 2
Р3 5 4
Р4 4 6

Данные:

 

Построим диаграмму процессов:

Среднее время ожидания:

Среднее время выполнения:

Задача 5. Построить диаграммы процессов для невытесняющего и вытесняющего приоритетного планирования.

Процесс Длительность Приоритет Время поступления
Р1 8 4 0
Р2 5 3 2
Р3 5 1 4
Р4 4 2 6

Данные:

 

Построим диаграмму процессов для невытесняющего алгоритма:

Построим диаграмму процессов для вытесняющего алгоритма:

Задача 6. Определить, поддается ли планированию 3-хпроцессорная система реального времени, если известны периоды и времена выполнения процессов:

Процесс Период Время выполнения
Р1 20 10
Р2 30 15
Р3 15 5
Р4 50 20

Проверим условие планируемости: . Значит, система поддается планированию.

Задача №6. В систему реального времени поступают 4 периодических процесса с периодами 50, 100, 200, и Х мс. На обработку каждого процесса требуется 35, 20, 10, 15 мс времени процессора. Определить предельное значение Х, при котором система поддается планированию?

Составим условие планируемости:

Задача №7. Пользовательский процесс формирует 1 страницу текста для вывода на принтер, затрачивая на это 200 мс. Формирование новой страницы начинается, если начинает печататься предыдущая страница. Объем буфера равен одной странице. Страница содержит 50 строк текста. Принтер способен напечатать 8 строк за 1 секунду. Будет ли приостанавливаться пользовательский процесс и на какое время? Изменится ли ситуация, если объем буфера будет равен 2 страницам?

1. Определим, сколько времени тратится на печать 1 страницы текста.

8 строк печатается за 1 секунду 50 строк печатается за t секунд

2. Начинает печататься страница, на это тратится 6250 мс. В это же время начинает формироваться новая строка, на это тратится 200 мс. Прежде, чем приступить к формированию новой строки, процесс должен ждать, пока завершиться печать: 6250-200=6050 мс.

3. Если объем буфера равен 2 страницам, то как только начинает печататься страница, пользовательский процесс формирует 2 строки, на это тратится 400 мс. Затем процесс ждет, пока закончиться печать страницы в течение: 6250-400=5850 мс.

 


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

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

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

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

Итак, в чем же состоят принципиальные отличия в понятиях «процесс» и «поток»?

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

Если процесс содержит только один поток, то понятия процесса и потока равнозначны.

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

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

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

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



2019-12-29 1909 Обсуждений (0)
Системы реального времени 0.00 из 5.00 0 оценок









Обсуждение в статье: Системы реального времени

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1909)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.015 сек.)