- •Вопросы к экзамену по дисциплине «Системное программное обеспечение»
- •Определение, структура программного обеспечения.
- •2. Определение, функции операционной системы (ос).
- •3. Определение, основные принципы построения ос.
- •4. Понятие вычислительного процесса.
- •5. Понятие ресурса.
- •6. Понятие активного процесса. Динамика состояний процесса.
- •7. Понятие потока, мультипрограммирования.
- •8. Идентификация процесса.
- •9. Взаимодействие потоков.
- •10. Классификация процессов.
- •11. Классификация ресурсов.
- •12. Понятие критических секций, основные требования к ним.
- •13. Понятие тупика, условия его возникновения.
- •14. Методы борьбы с тупиками. Описание каждого метода.
- •15. Виды межпроцессных коммуникаций. Очереди сообщений. Сигналы.
- •16. Виды межпроцессных коммуникаций. Конвейер. Сокеты.
- •17. Понятие системных часов, таймера.
- •18. Планирование выполнения процессов в системах реального времени.
- •19. Отображение пространства имен на физическую память компьютера.
- •20. Сегментный способ организации виртуальной памяти.
- •21. Страничный способ организации виртуальной памяти.
- •22. Сегментно-страничный способ организации виртуальной памяти.
- •23. Управление памятью вычислительной системы.
- •24. Особенности файловой системы fat.
- •25. Особенности файловой системы ntfs.
- •26. Понятие ввода/вывода. Основные задачи супервизора ввода/вывода.
- •27. Режимы ввода/вывода, их характеристика.
- •28. Процесс управления вводом/выводом.
- •29. Понятие микроядерной операционной системы.
- •30. Понятие монолитной операционной системы.
- •31. Классификация операционных систем.
- •32. Особенности сетевых и распределенных операционных систем.
- •33. Понятие прерывания. Механизм обработки прерываний.
- •34. Синхронные и асинхронные прерывания.
- •35. Дисциплины диспетчеризации.
- •36. Понятие утилиты. Виды утилит.
- •37. Понятие компилятора, интерпретатора, отладчика, компоновщика
- •38. Виды систем защиты программного обеспечения.
- •39. Показатели применимости и критерии оценки систем защиты программного обеспечения.
9. Взаимодействие потоков.
В многопоточной среде часто возникают проблемы, связанные с использованием параллельно исполняемыми потоками одних и тех же данных или устройств. Для решения подобных проблем используются такие методы взаимодействия потоков, как взаимоисключения (мьютексы), семафоры, критические секции и события. Кратко охарактеризуем каждый из указанных выше методов взаимодействия.
Взаимоисключения (mutex, мьютекс) – это объект синхронизации, который устанавливается в особое сигнальное состояние, когда не занят каким-либо потоком. Только один поток владеет этим объектом в любой момент времени, отсюда и название таких объектов (mutually exclusive access – взаимно исключающий доступ) – одновременный доступ к общему ресурсу исключается. После всех необходимых действий мьютекс освобождается, предоставляя другим потокам доступ к общему ресурсу.
Семафоры представляют собой доступные ресурсы, которые могут быть приобретены несколькими потоками в одно и то же время, пока пул ресурсов не опустеет. Тогда дополнительные потоки должны ждать, пока требуемое количество ресурсов не будет снова доступно. Семафоры очень эффективны, поскольку они позволяют одновременный доступ к ресурсам.
События. Объект, хранящий в себе 1 бит информации «просигнализирован или нет», над которым определены операции «просигнализировать», «сбросить в непросигнализированное состояние» и «ожидать».
Критические секции обеспечивают синхронизацию подобно мьютексам за исключением того, что объекты, представляющие критические секции, доступны в пределах одного процесса.
Условные переменные (condvars). Сходны с событиями, но не являются объектами, занимающими память – используется только адрес переменной
10. Классификация процессов.
Классификация процессов
1. по временным характеристикам различают интерактивные, пакетные процессы и процессы реального времени.
2. По генеалогическому признаку различают порождающее (родительские) и порожденные (дочерние) процессы.
3. По результативности различают эквивалентные, тождественные и равные процессы.
4. По времени развития процессы делятся на последовательные, параллельные и комбинированные
5. По принадлежности к операционной системе процессы бывают системные (исполняют программу из состава операционной системы) и пользовательские.
6. По связности различают процессы:
а) взаимосвязанные, которые имеют какую-то связь (пространственно-временную, управляющую, информационную);
б) изолированные – слабо связанные;
в) информационно-независимые
г) взаимодействующие
е) конкурирующие.
7. Порядок взаимосвязи
а) предшествования
б) приоритетности
в) взаимного исключения
11. Классификация ресурсов.
1. По возможности расширения свойств делятся на эластичные (допускающие виртуализацию) и жесткие (не допускающие виртуализации).
2. По времени существования: постоянные (доступны во все время процесса: и до, и после его работы) и временные.
3. По степени важности: основные и второстепенные (допускают альтернативное развитие процесса при их отсутствии).
4. По структуре: простые (не содержит составных элементов) и составные. Они различаются числом состояний: простой может быть только в двух состояниях – доступен или занят.
5. По характеру использования распределяемых ресурсов: потребляемые и воспроизводимые ресурсы (допускают многократное использование и освобождение).
6. По характеру использования: последовательно и параллельно используемые (используются несколькими процессами).