Планувальник руху голівок

Автор: Пользователь скрыл имя, 11 Января 2011 в 15:21, курсовая работа

Описание работы

Будь яка операційна система має в своєму складі планувальник руху голівок. Цей модуль обирає з висхідної черги голівкок, згідно зі своїм алгоритмом роботи, одну голівку для його виконання.Дослідження ефективності алгоритму планувальника руху голівок дозволяє вивчити поведінку дискових драйверів, їх ефективність і здатність до виконання певного класу задач. Імітаційне моделювання роботи планувальника руху голівок дозволяє визначити базові характеристики обраного алгоритму та зробити висновки щодо його ефективності.

Содержание

1 ЗАГАЛЬНІ ВІДОМОСТІ…………………………………………………...4
2 ФУНКЦІОНАЛЬНЕ ПРИЗНАЧЕННЯ…………………………….……....4
3 ОПИС ЛОГІЧНОЇ СТРУКТУРИ………………………………………......4
3.1. Алгоритм програми……………………………………………………...4
3.2 Використані методи……………………………………...……………….4
3.3 Структура програми ……………………………………………………...5
3.4 Зв’язки програми з іншими програмами………………………………...5
4 ВИКОРИСТАНІ ТЕХНІЧНІ ЗАСОБИ…………………………………….5
5 ВИКЛИК ТА ЗАВАНТАЖЕННЯ………………………………………….5
6 ВХІДНІ ДАНІ……………………………………………………………….5
7 ВИХІДНІ ДАНІ……………………………………………………………..5

Работа содержит 1 файл

курсач.doc

— 253.00 Кб (Скачать)

                  {

                        array[counter1] = 0;

                  }

      }

      cout << "NULL";

      cout << endl;

      return 0; 
 
 
 

} 

/*

* Метод, що зберігає результат переміщення голівок

* void CMotion_planner_heads::Save(int array[])

* @Param array[] Масив кількості голівок

*/

void CMotion_planner_heads::SaveRezult(int array[])

{

   unsigned int N = 21;

   ofstream input_file("d:\\result.txt"); 

      if(input_file==NULL)

               cout<< "~~ERROR~~ input file "<<"\n"; 

        input_file << "The sequence of movements of head:" << endl; 

      for(unsigned int counter = 0; counter < N; counter++)

        {

             input_file << array[counter]<< " -> ";

        }

        input_file << "NULL";

        input_file.close ();

} 
 
 
 

-6-

КІТ 28б.06106-10  12 1-01 

  1. Файл  main.cpp
 

/*

============================================================================

Name        : main.cpp

Author      : Петренко Аліна Сергіївна

Version     : 1.00.00

============================================================================

*/ 

#include <iostream>

#include "motion_planner_heads.h"

#define N 25 

using namespace std; 

// точка входа  в програму

int main()

{

      // Оголошення змінних

      int change = 0;

      int iNumberHeads,iNumberHead;

      int array[N];

      // Поки не натиснута клавіша  - "5"

      while(change != 5)

      {

            cout <<"-------------------------"<< "\n";

            cout <<"1-Set heads" << "\n" << "2-Moving the head" << endl << "3-Save result" << endl << "4-Help" << endl << "5-Exit" <<endl;

            cout <<"-------------------------"<< "\n";

            cin>>change; 

            switch(change)

            {

                  case 1:

                        {  

                                    // створення статичного  об'єкту 

                                    CMotion_planner_heads motion_planner_heads; 

                                    // Вводимо кількість  голівок з клавіатури

                                    cout << "Enter the number of heads: ";

                                    cin  >> iNumberHeads;

                                    cout << endl; 

                                    // Встановлюємо значення  послідовності номерів голівок  магнітного диску 

-7-

КІТ 28б.06106-10  12 1-01 

                                    motion_planner_heads.SetHeads(array,iNumberHeads);

                                    // Виводимо значення  послідовності номерів голівок  на екран монітора

                                    motion_planner_heads.PrintHeads(array,iNumberHeads); 

                                    cout << "The original sequence of heads was installed !!!" << endl; 

                                    break;

                        }

                  case 2:

                        {

                                    // створення статичного  об'єкту 

                                    CMotion_planner_heads motion_planner_heads; 

                                    // Вводимо номер  першої голівки з клавіатури, яку обрав користувач

                                    cout << "Enter the number of head: ";

                                    cin  >> iNumberHeads; 

                                    // Додаємо номер  голівки в список, яку ввів  користувач

                                    // та виконуємо  переміщення голівок згідно з  алгоритму FCFS

                                          motion_planner_heads.MovingHeads(array, iNumberHeads);

                                    break;

                        

                  case 3:

                        {

                              // створення статичного  об'єкту 

                              CMotion_planner_heads motion_planner_heads; 

                                    cout << "The result has been saved!!!" << endl;

                                    // Метод, що зберігає  результат переміщення голівок  в текстовому файлі

                                    motion_planner_heads.SaveRezult(array);

                                    break;

                        }

                  case 4:

                        {

                                 // Коротка  довідкова інформація для користувача

                                    cout << "--------------------" << endl;

                                    cout << "Motion planner heads" << endl; 

                                    cout << "--------------------" << endl;       

-8-

КІТ 28б.06106-10  12 1-01 

                                    cout << "When you press <1> - Displays the original sequence placement heads" << endl;

                                    cout << "When you press <2> - Movement heads for the discipline FCFS" << endl;  

                                    cout << "When you press <3> - Save result in text file" << endl;

                                    cout << "When you press <4> - Called on the program's Help" << endl;

                                    cout << "When you press <5> - Be carrying out the completion of program's" << endl;

                                    cout << " " << endl;

                                    break;

                        }

                  case 5:

                        {

                                    return 0;

                        }

                  default:

                                    cout << "Received the wrong team " << endl;

            }

      };

      return 0;

} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

МІНІСТЕРСТВО  ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ  ТЕХНІЧНИЙ УНІВЕРСТИТЕТ

«ХАРКІВСЬКИЙ  ПОЛІТЕХНІЧНИЙ ІНСТИТУТ» 
 

КАФЕДРА «Обчислювальна техніка та програмування» 
 
 
 
 

                                           Затверджую:

                                                              Завідувач кафедри ОТП

                                                                       ______________ Домнін Ф.А

                                                                          «___» ________________2010р. 
 
 

Планувальних  руху голівок

Опис  програми

ЛИСТ  ЗАТВЕРДЖЕННЯ

КІТ 28б.06106-10  13 1-01 ЛЗ 
 
 
 
 

                                          Керівник проекту:

                                                                      _______________ Главчев М.І.

                                                                 «___»________________2010р.

                                Виконавець:

                                                   Студент групи КІТ 28б

                                                                        _________________ Сахно Я.О.

                                                                  «___» ________________2010 р. 
 
 
 
 
 
 
 
 
 

Харків 2010

ЗАТВЕРДЖЕНО

КІТ 28б.06106-10  13 1-01 ЛЗ 
 
 
 
 
 
 
 
 
 
 
 
 

Планувальник  руху голівок

Опис  програми

КІТ 28б.06106-10  13 1-01

Листів  5 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Харків 2010

-2-

КІТ 28б.06106-10  12 1-01 

АНОТАЦИЯ 

       У даному документі находяться відомості  про розробленій програмний продукт, що реалізує моделювання алгоритму планування руху голівок згідно з технічним завданням КІТ 38.08101-01 90 1-01, виданим на курсове проектування. Подається функціональне призначення розробленого програмного продукту, опис алгоритму та використаних методів, структура програми, використані технічні засоби, опис виклику та завантаження, а також опис характеру і організації вхідних та вихідних даних.

        Розроблений програмний продукт  призначений для планування руху  голівок шляхом дисципліни FCFS. Програмний продукт реалізований мовою програмування C++ у середовищі програмування Microsoft Visual Studio версії 7 для операційної системи Microsoft Windows XP. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

                      -3-

                КІТ 28б.06106-10  12 1-01 

ЗМІСТ 
 

1 ЗАГАЛЬНІ ВІДОМОСТІ…………………………………………………...4

2 ФУНКЦІОНАЛЬНЕ  ПРИЗНАЧЕННЯ…………………………….……....4

3 ОПИС ЛОГІЧНОЇ СТРУКТУРИ………………………………………......4

Информация о работе Планувальник руху голівок