ВУЗ:
Составители:
6
Продолжение таблицы 1
19
N=4, M=8, K=1.1, L=1.7
У
20
N=1, M=9, K=0.2, L=0.7
Ф
21
N=9, M=1, K=2, L=0.5
Х
22
N=5, M=4, K=1, L=1
Ц
23
N=6, M=6, K=1.2, L=1.5
Ч
24
N=6, M=3, K=0.8, L=0.9
Ш
25
N=3, M=5, K=1.2, L=1.4
Щ
26
N=2, M=5, K=1, L=1.7
Э
27
N=5, M=3, K=0.8, L=0.4
Ю
28
N=6, M=2, K=1, L=1.2
Я
Перед выполнением курсового проекта студент уточняет номер выполняемого
им варианта – ключом к выбору задания является начальная буква фамилии.
Например: студент Сидоров для выполнения курсового проекта выбирает 17 номер.
3 Теоретические сведения для выполнения задания
Рассмотрим некоторые примитивы межпроцессного взаимодействия,
применяющиеся вместо циклов ожидания, в которых лишь напрасно расходуется
процессорное время. Эти примитивы блокируют процессы в случае запрета на вход
в критическую область. Одной из простейших является пара примитивов sleep и
wakeup. Примитив sleep – системный запрос, в результате которого вызывающий
процесс блокируется, пока его не запустит другой процесс. У запроса wakeup есть
один параметр – процесс, который следует запустить. Также возможно наличие
одного параметра у обоих запросов – адреса ячейки памяти, используемой для
согласования запросов ожидания и запуска.
Два процесса совместно используют буфер ограниченного размера. Один из
них, производитель, помещает данные в буфер, а потребитель считывает их оттуда.
Трудности начинаются в тот момент, когда производитель хочет поместить в буфер
очередную порцию данных и обнаруживает, что буфер полон. Для производителя
решением является ожидание, пока потребитель полностью или частично не очистит
буфер. Аналогично, если потребитель хочет забрать данные из буфера, а буфер пуст,
потребитель уходит в состояние ожидания и выходит из него, как только
производитель положит что-нибудь в буфер и разбудит его.
Это решение кажется достаточно простым, но оно приводит к состояниям
состязания. Нам нужна переменная count для отслеживания количества элементов в
буфере. Если максимальное число элементов, хранящихся в буфере, равно N,
программа производителя должна проверить, не равно ли N значение count прежде,
чем поместить в буфер следующую порцию данных. Если значение count равно N,
то производитель уходит в состояние ожидания; в противном случае производитель
Продолжение таблицы 1
19 N=4, M=8, K=1.1, L=1.7 У
20 N=1, M=9, K=0.2, L=0.7 Ф
21 N=9, M=1, K=2, L=0.5 Х
22 N=5, M=4, K=1, L=1 Ц
23 N=6, M=6, K=1.2, L=1.5 Ч
24 N=6, M=3, K=0.8, L=0.9 Ш
25 N=3, M=5, K=1.2, L=1.4 Щ
26 N=2, M=5, K=1, L=1.7 Э
27 N=5, M=3, K=0.8, L=0.4 Ю
28 N=6, M=2, K=1, L=1.2 Я
Перед выполнением курсового проекта студент уточняет номер выполняемого
им варианта – ключом к выбору задания является начальная буква фамилии.
Например: студент Сидоров для выполнения курсового проекта выбирает 17 номер.
3 Теоретические сведения для выполнения задания
Рассмотрим некоторые примитивы межпроцессного взаимодействия,
применяющиеся вместо циклов ожидания, в которых лишь напрасно расходуется
процессорное время. Эти примитивы блокируют процессы в случае запрета на вход
в критическую область. Одной из простейших является пара примитивов sleep и
wakeup. Примитив sleep – системный запрос, в результате которого вызывающий
процесс блокируется, пока его не запустит другой процесс. У запроса wakeup есть
один параметр – процесс, который следует запустить. Также возможно наличие
одного параметра у обоих запросов – адреса ячейки памяти, используемой для
согласования запросов ожидания и запуска.
Два процесса совместно используют буфер ограниченного размера. Один из
них, производитель, помещает данные в буфер, а потребитель считывает их оттуда.
Трудности начинаются в тот момент, когда производитель хочет поместить в буфер
очередную порцию данных и обнаруживает, что буфер полон. Для производителя
решением является ожидание, пока потребитель полностью или частично не очистит
буфер. Аналогично, если потребитель хочет забрать данные из буфера, а буфер пуст,
потребитель уходит в состояние ожидания и выходит из него, как только
производитель положит что-нибудь в буфер и разбудит его.
Это решение кажется достаточно простым, но оно приводит к состояниям
состязания. Нам нужна переменная count для отслеживания количества элементов в
буфере. Если максимальное число элементов, хранящихся в буфере, равно N,
программа производителя должна проверить, не равно ли N значение count прежде,
чем поместить в буфер следующую порцию данных. Если значение count равно N,
то производитель уходит в состояние ожидания; в противном случае производитель
6
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »
