У вас вопросы?
У нас ответы:) SamZan.net

Тема- Моделювання роботи симетричного мультипроцесора UM з загальною шиною Виконав- ст

Работа добавлена на сайт samzan.net: 2016-03-05

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 2.7.2025

Міністерство освіти і науки, молоді та спорту України

Кіровоградський національний технічний університет

Механіко-технологічний факультет

Кафедра програмного забезпечення

Дисципліна: «Обчислювальні системи»

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

Тема: «Моделювання роботи симетричного мультипроцесора UMA з загальною шиною»

Виконав: ст. гр. КІ-09-2

Кірнус Л.Є.

Перевірив: викладач

Доренський О.П.

 

Кіровоград 2012


Розробити програму-емулятор роботи симетричного мультипроцесора
UMA з загальною шиною на засадах багатопроцесорності у системі.

Код програми:

using System;

using System.Windows.Forms;

using System.Threading;

using System.IO;

namespace UMA

{

public partial class Form1 : Form

 {

public string Path; // Змінна для створення по дескриптору текстових файлів

 public string Str_1, Str_2, Str_3, Str_4;

public int i,Mas;

public Random Rm = new Random(); // Змінна для генерації випадкових чисел

 StreamWriter Write; // Змінна для роботи з текстовими файлами (запис)

 public Form1()

{

InitializeComponent();

}

// ------------------------------------ Імітація процесів 

// Процес №1

public void Proc_1()

{

Thread Thread_1 = new Thread(Function_1); // Створення потоку

Thread_1.Start(); // Запуск потоку

Thread_1.Join(300); // Чекаємо доки потік, за допомогою функції Function_1, обробить дані

label1.Text = Str_1;

}

// Процес №2

public void Proc_2()

{

Thread Thread_2 = new Thread(Function_2); // Створення потоку

Thread_2.Start(); // Запуск потоку

Thread_2.Join(600); // Чекаємо доки потік, за допомогою функції Function_2, обробить дані

label2.Text = Str_2;

}

// Процес №3

public void Proc_3()

{

Thread Thread_3 = new Thread(Function_3); // Створення потоку

Thread_3.Start(); // Запуск потоку

Thread_3.Join(900); // Чекаємо доки потік, за допомогою функції Function_3, обробить дані

label3.Text = Str_3;

}

// Процес №4

public void Proc_4()

{

Thread Thread_4 = new Thread(Function_4); // Створення потоку

Thread_4.Start(); // Запуск потоку

Thread_4.Join(1200); // Чекаємо доки потік, за допомогою функції Function_4, обробить дані

label4.Text = Str_4;

}

// ------------------------------------ Потокові функції  

public void Function_1()

{

Str_1 = "#1 Stop!";

Path = @"CPU#1.txt"; // Створюємо текстовий файл CPU#1.txt

Write = File.CreateText(Path); // Відкриваємо його для запису даних

Write.WriteLine(Str_1); // Записуємо у нього значення змінної Str_1

Write.Close(); // Звершуємо роботу з текстовим файлом

}

public void Function_2()

{

Str_2 = "#2 Stop!";

Path = @"CPU#2.txt"; // Створюємо текстовий файл CPU#2.txt

Write = File.CreateText(Path); // Відкриваємо його для запису даних

Write.WriteLine(Str_2); // Записуємо у нього значення змінної Str_2

Write.Close(); // Звершуємо роботу з текстовим файлом

}

public void Function_3()

{

Str_3 = "#3 Stop!";

Path = @"CPU#3.txt"; // Створюємо текстовий файл CPU#3.txt

Write = File.CreateText(Path); // Відкриваємо його для запису даних

Write.WriteLine(Str_3); // Записуємо у нього значення змінної Str_3

Write.Close(); // Звершуємо роботу з текстовим файлом

}

public void Function_4()

{

Str_4 = "#4 Stop!";

Path = @"CPU#4.txt"; // Створюємо текстовий файл CPU#4.txt

Write = File.CreateText(Path); // Відкриваємо його для запису даних

Write.WriteLine(Str_4); // Записуємо у нього значення змінної Str_4

Write.Close(); // Звершуємо роботу з текстовим файлом

}

// ---------------------------------------------------------

private void Form1_Load(object sender, EventArgs e)

{

 

}

// --------------------- Кнопка "Блоку керування шиною" ------------------------

private void button1_Click(object sender, EventArgs e)

{

if (checkBox1.CheckState == CheckState.Checked) // Якщо, лінія запиту шини (BRQ) опитана

{

Mas = Rm.Next(0,2); // Генеруємо випадкові числа від "0" до "2"

 if (Mas == 0) // Яккщо "0" - запускаємо на виконання мультипроцесор UMA

 {

MessageBox.Show("Линия (BGT) свободна!", "System info");

 MessageBox.Show("Сигнал занятости на линии (SACK) отсутствует!", "System info");

 MessageBox.Show("Обработка данных...", "System info");

Proc_1(); // Обробка данных першим CPU

MessageBox.Show("Процесор №1 обработал данные!", "System info");

label1.Text = "Null";

Proc_2(); // Обробка данных другим CPU

MessageBox.Show("Процесор №2 обработал данные!", "System info");

label2.Text = "Null";

Proc_3(); // Обробка данных третім CPU

MessageBox.Show("Процесор №3 обработал данные!", "System info");

 label3.Text = "Null";

Proc_4(); // Обробка данных четвертим CPU

MessageBox.Show("Процесор №4 обработал данные!", "System info");

 label4.Text = "Null";

MessageBox.Show("Данные успешно обработаны!", "System info");

}

else

{

MessageBox.Show("Шина данных занята! Подождите...", "System info");

}

}

else

{

MessageBox.Show("Опросите линию запроса шины (BRQ)!", "System info");

 }

}

}

}




1. Тема Монолог Качества хорошей речи Цели- обучающие- ознакомить учащихся с правилами составления монолог
2. Задание 1 1 Больной страдает хроническим алкоголизмом II стадии о чем свидетельствует анамнез злоупотре
3. Секс и насилие
4. I swer by pollo Physicin by sclepius by Helth by Pnce nd by ll the go do nd goddesses mking them my witnesses tht I will crry out ccording to my bility nd judgement this oth
5. Совершенствование депозитной политики коммерческого банка на примере ОАО ГБ Нижний Новгород
6. Планы сторон и начало русско-японской войны
7. Контрольна робота з дисципліни- Господарське законодавство
8. На тему- залог как основной способ обеспечения исполнения обязательств По дисциплине- гражданское право
9. на тему- Столкновение ТС с внезапно остановившимся ТС перед светофором при заторе движения или изза техниче
10. . Современные принципы классификации и таксономии вирусов