28. Как может быть организовано взаимодействие процессов в паре производитель-потребитель. Приведите пример соответствующей программы.
29. В чем состоят трудности и как выполняется реализация семафоров? Как обеспечивает возможность их использования операционная система? Какие основные типы семафоров вы знаете?
30. Как может быть обеспечено распределение ресурсов с помощью монитора? Приведите пример соответствующей программы.
31. Как обеспечивается реализация процессов в мониторе? В чем сущность читателей и писателей? Приведите пример соответствующей программы.
32. В чем состоит сущность проблемы, вызывающей зависание системы? Как (двигаясь по каким путям) эта проблема может быть решена?
33. В чем сущность концепции ресурсов ОС и какие виды ресурсов вы знаете?
34. В чем сущность алгоритма банкира и кто его автор? Его плюсы и минусы.
35. Как может быть решена проблема обнаружения тупиков и какие методы при этом используются?
36. Почему параллельная обработка, параллелизм и параллельное программирование представляет значительный интерес в настоящее время? Назовите основные причины этого.
37. Что такое взаимоисключение. Приведите пример программы, реализующий эту операцию.
38. Что такое примитивы взаимоисключения и для какой цели они предназначаются?
39. Сущность и основные моменты алгоритма Деккера. Приведите примеры реализации и возникающие проблемы.
40. В чем состоит сущность проблемы тупиков? Приведите пример соответствующей программы.
41. В чем сущность аппаратной реализации взаимоисключения? Приведите пример соответствующей программы.
42. В чем сущность концепции семафоров и кто ее автор? Как можно реализовать эту концепцию?
43. Что значит разделяемые ресурсы и совместно используемые данные? Приведите соответствующие примеры.
44. В чем сущность семафоров со счетчиками или считающих семафоров? Как может быть реализован такой семафор?
45. В чем состоят недостатки примитивов взаимоисключения и почему необходимы высокоуровневые средства?
46. Как работает программа-монитор и какие команды необходимы процессам для взаимодействия с монитором?
47. Как может использоваться монитором кольцевой буфер и что это такое? Приведите пример соответствующей программы.
48. Приведите известные вам примеры тупиков и объясните, почему они возникли?
49. Что называется старением процесса и как это связано с проблемой бесконечного откладывания?
50. В чем состоят необходимые условия возникновения тупиков? Кто впервые сформулировал эти условия?
51. Как может быть обеспечено предотвращение тупиков? Какие исследования выполняются в этой связи?
52. Что такое примитивы взаимоисключения и для какой цели они предназначаются?
53. Сущность и основные моменты алгоритма Деккера. Приведите примеры реализации и возникающие проблемы.
54. В чем состоит сущность проблемы тупиков? Приведите пример соответствующей программы.
55. В чем сущность аппаратной реализации взаимоисключения? Приведите пример соответствующей программы.
56. В чем сущность концепции семафоров и кто ее автор? Как можно реализовать эту концепцию?
57. Что значит разделяемые ресурсы и совместно используемые данные? Приведите соответствующие примеры.
58. В чем сущность семафоров со счетчиками или считающих семафоров? Как может быть реализован такой семафор?
59. В чем состоят недостатки примитивов взаимоисключения и почему необходимы высокоуровневые средства?
60. Как работает программа-монитор и какие команды необходимы процессам для взаимодействия с монитором?
61. Как может использоваться монитором кольцевой буфер и что это такое? Приведите пример соответствующей программы.
62. Приведите известные вам примеры тупиков и объясните, почему они возникли?
63. Что называется старением процесса и как это связано с проблемой бесконечного откладывания?
64. В чем состоят необходимые условия возникновения тупиков? Кто впервые сформулировал эти условия?
65. Как может быть обеспечено предотвращение тупиков? Какие исследования выполняются в этой связи?
66. В некоторых системах, эксплуатируемых в настоящее время, виртуальная память по размеру меньше, чем имеющаяся реальная память. Обсудите преимущества и недостатки подобного подхода.
67. Обсудите относительные достоинства каждого из следующих способов отображения при реализации виртуальной памяти: прямое отображение, ассоциативное отображение, комбинированное ассоциативное отображение.
68. Объясните, каким образом осуществляется преобразование виртуальных адресов в реальные в сегментных системах.
69. Объясните сущность и различие параллельных и асинхронных процессов.
70. Какая управляющая конструкция используется для указания параллелизма? Приведите пример программы, в которой возможны параллельные операции.
71. Что значит критический участок или критическая область работы программы? Приведите примеры.
72. Как ставится проблема реализации примитивов взаимоисключения и почему? Назовите основные ограничения. В чем сущность защитной блокировки памяти?
73. В чем сущность проблемы жесткой синхронизации? Приведите пример соответствующей программы. Как может быть решена эта проблема?
74. В чем состоит сущность проблемы бесконечного откладывания? Приведите пример соответствующей программы.
75. В чем состоит назначение и смысл алгоритма кондитера и кто его автор?
76. Покажите, как может быть обеспечена синхронизация процессов при помощи семафоров. Приведите пример соответствующей программы.
77. Как может быть организовано взаимодействие процессов в паре производитель-потребитель. Приведите пример соответствующей программы.
78. В чем состоят трудности и как выполняется реализация семафоров? Как обеспечивает возможность их использования операционная система? Какие основные типы семафоров вы знаете?
79. Как может быть обеспечено распределение ресурсов с помощью монитора? Приведите пример соответствующей программы.
80. Как обеспечивается реализация процессов в мониторе? В чем сущность читателей и писателей? Приведите пример соответствующей программы.
81. В чем состоит сущность проблемы, вызывающей зависание системы? Как (двигаясь по каким путям) эта проблема может быть решена?
82. Как может быть решена проблема обнаружения тупиков и какие методы при этом используются?
83. Почему параллельная обработка, параллелизм и параллельное программирование представляет большой интерес, назовите основные причины.
84. Что такое примитивы взаимоисключения и для какой цели они предназначаются?
85. Сущность и основные моменты алгоритма Деккера. Приведите примеры реализации и возникающие проблемы.
86. В чем состоит сущность проблемы тупиков? Приведите пример соответствующей программы.
87. В чем сущность аппаратной реализации взаимоисключения? Приведите пример соответствующей программы.
88. В чем сущность концепции семафоров и кто ее автор? Как можно реализовать эту концепцию?
89. Что значит разделяемые ресурсы и совместно используемые данные? Приведите соответствующие примеры.
90. В чем сущность семафоров со счетчиками или считающих семафоров? Как может быть реализован такой семафор?
91. В чем состоят недостатки примитивов взаимоисключения и почему необходимы высокоуровневые средства?
92. Как работает программа-монитор и какие команды необходимы процессам для взаимодействия с монитором?
93. Приведите известные вам примеры тупиков и объясните, почему они возникли?
94. Что называется старением процесса и как это связано с проблемой бесконечного откладывания?
95. В чем состоят необходимые условия возникновения тупиков? Кто впервые сформулировал эти условия?
96. Как может быть обеспечено предотвращение тупиков? Какие исследования выполняются в этой связи?
Тестовые задания
Внимание:
· вариант ответа только один;
- возможно несколько вариантов.
1. Условные переменные в мониторах Хора обычно используются:
· для обеспечения взаимоисключения в критических участках кооперативных процессов
· для обеспечения взаимосинхронизации кооперативных процессов
· для передачи данных между кооперативными процессами
2. Отладка программ, содержащих очень большое количество семафоров, затруднена, так как:
· требует специального программного обеспечения
· ошибочные ситуации трудновоспроизводимы
· для хорошего программиста никаких затруднений не возникает
3. В вычислительной системе моделируется движение самосвалов от карьера к заводу и обратно по дороге со стареньким мостом. Движение по мосту может осуществляться в обоих направлениях, но на нем не может быть одновременно более трех машин, иначе он рухнет. Каждый самосвал представлен программистом процессом следующей структуры:
Semaphore mutex = 1;
Semaphore not_full = 0;
Shared int n_on_bridge = 0;
Процесс i-й самосвал:
While (1) {
<доехать до моста>
P(mutex);
if(n_on_bridge == 3) P(not_full);
else n_on_bridge = n_on_bridge+1;
V(mutex);
<проехать по мосту>
P(mutex);
if(n_on_bridge == 3) V(not_full);
n_on_bridge = n_on_bridge-1;
V(mutex);
доехать до места назначения>
}
Что может произойти в результате такого моделирования?
- мост рухнет
- образуется пробка
- ничего особенного не произойдет, модель будет работать нормально
4. Файловая система включается в состав ОС для того, чтобы:
· более эффективно использовать дисковое пространство
· обеспечить пользователя удобным интерфейсом для работы с внешней памятью
· повысить производительность системы ввода-вывода
5. Известно, что в большинстве ОС файл представляет собой неструктурированную последовательность байтов и хранится на диске. Какой способ доступа обычно применяется к таким файлам?
· последовательный
· прямой