Тема 18. Среды и тенденции

Окружения и конфигурирование параметров среды. Графические среды. Интегрированные системы. Интерактивные среды и рабочие места программистов, пользователей и пр. Программные средства человеко-машинного интерфейса. Мультимедиа и гипермедиа; аудио и сенсорное сопровождение.

 

МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ИЗУЧЕНИЮ ДИСЦИПЛИНЫ

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

 4. КОНТРОЛЬНЫЕ ЗАДАНИЯ

Контрольная работа

1. Что такое «независимость» программ от внешних устройств? Зачем она нужна и почему это важно для пользователя?

2. Назовите наиболее важные факторы, позволяющие считать появление системы SYSTEM/360 фирмы IBM важнейшим событием в истории развития операционных систем.

3. Когда в середине 60-х годов фирма IBM первоначально анонсировала выпуск SYSTEM/360, она надеялась ограничиться одной операционной системой для всех машин семейства? Почему в итоге они были вынуждены разрабатывать и поставлять много операционных систем?

4. Дайте краткую сравнительную характеристику следующих операционных систем: UNIX и LINUX.

5. Что такое «разделение цен» на аппаратные и программные средства? Как это повлияло на компьютерную промышленность?

6. Дайте краткую сравнительную характеристику следующих операционных систем: OS/360 и MS-DOS.

7. Дайте определения следующих терминов? Укажите их сходство и различия: оперативный режим (online) и режим реального времени.

8. Что такое «программная прослойка» между «железом» и программой пользователя? Как она влияет на представление пользователя о компьютере?

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

10. Почему обычно нецелесообразно устанавливать приоритетный порядок для списка заблокированных процессов? При каких обстоятельствах это могло бы быть полезным?

11. Объясните сущность и различие параллельных и асинхронных процессов: parallel or concurrent processes and asynchronous concurrent processes.

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

13. Что значит критический участок (critical section) или критическая область (critical region) работы программы? Приведите примеры.

14. Как ставится проблема реализации примитивов взаимоисключения и почему? Назовите основные ограничения. В чем сущность защитной блокировки памяти (storage interlock)?

15. В чем сущность проблемы жесткой синхронизации (lockstep synchronisation)? Приведите пример соответствующей программы. Как может быть решена эта проблема?

16. В чем состоит сущность проблемы бесконечного откладывания (indefinite postponement)? Приведите пример соответствующей программы.

17. В чем состоит назначение и смысл алгоритма кондитера (Bakery Algorithm) и кто его автор?

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

19. Как может быть организовано взаимодействие процессов в паре «производитель-потребитель». Приведите пример соответствующей программы.

20. В чем состоят трудности и как выполняется реализация семафоров? Как обеспечивает возможность их использования операционная система? Какие основные типы семафоров вы знаете?

21. Стратегии размещения определяют, в какое место основной памяти следует загружать поступающие программы и данные. Предположим, что заданию, ожидающему начала выполнения, требуется память, которая может быть предоставлена немедленно. Следует ли такое задание загрузить и начать его выполнение немедленно?

22. Обсудите достоинства и недостатки систем с несвязным распределением памяти.

23. Один из пессимистически настроенных разработчиков операционных систем говорит, что фактически не играет роли, какую именно стратегию размещения информации в памяти принять. Рано или поздно система достигнет некоторого установившегося состояния, и все стратегии будут давать приблизительно одинаковые результаты. Согласны ли вы с этим? Объясните свою позицию.

24. Рассмотрите систему со свопингом, имеющую несколько разделов. Абсолютная версия подобной системы требует, чтобы при многократных загрузках и выгрузках программа попадала в тот же самый раздел. Перемещаемая версия подобной системы допускает, чтобы при перекачке программ использовались любые свободные разделы, достаточные для размещения, причем, быть может, различные разделы при каждой перекачке. Предполагая, что физическая память во много раз превосходит по размеру среднее задание, обсудите преимущества этой мультипрограммной схемы свопинга по отношению к однопрограммной схеме свопинга, описанной в тексте.

25. Приведите несколько причин, обусловивших необходимость отделения виртуального адресного пространства от реального.

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

27. В некоторых системах, эксплуатируемых в настоящее время, виртуальная память по размеру меньше, чем имеющаяся реальная память. Обсудите преимущества и недостатки подобного подхода.

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

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

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

 

Вопросы к зачету

1. Почему определение ОС – это система программных средств для управления аппаратурой не является корректным?

2. Какие объекты взаимодействуют с операционной системой? Каковы отличия соответствующих интерфейсов?

3. Почему операционной системе обычно присваивается статус наиболее полномочного пользователя?

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

5. Что такое независимость программ от внешних устройств? Зачем она нужна и почему это важно для пользователя?

6. Что такое программная прослойка между железом и программой пользователя? Как она влияет на представление пользователя о компьютере?

7. Что означает дружественный по отношению к пользователю интерфейс и почему это важно?

8. Какие цели ставили перед собой разработчики первых операционных систем? Какие системы этого времени вам известны?

9. Что такое имена стандартных файлов системы? В чем заключается их полезность?

10. Каковы причины приведшие к возникновению термина мультипрограммирование?

11. Что такое имитаторы и эмуляторы? Какой режим вы бы предпочли для быстрого и экономичного перехода с компьютера на компьютер и для решения больших производственных задач с помощью программ для старого компьютера?

12. Какие факторы обусловили появление новой дисциплины – технологии конструирования программ?

13. Какие факторы и как могут отразиться на конструкциях будущих операционных систем? Какие тенденции в этой области вы могли бы выделить?

14. Сформулируйте несколько ключевых отличий между операционными системами персональных компьютеров и ОС мейнфреймов?

15. Приведите известные вам определения процесса. Как вы думаете, почему до сих пор нет общепринятого определения?

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

17. Что означает, что процесс не допускает перехвата ЦП? Может ли процессор обрабатывает прерывания в то время, когда выполняется процесс, не допускающий перехвата ЦП? Приведите пример процесса, не допускающего перехвата ЦП? Процесс какого типа предположительно допускает перехват ЦП?

18. Что такое ядро ОС? Почему ядро обычно размещают в основной памяти? Какие функции, как правило, выполняет ядро?

19. Когда микропрограммная реализация основных частей ОС может быть целесообразной?

20. Объясните сущность и различие параллельных и асинхронных процессов.

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

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

23. Как ставится проблема реализации примитивов взаимоисключения и почему? Назовите основные ограничения. В чем сущность защитной блокировки памяти?

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

25. В чем состоит сущность проблемы бесконечного откладывания? Приведите пример соответствующей программы.

26. В чем состоит назначение и смысл алгоритма кондитера и кто его автор?

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

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. Файловая система включается в состав ОС для того, чтобы:

· более эффективно использовать дисковое пространство

· обеспечить пользователя удобным интерфейсом для работы с внешней памятью

· повысить производительность системы ввода-вывода


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: