Материал: (Методичка) по курсовой работе (2)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Вопросы для самоконтроля

  1. Поясните употребление терминов «нить», «программа», «процесс», «задача», «поток».

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

  3. Являются ли синонимами термины «планирование» процессов и «диспетчеризация» процессов?

1.4 Управление памятью

Функциями ОС по управлению памятью в мультипрограммной системе

являются: учет свободной и занятой памяти; выделение памяти процессам и освобождение памяти по завершении процесса; организация виртуальной памяти; настройка адресов программы на конкретную область физической памяти; динамическое распределение памяти; дефрагментация памяти; защита памяти. Классификация методов распределения памяти приведена на рис. 1.

Рис. 1

Вопросы, подлежащие изучению:

  1. Функции ОС по управлению памятью.

  2. Виртуальная память.

  3. Алгоритмы распределения памяти без использования внешних носителей

(фиксированные, динамические, перемещаемые разделы).

  1. Страничное распределение памяти.

  2. Таблицы страниц для больших объемов памяти.

  3. Сегментное распределение памяти.

  4. Сегментно-страничное распределение памяти.

  5. Принцип действия кэш-памяти. Способы отображения основной памяти на кэш. Проблема согласования данных.

  6. Схема выполнения запросов в системах с кэш-памятью.

Вопросы для самоконтроля

1. Чем ограничивается максимальный размер физической памяти, которую можно установить в компьютере определенной модели?

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

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

4. На что влияет размер страницы? Каковы преимущества и недостатки большого размера страницы?

5. Где хранятся таблицы страниц и таблицы сегментов?

1.5 Управление вводом/выводом и файловые системы

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

Вопросы, подлежащие изучению:

  1. Задачи ОС по управлению файлами и устройствами.

  2. Многослойная модель подсистемы ввода-вывода.

  3. Файловая система. Определение, состав, типы файлов. Логическая

организация файловой системы.

  1. Физическая организация жесткого диска.

  2. Физическая организация и адресация файлов.

  3. FAT. Структура тома. Формат записи каталога. FAT12, FAT16, FAT32.

  4. UFS: структура тома, адресация файлов, каталоги, индексные дескрипторы.

  5. NTFS: структура тома, типы файлов, каталоги.

  6. Организация контроля доступа к файлам.

  7. Отказоустойчивость файловых систем.

  8. Многоуровневые драйверы.

  9. Дисковый кэш.

  10. Избыточные дисковые подсистемы RAID.

2. Задание на курсовую работу

2.1 Цели и задачи выполнения курсовой работы

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

Задачи курсовой работы:

  1. Изучить методы разработки клиент-серверных приложений.

  2. Изучить механизмы обмена данными в Windows NT и особенности их применения на практике.

  3. Изучить средства синхронизации процессов в Windows NT и особенности их применения на практике.

  4. Изучить функции Win32 API для получения системной информации, информации о процессах и потоках, состоянии памяти.

  5. Создать серверные приложения и приложение-клиент, обменивающиеся данными через заданный интерфейс.

  6. Оформить результаты выполнения курсовой работы в виде пояснительной записки в соответствии с предъявляемыми требованиями.

2.2 Задание на курсовую работу

Разработать многозадачное приложение, выполняющее получение, сбор и вывод системной информации в соответствии с вариантом задания (таблица 1). Номер варианта задания на курсовую работу совпадает с номером, под которым записана фамилия студента в журнале группы.

Таблица 1. Индивидуальные варианты заданий

вар.

Способ

коммуникации

Процесс 1

определяет и передает

Процесс 2

определяет и передает

1

2

3

4

1, 25

отображение

файлов

- имя компьютера, имя пользователя;

- версию операционной системы

- процент используемой физической памяти;

- процент используемой виртуальной памяти

2, 26

почтовые ящики

3, 27

каналы

4, 28

сокеты

5, 29

отображение

файлов

- системные цвета (для 2-3-х элементов);

- код раскладки клавиатуры

- идентификатор текущего процесса;

- дескриптор текущего процесса

6, 30

почтовые ящики

7, 31

каналы

8, 32

сокеты

9, 33

отображение

файлов

- текущее местное время

- продолжительность текущего сеанса

работы

- приоритеты клиентского и серверных

процессов;

- приоритеты их потоков

10, 34

почтовые ящики

11, 35

каналы

12

сокеты

13

отображение

файлов

- количество клавиш мыши;

- наличие колеса

прокрутки

- размер файла подкачки в байтах;

- количество свободных байтов файла подкачки

14

почтовые ящики

15

каналы

16

сокеты

17

отображение

файлов

- ширину и высоту рамки окна;

- ширину и высоту экрана

-количество потоков серверных и клиентского процессов;

- количество модулей серверного и клиентских процессов

18

почтовые ящики

19

каналы

20

сокеты

21

отображение

файлов

- код последней ошибки;

- текущее положение

каретки

- полное имя модуля текущего процесса;

- идентификаторы серверных и клиентских процессов

22

почтовые ящики

23

каналы

24

сокеты

3. Методические указания по выполнению курсовой работы

3.1 Общие замечания

Приложение создается на основе технологии «клиент-сервер» средствами интегрированных сред разработки Visual C++, C++ Builder, по согласованию с преподавателем возможно использование других компиляторов. Процессы 1 и 2 выступают как серверы приложений, третий процесс является их клиентом. Наличие еще одного процесса, выполняющего вспомогательные функции (индикация имен запущенных серверов, ведение дневника и т.п.) приветствуется, но необязательно.

Минимальный функционал клиента:

- создание заданного средства коммуникации процессов;

- получение данных от серверов;

- вывод полученных данных на экран.

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

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

На сайте кафедры МКиИТ [8] на странице дисциплины «Операционные системы» размещены методические указания к выполнению лабораторных работ, которые содержат исчерпывающую информацию (теоритические сведения, функции Win32API, примеры кодов) по всем аспектам выполнения курсовой работы. Использование функций получения системной информации (работа первого сервера) подробно рассмотрено в методических указаниях к лабораторной работе №1, функции для работы с процессами и потоками, исследования памяти (работа второго сервера) – в лабораторных работах № 3 и 4, системные средства синхронизации процессов – в лабораторной работе №5, средства передачи данных между процессами – в лабораторных работах № 2 и 6.

    1. Порядок выполнения курсовой работы

Курсовая работа предназначена для самостоятельного практического закрепления изученного материала и выполняется в несколько этапов.

  • Подготовительный этап. Уточнение постановки задачи. Аналитический обзор научно-технической литературы.

  • Проектный этап. Разработка алгоритмов работы приложения. Обоснование необходимости и выбор средства синхронизации.

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

  • Оформительский этап. Оформление пояснительной записки в соответствии с требованиями пунктов 3.3 и 3.4 настоящих методических указаний.

  • Заключительный этап. Защита курсовой работы.

3.3 Структура и примерное содержание пояснительной записки

Пояснительная записка к курсовой работе должна включать в себя следующие структурные элементы в указанной ниже последовательности:

  • титульный лист (Приложение 1);

  • задание на курсовую работу;

  • содержание;

  • введение, в котором раскрываются актуальность и значение темы, формулируется цель работы;

  • основная часть:

  • постановка задачи;

  • краткие теоретические основы разрабатываемой темы (суть, область применения, достоинства и недостатки вычислительной архитектуры «клиент-сервер»; обзор системных средств коммуникации и синхронизации процессов);

  • разработка и описание алгоритма работы приложения;

  • описание cтруктуры программы (модулей, основных функций, классов и т.д.);

  • руководство пользователя;

  • результаты применения программы в виде снимков экрана после запуска приложения (пример для консольного приложения приведен на рис. 2, на рис. 3 – пример для приложения с оконным интерфейсом);

  • заключение;

  • список использованных источников;

  • приложение, содержащее исходные коды разработанных программ с необходимыми комментариями.

Рис. 2

Рис. 3

3.4 Требования к оформлению пояснительной записки

Пояснительная записка к курсовой работе выполняется на стандартных листах бумаги формата А4, сброшюрованных в папку. Текст печатается на одной стороне листа. Поля: левое поле - 35 мм, правое – 10 мм, верхнее и нижнее – 20 мм. Примерное количество знаков на странице – 2000. Шрифт Times New Roman размером 12, межстрочный интервал 1,5. Страницы текста и рисунки имеют сквозную нумерацию. Первой страницей является титульный лист, на котором номер страницы не проставляется.

3.5 Защита курсовой работы

Защита курсовой работы является заключительным этапом курсового проектирования и проводится не позднее середины последней недели перед началом сессии.

Выполненная курсовая работа в бумажной форме сдается через ЦОКР на проверку руководителю проектирования. Руководитель вносит в текст свои замечания по работе, принимает решение о допуске к защите или возвращает работу на доработку с указанием причин.

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

В результате защиты курсовая работа, согласно Положению о промежуточной аттестации студентов МТУСИ, оценивается дифференцированной отметкой («неудовлетворительно», «удовлетворительно», «хорошо», «отлично»).

Студенты, не защитившие курсовую работу, до экзамена по дисциплине "Операционные системы" не допускаются.

4. Список рекомендованной литературы

Основная:

  1. В.Г.Олифер, Н.А.Олифер. Сетевые операционные системы. – СПб.: Питер, 2009

  2. Э.Таненбаум, Х.Бос. Современные операционные системы. 4-изд. – СПб.: Питер, 2015

  3. Марк Руссинович, Дэвид Соломон, Алекс Ионеску, Павел Йосифович. Внутреннее устройство Windows.7-е издание . - СПб.: Питер, 2018

  4. Джеффри Рихтер, Кристоф Назар. Windows via C/C++. –M.:Издательство «Русская редакция»; СПб.: Питер, 2009

  5. http://msdn.microsoft.com

  6. Л. Басс, П. Клементс, Р. Кацман. Архитектура программного обеспечения на практике. СПб.: Питер», 2006 г.

  7. http://ru.wikipedia.org/wiki/Клиент-сервер

Дополнительная:

  1. Джеффри Рихтер. Windows для профессионалов. Создание эффективных Win32-пpилoжeний с учетом специфики 64-разрядной версии Windows. - Питер, Русская редакция, 2001

  2. Э.Таненбаум, А.Вудхалл. Операционные системы. Разработка и реализация. - Питер, 2007

  3. Сафонов В.О. Основы современные операционных систем – М.: Национальный Открытый Университет «ИНТУИТ»: БИНОМ. Лаборатория знаний, 2011

  4. Мартимьянов Ю.Ф., Яковлев Ал.В., Яковлев Ан..В. Операционные системы. Концепции построения и обеспечения безопасности. – М.: Горячая линия – Телеком, 2011

  5. Х.М.Дейтел, П.Дж.Дейтел, Д.Р. Чофес. Операционные системы.- М.: Изд. Бином, 2009

  6. Д.В.Иртегов. Введение в операционные системы. СПб.: БВХ-Петербург, 2008

  7. С.В.Назаров. Операционные среды, системы и оболочки. Основы структурной и функциональной организации: Учебное пособие. – М.: КУДИЦ-ПРЕСС, 2007

  8. К.А.Коньков. Устройство и функционирование ОС Windows. Практикум по курсу «Операционные системы»: учебное пособие. М.: Интернет-Университет Информационных технологий; БИНОМ. Лаборатория знаний, 2008.

  9. http://www.intuit.ru/department/internet/mwebtech/5/

  10. В.Коржов. Многоуровневые системы клиент-сервер. М.: Открытые системы. Сети, 1997, № 6.

ПРИЛОЖЕНИЕ 1