- •«Теория расписаний и параллельное программирование»
- •Классификация задач теории расписаний. Статические и динамические задачи. Запись вида a|b|c|d.
- •Исходные данные и искомые величины при составлении расписаний. Понятие регулярного критерия.
- •3. Упорядочение работ для одной машины. Искусственные простои и прерывания. Перестановочные расписания.
- •14. Многопроцессорные системы с общей памятью.
- •15. Многопроцессорные системы с распределенной памятью.
- •Составление расписаний в системах n|1 при заданном отношении предшествования (цепочки, которые можно разрывать).
- •Расписания для систем конвейерного типа. Теорема о порядке выполнения на двух первых машинах. Теорема о порядке выполнения на двух первых и двух последних машинах в системе n|m|f|Fmax .
- •Задача Джонсона. Теорема Джонсона. Алгоритм, основанный на теореме Джонсона.
- •Оптимальные расписания для системы n|m|f|Fmax.
- •13. Параллельные приборы. Система заданий с древовидной структурой.
- •16. Топологии многопроцессорных систем.
- •17. Классификация параллельных систем Флинна.
- •18. Классификация параллельных систем Хокни.
- •19. Классификация параллельных систем Скилликорна.
- •20. Последовательные процессы и их взаимодействие. Задача о критической секции. Алгоритм Деккера.
- •21. Семафоры. Общие и бинарные семафоры. Решение задачи о критической секции с помощью семафоров.
- •22. Решение задачи о производителях и потребителях с помощью семафоров.
- •23. Задача об обедающих философах и ее решение с помощью семафоров.
21. Семафоры. Общие и бинарные семафоры. Решение задачи о критической секции с помощью семафоров.
Семафор – вид разделяемой переменной, над которой выполняется 2 неделимые операции.
P операция над семафором атомарно(неделимо) уменьшает значение семафора на 1, но только в том случае, если текущее значение семафора отлично от нуля. Иначе вычитания не происходит, а поток задерживается во входной очереди семафора.
22. Решение задачи о производителях и потребителях с помощью семафоров.
Есть некоторое количество потоков, которые производят порции информации и помещают ее в буфер(это производители), есть другая группа потоков, которые забирают информацию из буфера, но только в том случае, если там есть информация(это потребители). Задача заключается в таком обеспечении взаимодействия, чтобы все, что положили в буфер производители было забрано потребителями и ничего из того, что положили производители не было бы взято потребителями более одного раза.
PROGRAM потребитель_производитель;
VAR искл_доступ:SEMAPHORE;
буфер_полон: SEMAPHORE;
буфер_пуст: SEMAPHORE;
PROCEDURE производитель;
...
BEGIN
WHILE истина DO
BEGIN
...
P(буфер_пуст);
P(искл_доступ);
<Поместить сообщение в буфер>
V(искл-доступ);
V(буфер-полон);
...
END
END;
PROCEDURE потребитель;
...
BEGIN
WHILE истина DO
BEGIN
...
P(буфер_полон);
P(искл_доступ);
<Взять сообщение из буфера>
V(искл_доступ);
V(буфер_пуст);
...
END
END;
BEGIN
искл_доступ:=1;
буфер_полон:=0;
буфер_пуст:=N;
PARBEGIN
производитель;
потребитель;
PAREND
END.
23. Задача об обедающих философах и ее решение с помощью семафоров.
В центре стола – большое блюдо, а на столе лежат пять вилок – каждая между двумя соседними тарелками. 5 философов проводят свое время в 1 из 2 состояний. Они какое-то время с помощью 2 вилок едят блюдо. После того, как закончили, они кладут вилки по одной назад. В другое время они думают, пока не проголодаются.
Задача состоит в том, чтобы организовать время так, чтобы философы не умерли с голоду.
Для того, чтобы они не умерли с голоду, надо, чтобы все философы вначале брали одну вилку кроме одного философа.
PROGRAM обедающие_философы;
VAR вилка[5]: ARRAY OF SEMAPHORE;
K:INTEGER;
PROCEDURE философ(i:INTEGER);
VAR левая,правая:1..5;
BEGIN
левая:=(i+1) mod 5;
правая:=i mod 5;
WHILE истина DO
BEGIN
<размышления>;
P(вилка[левая];вилка[правая]);
<еда>;
V(вилка[левая];вилка[правая]);
END
END;
BEGIN
(* инициализация массива семафоров *)
K:=5;
REPEAT вилка[K]:=1; K:=K-1 UNTIL K=0;
PARBEGIN
философ(1);
...
философ(5);
PAREND
END.
24. Мониторы
25. Реализация взаимных исключений в мониторах.
26. Условная синхронизация в мониторах.
27. Реализация мониторов в Java.
28. Статические классы в Java.
29. Опишите процедуры создания проекта, класса, интерфейса в Eclipse
30. Спецификаторы видимости в Java.
31. Массивы, их описание и использование в Java.
32. Циклы и операторы условного перехода в Java.
33. Объектно-ориентированное программирование в Java. Конструкторы.
34. Конструкторы по умолчанию в Java.
35. Объектно-ориентированное программирование в Java. Наследование.
36. Объектно-ориентированное программирование в Java. Полиморфизм.
37. Объектно-ориентированное программирование в Java. Статические поля и методы.
38. Объектно-ориентированное программирование в Java. Интерфейсы.
39. Создание графических интерфейсов в Java. Общие сведения о Swing и AWT. Модель MVC.
40. Обработка событий в Swing.
41. Создание потоков в Java.
42. Условная синхронизация в мониторах Java.
43. Потоки-демоны в Java.
44. Диаграмма состояний потока в Java.
