суббота, сентября 16, 2006

Курсовые работы по дисциплине Операционные системы

Примерный перечень тем курсовых работ по дисциплине "Операционные системы"


Темы, предлагаемые в рабочей программе


  1. Организация файловой системы
  2. Планировщик заданий на основе алгоритмов с квантованием без использования приоритетов
  3. Планировщик заданий на основе алгоритмов с квантованием c использования приоритетов
  4. Планировщик заданий на основе алгоритмов с абсолютными приоритетами
  5. Планировщик заданий на основе алгоритмов с относительными приоритетами
  6. Драйвер устройства
  7. Файловый менеджер
  8. Диспетчер управления памятью
  9. Начальный загрузчик операционной системы
  10. Диспетчер управления витруальной памятью (сегментная организация)
  11. Диспетчер управления виртуальной памятью (страничная организация)
  12. Командный процессор


Дополнительные темы (составленные мною совместно с Юрием Валентиновичем Королевым, аспирантом кафедры ВТ)


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

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


Общая функциональность:

Файловая система эмулируется в памяти в виде дерева с одним корневым каталогом - «/». В дальнейшем будем называть ее "виртуальной файловой системой".Работа с виртуальной файловой системой будет вестись из программы через интерфейс командной строки (Command Line Interface, CLI).

Набор обязательных команд CLI:
  • CD [path] - сделать path текущим каталогом. Если path начинается с "/", то путь - абсолютный, иначе - относительный по отношению к текущему каталогу. Если path не задано - вывести полное имя текущего каталога;
  • DIR - вывести содержимое текущего каталога на экран;
  • HELP [имя команды] – вывести справку по команде. Если имя команды не задано - вывести список всех доступных команд;
  • MOUNT [source] [target] - создание полной копии реальной файловой системы, заданной путем source, в виртуальной системе - target; source - абсолютный путь в реальной файловой системе; target - имя папки в текущем каталоге, куда будет примонтирована реальная файловая система;
  • UMOUNT [path] - удаление каталога из виртуальной файловой системы;
  • EXIT - завершение работы программы.

Варианты заданий:

  1. Вариант 1
    • TREE - графическое представление текущего каталога;
  2. Вариант 2
    • RENAME [path]file1 file2 - переименовывает file1, находящийся в папке path в file2 в той же папке;
    • DEL path - если path указывает на папку, то удаляются все файлы в этой папке; если папка пустая, то удаляется эта папка; если path указывает на файл - удаляется файл;
    • COPY [path]source [path]target – копирование файлов в виртуальной файловой системе;
  3. Вариант 3
    • DIR mask - вывод файлов и папок текущего каталога по маске;
  4. Вариант 4
    • LINK source target - создание символьной ссылки в пределах виртуальной файловой системы; target не может быть поддеревом source;
    • SIZEOF path - посчитать размер папки (и вложенных папок);
  5. Вариант 5
    • TYPE file - вывод на экран содержимого текстового файла;
    • FIND sting file - поиск текстовой строки в файле;
  6. Вариант 6
    • COMPARE file1 file2 - сравнение содержимого файлов (равны или нет);
    • DUPLICATES - поиск всех дубликатов файлов в текущей папке и подкаталогах; выводит список полных путей групп одинаковых файлов;
  7. Вариант 7
    • HASHSUM file - посчитать контрольную сумму файла (например, CRC);
    • DUPLICATES - поиск всех дубликатов файлов в текущей папке и подкаталогах; выводит список полных путей групп одинаковых файлов;
  8. Вариант 8
    • MONITOR path timeInterval - следить за изменениями в файловой системе (виртуальной и реальной); выводить информацию об удаленных и созданных файлах;
  9. Вариант 9
    • XMOVE source destination - переместить папку source в папку destination;
    • XDEL path - удалить файл или папку и все ее подкаталоги;
    • XCOPY source destination - копировать файл или папку и все ее подкаталоги;


Сетевые утилиты

Сеть из компьютеров, сетевых карт и hub’ов.

Предоставить меню CLI (Command Line Interface) для создания модели конфигурации сетевой инфраструктуры, состоящей из компьютеров, с установленной сетевой картой (картами). Компьютеры объединены в сеть через hub’ы. Hub’ы могут быть включены или выключены.

Предоставить интерфейс для конфигурирования ip-адресов, масок и других необходимых настроек для выполнения команды ping в созданной сетевой инфраструктуре, и реализовать команду ping.

Планировщик заданий в распределенной вычислительной системе

Задан набор вычислительных машин (в виде модели).

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

Составить расписание, в котором будет указан порядок запуска конкретных задач на конкретных компьютерах, чтобы все задачи выполнились за как можно меньшее время, при условии, что:
  1. Вариант 1 - любая задача может выполняться на любом компьютере (на компьютере может решаться любая задача);
  2. Вариант 2 - каждая задача может выполняться лишь на определенном множестве компьютеров (компьютер может решать задачи определенного рода);

Выбор темы курсовой работы


Приведенный выше список тем является лишь рекомендуемым. В программе курса обозначено, что:
"Цель выполнения курсовой работы - формирование представления о принципах построения операционных систем."
Следовательно, вы можете выбрать любую тему (не обязательно из списка выше), которая тем или иным образом будет отвечать поставленной цели. Если у вас нет такой темы - берете одну из перечисленных выше.

Честно говоря, выбор темы должен ложиться полностью на ваши плечи, исходя из ваших научных интересов; научный руководитель (я в данном случае) лишь помогает скорректировать ее, чтобы она удовлетворяла требованиям рабочей программы. В связи с тем, что у большинства из вас на третем курсе еще не достаточно навыков или опыта, и/или вы не выбрали еще для себя направление ваших исследований/интересов, я и иду вам на встречу, предлагая свои темы. Будьте готовы на старших курсах (возможно уже в следующем семестре) "придумывать" себе тему работ/проектов сами, иначе у вас будут проблемы в дальнейшем. Считайте это дружественным советом ;)

Группы ИСТ-104, ИТО-104


Как мы уже с вами обсуждали на практических занятиях, в течение семестра вы будете должны написать курсовую работу, состоящую из двух частей:
  1. Теоретическая
  2. Практическая
Это не должно быть для вас новым, как и то, что программная составляющая в практической части не обязательно должна быть на языке C++. Если кто-то владеет каким-либо языом программирования достаточно, чтобы самостоятельно написать эту курсовую работу (без поддержки со стороны практических занятий) - пожалуйста, но я советую вам хорошенько оценить свои силы и посоветоваться со мной в индивидуальном порядке. На практических занятиях у нас будет практикум по языку C++, и все, что будет нужно вам для ваших курсовых, будем разбирать прямо на этих занятиях.
Кроме того, еще одной из причин, почему мы с Виталием Васильевичем Вершининым решили выбрать C++ - это ознакомление с синтаксисом языка, чтобы в следующем семестре вам было более просто перейти к изучению языка C#.

Группа ИСТ-204ук


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

Формальности (Это важно!)


Для закрепления темы за студентом необходимо до 10 часов утра 22 Сентября (это будет пятница) заполнить бланк задания, который можно скачать здесь (файл Microsoft Word, 32 Кб), и передать его мне в бумажном виде.
В пятницу 22 сентября в 10:01 я понесу ваши бланки на подпись зав. кафедрой А.В. Кострову.

Те, у кого не будет таких бланков, к защите курсовой работы допущены не будут.

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

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


Источники информации



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

Список будет постоянно пополняться в течение семестра (я надеюсь)...

  1. INTUIT.ru: Список учебных курсов по компьютерным и информационным
    технологиям (http://www.intuit.ru/courses.html)

    Обратите внимание на разделы: "Операционные системы" и "Системы программирования" ( в частности Язык программирования C++)
  2. TBD

P.S.
Все в ваших руках,
Удачи! :)

4 комментария:

Dmitry Gusev комментирует...

После скачивания файла с бланком задания переименуйте его в файл с расширением doc, например, file.doc - пока я не нашел хостинг для файлов, прийдется делать так... если у кого то есть идеи или предложения по поводу хостинга - готов выслушать :)

Dmitry Gusev комментирует...

Получил уже несколько вопросов по поводу того, как заполнять бланк задания на курсовую работу. Надеюсь это поможет:

-------

Тема работы: Название вашей темы - тут все просто

Исполнитель: ФИО гр. группа

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

Ссылки в Интернет не пойдут :) Если источник в интернете, то впишите сюда название куда указывает ссылка, например, для драйвера, "Описание контроллера стандартной клавиатуры". В источниках информации в курсовой необходимо включить ссылку в интернет (непосредственно сам URL).

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


Содержание работы:

То, что планируете сделать в этой работе - что будете описывать в теоретической части и что реализовывать в практической.
План работы - два три предложения.


Дата выдачи задания: это заполняется мной, непосредственно перед передачей на подпись зав. кафедрой - то есть дата утверждения задания

Промежуточный контроль: у нас это будут первые недели каждого месяца, начиная с окрября, то есть пишите здесь: 01.10.2006, 01.11.2006

Срок сдачи законченной работы: 08.12.2006

-------

dogpaul комментирует...

Проверка связи...
Раз, два, три...

Dmitry Gusev комментирует...

Связь есть :) Проверял :)