
- •А.Н. Езин
- •Назначение курсовой работы
- •Примерная структура пояснительной записки
- •Календарный план выполнения работы
- •Последовательность выполнения курсовой работы
- •Подготовка курсовой работы к защите
- •Варианты заданий для курсовой работы
- •Тема 1. Разработка приложения по поддержке набора данных на основе файла с использованием функций Win 32 api по управлению им.
- •Тема 2. Разработка приложения по поддержке набора данных на основе файла, проецируемого в память.
- •Тема 3. Разработка приложения по поддержке набора данных на основе двухстороннего связного списка, хранимого в файле.
- •Тема 4. Разработка многопоточного приложения, использующего синхронизацию потоков с помощью событий с ручным сбросом.
- •Тема 5. Создание многопоточного приложения, иллюстрирующего решение проблемы синхронизации потоков-производителей и потоков-потребителей.
- •Тема 6. Разработка двух приложений, взаимодействующих между собой на основе сообщений.
- •Тема 7. Разработка двух приложений, взаимодействующих между собой на основе проецируемых в память файлов.
- •Тема 8. Разработка двух приложений, взаимодействующих между собой на основе буфера обмена.
- •Тема 15. Разработка приложения по поиску заданной строки во всех текстовых файлах заданного каталога с использованием функции управления файлами Win 32 api.
- •Тема 16. Разработка приложения по поиску заданной строки во всех текстовых файлах заданного каталога с использованием механизма проецирования файла в память.
- •Тема 20. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе механизма блокировки части файла.
- •Тема 23. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе объекта мютекс без блокировки частей файла.
- •Тема 26. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе объекта событие с автоматическим сбросом без блокировки частей файла.
- •Тема 27. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе критической секции без блокировки частей файла.
- •Тема 28. Разработка приложения, моделирующего возникновение взаимоблокировок и восстановление после них.
- •Тема 29. Разработка приложений, моделирующих работу дискового накопителя.
- •Литература
Тема 28. Разработка приложения, моделирующего возникновение взаимоблокировок и восстановление после них.
Содержание задания.
Разработайте приложение, моделирующее обнаружение взаимоблокировок в системе, включающей набор из нескольких типов ресурсов в количестве n каждого типа и m потоков. Заставьте каждый поток сгенерировать необходимый ему набор ресурсов (например, три ресурса типа A, один ресурс типа B и пять ресурсов типа C). Затем каждый раз запрашивайте из конкретного набора ресурс одного определенного типа в произвольном порядке с паузами разной длительности. Сделайте так, чтобы каждый поток удерживал полученные ресурсы, пока не будут удовлетворены все его дополнительные запросы. С этого момента должны начать возникать взаимоблокировки. Запустите другой поток, который бы проверял наличие взаимоблокировок каждые несколько секунд. В случае возникновения тупиковой ситуации он должен будет сообщить об этом и начать уничтожение потоков, вовлеченных во взаимоблокировку. Испытайте различные эвристические подходы к выбору жертвы среди потоков и проанализируйте, при использовании какого метода среднее время между возникновением взаимоблокировок является наименьшим. Реализуйте в приложении также аналитический метод обнаружения взаимоблокировок. Разработайте необходимый пользовательский интерфейс приложения.
Тема 29. Разработка приложений, моделирующих работу дискового накопителя.
Содержание задания.
Разработайте приложение, моделирующее работу дискового накопителя с двумя пластинами (т.е. четырьмя поверхностями), четырьмя головками чтения/записи, 25 цилиндрами и 20 секторами на каждой дорожке. Накопитель должен помнить текущую позицию головок чтения/записи и выполнять операции чтения, записи и позиционирования. Эти операции должны возвращать время в миллисекундах, необходимое для выполнения запроса (для примера можно задать время перемещения между дорожками 2 мс, среднее время позиционирования 10 мс и вращательную задержку 5 мс). После этого напишите приложение, генерирующее равномерно распределенные запросы с указанием пластины, цилиндра, сектора и количества запрашиваемых секторов. Эти запросы должны отправляться диспетчеру дисковых операций (первое приложение), который будет упорядочивать их и посылать накопителю (первое приложение) для выполнения. Накопитель должен выполнять операции чтения, записи и позиционирования. Используйте возвращаемые накопителем величины, чтобы определить пропускную способность каждого алгоритма, время его реагирования и разброс этого времени. Рабочие операции обоих приложений должны выполняться в отдельных рабочих потоках.
Литература
А.В. Гордеев. Операционные системы: Учебник для вузов. 2-е изд. – СПб.: Питер, 2007. – 416 с.: ил.
С.В. Назаров. Операционные среды, системы и оболочки. Основы структурной и функциональной организации: Учеб. пособие. – М.: КУДИЦ-ПРЕСС, 2007. – 504 с., илл.
С.В. Назаров, Л.П. Гудыно, А.А. Кириченко. Операционные системы. Практикум. Под ред. С.В. Назарова – М.: КУДИЦ-ПРЕСС, 2008. – 464 с., илл.
В.Г. Олифер, Н.А. Олифер. Сетевые операционные системы: Учебник для вузов. 2-е изд. – СПб.: Питер, 2008. – 669 с.: ил.
Д.В. Иртегов. Введение в операционные системы. – 2-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2008. – 1040 с.: ил. – (Учебное пособие)
Х.М. Дейтел, П.Дж. Дейтел, Д.Р. Чофнес. Операционные системы. Основы и принципы: Третье издание. Пер. с англ. – М.: ООО «Бином-Пресс», 2006 г. – 1024 с.: ил.
Х.М. Дейтел, П.Дж. Дейтел, Д.Р. Чофнес. Операционные системы. Распределенные системы, сети, безопасность: Третье издание. Пер. с англ. – М.: ООО «Бином-Пресс», 2006 г. – 704 с.: ил.
Э. Таненбаум. Современные операционные системы. 2-е изд. – СПб.: Питер, 2006. – 1038 с.: ил.
Д. Бэкон, Т. Харрис. Операционные системы. – СПб.: Питер; Киев: Издательская группа BHV, 2004. – 800 с.: ил.
Джеффри Рихтер. Windows для профессионалов (программирование в Win32 API для Windows NT 3.5 и Windows 95) /Пер. с англ. – М.: Издательский отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1995. – 720 с.: ил.
Джеффри Рихтер. Windows для профессионалов: создание эффективных Win32 приложений с учетом специфики 64-разрядной Windows /Пер. с англ. – 4-е изд. - Спб.: Питер; М.: Издательство «Русская редакция», 2008. – 722 с.: ил.
Ч.Петзолд. Программирование для Windows 95. Том 1: пер. с англ. – СПб.: BHV – Санкт-Петербург, 1997. – 752 с., ил.
Ч.Петзолд. Программирование для Windows 95. Том 2: пер. с англ. – СПб.: BHV – Санкт-Петербург, 1997. – 368 с., ил.