Главная страница
Навигация по странице:

  • "МИРЭА - Российский технологический университет" РТУ МИРЭА

  • ОТЧЕТ ПО ПРАКТИЧЕСКОЙ РАБОТЕ № 3

  • Рисунок 1 - результат выполнения программы 1

  • Рисунок 2 - результат выполнения программы 2

  • Рисунок 3 - блок-схема алгоритма

  • Планирование на основе приоритетов. Отчет по практической работе 3 по дисциплине Вычислительные системы реального времени


    Скачать 268.68 Kb.
    НазваниеОтчет по практической работе 3 по дисциплине Вычислительные системы реального времени
    Дата05.06.2021
    Размер268.68 Kb.
    Формат файлаdocx
    Имя файлаПланирование на основе приоритетов.docx
    ТипОтчет
    #214313






    МИНОБРНАУКИ РОССИИ




    Федеральное государственное бюджетное образовательное учреждение

    высшего образования

    "МИРЭА - Российский технологический университет"

    РТУ МИРЭА









    Институт информационных технологий (ИТ)




    Кафедра Промышленной информатики



    ОТЧЕТ ПО ПРАКТИЧЕСКОЙ РАБОТЕ №3

    по дисциплине

    «Вычислительные системы реального времени»






    Выполнил студент группы ИВБО-10-18

    Сафонов В.О.



    Принял преподаватель

    Макаров М.А.







    Практическая работа выполнена

    «__»_______2021 г.





    «Зачтено»

    «__»_______2021 г.





    Москва 2021

    Содержание

    Изучение работы алгоритма 2

    Проведение экспериментов с кодом 3

    Описание работы алгоритма на псевдокоде 6

    Вывод 8


    Изучение работы алгоритма


    Планирование на основе приоритетов - это алгоритм вытесняющей многозадачности. Каждому процессу назначается приоритет. Далее процессы сортируются и выполняются в порядке понижения приоритета. Процессы с одинаковым приоритетом выполняются в порядке очереди.

    Выполним реализацию данного алгоритма на языке Си.

    Листинг программы

    #include
    int main(){

    int bt[20], p[20], wt[20], tat[20], pr[20], i, j, n, total = 0, pos, temp, avg_wt, avg_tat;

    printf("Enter Total Number of Process:");

    scanf("%d", &n);

    printf("\nEnter Burst Time and Priority\n");

    for(i = 0; i
    printf("\nP[%d]\n", i+1);

    printf("Burst Time:");

    scanf("%d", &bt[i]);

    printf("Priority:");

    scanf("%d", &pr[i]);

    p[i] = i + 1;

    //contains process number

    }

    //sorting burst time, priority and process number in

    //ascending order using selection sort

    for(i = 0; i
    pos = i;

    for(j = i+1; j
    {

    if(pr[j] < pr[pos])

    pos = j;

    }

    temp = pr[i];

    pr[i] = pr[pos];

    pr[pos] = temp;

    temp = bt[i];

    bt[i] = bt[pos];

    bt[pos] = temp;

    temp = p[i];

    p[i] = p[pos];

    p[pos] = temp;

    }

    wt[0] = 0; //waiting time for first process is zero

    //calculates waiting time

    for(i = 1; i
    wt[i] = 0;

    for(j=0; j < i; j++)

    wt[i]+=bt[j];

    total += wt[i];

    }

    avg_wt = total/n; //average waiting time

    total = 0;

    printf("\nProcess\t\tTime\t\tWaitingTime\tTurnaround Time");

    for(i = 0; i < n; i++)

    {

    tat[i] = bt[i] + wt[i];

    total+= tat[i];

    printf("\nP[%d]\t\t %d\t\t%d\t\t\t%d", p[i], bt[i], wt[i], tat[i]);

    }

    avg_tat = total/n; //average turnaround time

    printf("\n\nAverage Waiting Time = %d", avg_wt);

    printf("\nAverage Turnaround Time=%d\n", avg_tat);

    system("pause");

    return 0;

    }




    Проведение экспериментов с кодом


    Протестируем выполнение алгоритма. Введем следующие исходные данные:

    Количество процессов: 4




    Процесс 1

    Процесс 2

    Процесс 3

    Процесс 4

    Время исполнения

    5

    2

    16

    7

    Приоритет

    2

    3

    1

    4


    В результате выполнения программы процессы должны выполниться в следующей последовательности: 3, 1, 2, 4. При этом 4 процесс будет ожидать своего исполнения 23 условных единиц времени.



    Рисунок 1 - результат выполнения программы 1

    Как видно по рисунку, работа программы полностью оправдала наши ожидания.

    Протестируем выполнение программы при нескольких процессов с одинаковым приоритетом. Введем следующие исходные данные:

    Количество процессов: 5




    Процесс 1

    Процесс 2

    Процесс 3

    Процесс 4

    Процесс 5

    Время исполнения

    8

    4

    10

    9

    3

    Приоритет

    2

    3

    3

    3

    1



    Рисунок 2 - результат выполнения программы 2

    Как мы можем наблюдать, в результате сортировки процесс 2 стал последним, но, учитывая одинаковые приоритеты процессов 2, 3 и 4, выполнение программы не считается ошибочным.


    Описание работы алгоритма на псевдокоде


    Опишем работу программы с помощью блок-схемы:



    Рисунок 3 - блок-схема алгоритма

    Вывод


    Изучил работы улгоритма планирования на основе приоритетов и написание под Линукс кода на C/C++.


    написать администратору сайта