Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Планувальник потоків у просторі користувача

Автор:   •  Декабрь 25, 2019  •  Лабораторная работа  •  2,073 Слов (9 Страниц)  •  329 Просмотры

Страница 1 из 9

Шкель І.В. КІ-162

Лабораторна робота №2

Планувальник потоків у просторі користувача.

 Мета роботи:

        Ознайомитися з поняттям планувальник, з алгоритмом планування, розглянути основні види планувальників.

Короткі теоретичні відомості

Планувальник завдань  - програма (служба чи демон), часто названа сервісом операційної системи, яка запускає інші програми в залежності від різних критеріїв, як, наприклад:

• наступ певного часу;

• перехід операційної системи в певний стан (бездіяльність, сплячий режим і т. д.);

• надходження запиту від адміністратора через інтерфейс користувача або через інструменти віддаленого адміністрування.

Існує багато різних методів планування. Більшість з них можна віднести до двох основних типів:

• невитісняючі (кооперативні) - планувальник не може забрати час у обчислювального потоку, поки той сам його не віддасть.

• витісняючі - планувальник після закінчення кванта часу вибирає наступний активний обчислювальний потік, сам обчислювальний потік також може віддати призначений для нього залишок кванта часу.

          Перемикання контексту - заміна контексту одного потоку іншим. Планувальник зберігає поточний контекст і завантажує в регістри процесора інший. Планувальник може перервати активний потік в будь-який момент часу, що дещо спрощує модель.  Насправді ж не планувальник перериває потік, а поточна програма переривається процесором в результаті реакції на зовнішню подію - апаратне переривання - і передає управління планувальнику.

Завдання на лабораторну роботу


         Для виконання даної лабораторної роботи необхідно реалізувати планувальник для обраної вами ОС. Для прикладу розглянемо планувальник для OC Linux. Robin Round - cамий простий, ефективний і широко використовуваний алгоритм для складання розкладів в багатозадачних системах з поділом часу. Усі виконувані процеси поміщаються в циклічну чергу.

Планувальник почергово виділяє кожному процесу квантований інтервал часу. В системі, де всі завдання мають однаковий пріоритет, квант часу один і той же. Нові процеси додаються в хвіст черги.

Планувальник вибирає перший процес у черзі, встановлює таймер на переривання після закінчення кванта часу і відправляє процес на виконання.
Якщо процес після закінчення виділеного інтервалу часу не закінчується, то ЦП вивантажується, а даний процес додається у хвіст черги. Якщо ж процес завершується, то він звільняє ЦП. У кожному разі планувальник виділяє ЦП наступного процесу в черзі очікування.

Виконання завдання

Текст файла main.cpp:

#include

#include "Thread.h"

#include

#include

#include

#include

using namespace std;

int ID = 1;

#define TIMER 1

void func_choise();

void init_queue(int);

void thread_func();

void alarm_handler(int signo);

Thread *threadTmp;

bool flag = 0;

list listThread;

int main() {

        func_choise();

        return 0;

}

void func_choise() {

        while (true) {

                int choise = 0;

                cout << "1. Добавить поток в очередь.\n"

                                "2. Выполнение без прерывания.\n"

                                "3. Выполнение с прерыванием.\n";

                cout << endl << "Введите пункт: ";

                cin >> choise;

                switch (choise) {

                case 1:

                        int cnt;

                        cout << "Введите количетсво потоков :" << endl;

                        cin >> cnt;

                        init_queue(cnt);

                        cout << "Потоки добавлены" << endl << endl;

...

Скачать:   txt (9.3 Kb)   pdf (123.6 Kb)   docx (83.3 Kb)  
Продолжить читать еще 8 страниц(ы) »
Доступно только на Essays.club