Планирование в системах реального времени

Автор работы: Пользователь скрыл имя, 22 Октября 2014 в 14:49, курсовая работа

Краткое описание

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

Содержание

Планирование_________________________________________3
1.Введение в планирование______________________________3
2.Понятие «процесс» и «поток»___________________________4
3.Планирование процессов и потоков______________________6
4.Категории планирования_______________________________7
5.Категории алгоритмов планирования_____________________8
6.Задачи алгоритма планирования_________________________9
7.Планирование в пакетных системах______________________10
8.Планирование в интерактивных системах_________________11
9.Планирование в системах реального времени______________11
Описание программы___________________________________13
Список используемой литературы_________________________18

Вложенные файлы: 1 файл

Отчет.docx

— 103.15 Кб (Скачать файл)

2.Приоритетное планирование

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

9.Планирование  в системах реального времени

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Описание программы

ВАРИАНТ 3. МОДЕЛЬ ОБСЛУЖИВАНИЯ ПРОЦЕССОВ С АБСОЛЮТНЫМИ ПРИОРИТТЕТАМИ ОБСЛУЖИВАНИЯ И ЗАДАННЫМ КВАНТОМ ВРЕМЕНИ.

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

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

Исходные данные:

- величина кванта времени (Tкв = 1);

- поток заявок на выполнение процессов (имя заявки (name), время поступления (t0), приоритет (Pr), время исполнения(T)).

 

Программа:

Program.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

 

namespace WindowsFormsApplication1

{

    static class Program

    {

        /// <summary>

        /// Главная точка входа для приложения.

        /// </summary>

        [STAThread]

        static void Main()

        {

            Application.EnableVisualStyles();

            Application.SetCompatibleTextRenderingDefault(false);

            Application.Run(new Form1());

        }

    }

}

 

Form1.cs

using System;

using System.Collections.Generic;

using System.IO;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace WindowsFormsApplication1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

        }

        private void button1_Click(object sender, EventArgs e)

        {

            richTextBox1.Clear();

            //Считывание из файла

            StreamReader a = new StreamReader(@"d:\Kursovaya.txt");

            string line;

            string[,] tabl = new string[5, 4];

            for (int i = 0; i < 5; i++)

            {

                line = a.ReadLine();

                string[] koord = line.Split(',');

                for (int j = 0; j < 4; j++)

                {

                    tabl[i, j] = koord[j];

                }

            }

            //Вывод в richTextBox1

            for (int i = 0; i < 5; i++)

            {

                richTextBox1.AppendText("     ");

                for (int j = 0; j < 4; j++)

                {

                    richTextBox1.AppendText(tabl[i, j] + "     ");

                }

                richTextBox1.AppendText("\n\n");

            }

            //

            label5.Text = tabl[0, 0];

            label6.Text = tabl[1, 0];

            label7.Text = tabl[2, 0];

            label8.Text = tabl[3, 0];

            label9.Text = tabl[4, 0];

            label1.Visible = true;

            this.Width = 660;

            this.Height = 336;

        }

 

        private void Form1_Paint_1(object sender, PaintEventArgs e)

        {

           

            Graphics g = e.Graphics;

            int xc = 320;

            int yc = 279;

            //определение начала новой системы координат

            g.TranslateTransform(xc, yc);

            //вычерчивание осей координат

            g.DrawLine(new Pen(Color.Yellow, 5.0f),

                -this.Width, 0, this.Width, 0);

            g.DrawLine(new Pen(Color.Yellow, 5.0f),

                0, -this.Height, 0, this.Height);

            //Шкалирование

            for (int i = 0; i < 315; i+=15)

            {

                if (i % 25 != 0)

                {

                    g.DrawLine(new Pen(Color.Yellow, 1.5f), i, 5, i, -279);

                }

                else

                {

                    g.DrawLine(new Pen(Color.Yellow, 3f), i, 10, i, -279);

                }

            }

            //Описание значений цветов для процессов

            g.DrawLine(new Pen(Color.Green, 3f), -157, -30, -127, -30);

            g.DrawLine(new Pen(Color.Red, 3f), -157, -43, -127, -43);

            g.DrawLine(new Pen(Color.Black, 3f), -157, -57, -127, -57);   

            //График

            if (label1.Visible == true)

            {

                for (int i = 0; i > -200; i -= 40)

                {

                    if (i == 0)

                    {

                        g.DrawLine(new Pen(Color.Red, 3f), 15, -45 + i, 150, -45 + i);

                        g.DrawLine(new Pen(Color.Black, 3f), 150, -45 + i, 180, -45 + i);

                        g.DrawLine(new Pen(Color.Black, 3f), -5, -45 + i, 15, -45 + i);

                    }

                    if (i == -40)

                    {

                        g.DrawLine(new Pen(Color.Green, 3f), -5, -45 + i, 15, -45 + i);

                        g.DrawLine(new Pen(Color.Black, 3f), 15, -45 + i, 45, -45 + i);

                    }

                    if (i == -80)

                    {

                        g.DrawLine(new Pen(Color.Green, 3f), -5, -45 + i, 30, -45 + i);

                        g.DrawLine(new Pen(Color.Red, 3f), 30, -45 + i, 45, -45 + i);

                        g.DrawLine(new Pen(Color.Black, 3f), 45, -45 + i, 60, -45 + i);

                        g.DrawLine(new Pen(Color.Red, 3f), 60, -45 + i, 105, -45 + i);

                        g.DrawLine(new Pen(Color.Black, 3f), 105, -45 + i, 150, -45 + i);

                    }

                    if (i == -120)

                    {

                        g.DrawLine(new Pen(Color.Green, 3f), -5, -45 + i, 45, -45 + i);

                        g.DrawLine(new Pen(Color.Red, 3f), 45, -45 + i, 60, -45 + i);

                        g.DrawLine(new Pen(Color.Black, 3f), 60, -45 + i, 75, -45 + i);

                    }

                    if (i == -160)

                    {

                        g.DrawLine(new Pen(Color.Green, 3f), -5, -45 + i, 60, -45 + i);

                        g.DrawLine(new Pen(Color.Red, 3f), 60, -45 + i, 75, -45 + i);

                        g.DrawLine(new Pen(Color.Black, 3f), 75, -45 + i, 105, -45 + i);

                    }

                }                               

            }

        }

 

        private void richTextBox1_TextChanged(object sender, EventArgs e)

        {

 

        }

 

        private void label9_Click(object sender, EventArgs e)

        {

 

        }  

    }

}

 

 

 

 

          Принтскрин ввода данных

 

Принтскрин выполненной программы

 

 

 

 

Список используемой литературы

1. Назаров С.В., Широков  А.И. Многопользовательские операционные  системы. – М.: Изд. дом МИСиС, 2010. 194 стр.

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

3. Гордеев А.В. Операционные системы: Учебник для вузов. 2-е изд. – СПб.: Питер, 2007. – 416 с.: ил.

 

 

 


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