Орындаған: 16-иск-1 студенті Сапарбай А. Б



жүктеу 223,42 Kb.
бет8/9
Дата10.08.2020
өлшемі223,42 Kb.
#31250
1   2   3   4   5   6   7   8   9
Аружан курс

Барлық басқа технологиялық атрибуттар мұраланған, процесті жасаған кезде жасалынған процестің бейнесі жасалады, ол жасалып жатқан процесс кескінінің дәл көшірмесі (жоғарыда аталған атрибуттарды қоспағанда). Fork () деп аталатыннан кейін, екеуі де сол нүктеден орындауды жалғастырады. Процесті генерациялау үдерісі немесе процедура болып табылатынын білу үшін, fork () жүйесінің шақыруын (оның мәні) жасалатын процесті идентификаторы қайтарады және жасалатын процесс нөлге тең.

Практикалық бөлім


C#-та ағындардың кезектері. Бұл бағдарлама ағындардын кезекпен орындалуын косады,ағындарды ретімен орындайды және ағындардын жұмысын токтатады,жана ағын косады
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Threading;

using System.Diagnostics;


namespace WindowsFormsApplication1

{

public partial class Form1 : Form



{

int count_threads = 0;

int global_num_form = 1; //Число вложенных форм

Thread pbthread; //ProgressBar Thread

Thread child_pbthread; //Child ProgressBar Thread

Thread mainthread = null;

bool run_child_thread = false;

bool close_button_click = false;

Form1 newform;

//private static ManualResetEvent resetEvent = new ManualResetEvent(false);


public Form1()

{

InitializeComponent();



}
private void RunChildThreadInNewForm()

{

if (this.InvokeRequired)



{

this.Invoke((Action)(() =>

{

this.button1.PerformClick();



}));

}
mainthread.Join();

}
private void FillProgressBar()

{

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



{

if (run_child_thread)

{

run_child_thread = false;



child_pbthread = new Thread(newform.RunChildThreadInNewForm);

child_pbthread.Priority = ThreadPriority.Lowest;

//child_pbthread.IsBackground = true;

child_pbthread.Start();

child_pbthread.Join();

}
Thread.Sleep(100);

if (this.InvokeRequired)

{

this.Invoke((Action)(() =>



{

this.progressBar1.Value = i;

}));

}
}


count_threads--;

//resetEvent.Set();

}
private void GeneralStuff()

{

while (count_threads > 0)



{

//ThreadPool.QueueUserWorkItem(arg => FillProgressBar());

pbthread = new Thread(FillProgressBar);

//pbthread.Priority = ThreadPriority.Lowest;

//pbthread.IsBackground = true;

pbthread.Start();

pbthread.Join();

if (this.InvokeRequired)

{

this.Invoke((Action)(() =>



{

label2.Text = count_threads.ToString();

}));

}

}



if (global_num_form > 1)

{

this.BeginInvoke((MethodInvoker)delegate {



this.Owner.Enabled = true;

this.Close(); });

}

else


{

if (close_button_click)

{

this.BeginInvoke((MethodInvoker)delegate { this.Close();});



}

//Thread.Sleep(5000);

}

}


private void test()

{

if (this.InvokeRequired)



{

this.Invoke((Action)(() => this.Close()));

}

}
private void button1_Click(object sender, EventArgs e)



{
count_threads++;

label2.Text = count_threads.ToString();


if (mainthread == null)

{

mainthread = new Thread(GeneralStuff);



mainthread.Start();

}
if (!mainthread.IsAlive)

{

mainthread = new Thread(GeneralStuff);



mainthread.Start();

}

}


private void button2_Click(object sender, EventArgs e)

{

if (pbthread != null)



{

pbthread.Abort();

if (count_threads > 0)

{

count_threads--;



}

label2.Text = count_threads.ToString();

}

}

private void button3_Click(object sender, EventArgs e)



{

if (mainthread != null && mainthread.IsAlive)

{

newform = new Form1();



newform.Show(this);

this.Enabled = false;

newform.global_num_form = global_num_form;

newform.global_num_form++;

if (newform.global_num_form > 4)

{

newform.button3.Enabled = false;



}

run_child_thread = true;

}

}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)



{

close_button_click = true;

if (mainthread != null)

{

if (mainthread.IsAlive)



{

e.Cancel = true;

}

else


{

e.Cancel = false;

}

}

}


}

}
Жұмыстың нәтижесі




Сурет 3 –Ағындардың кезекпен орындалуы
Мен бұл жұмыста ағындардың кезекпен орындалуын қарастырдым.

Қорытынды


Linux операциялық жүйесіне бірінші назар тастап көрдік, оның басқа жүйелерден абзалдығы(Linux жүйесінде вирустардан нұқсан көрмейміз) болмаса, кемшлігі (жүйенің ілінуі дегенді ұмытасыз) жоқ. Бірақ әр жүйенің өзіне тән ерекшеліктері, оны үйренуде қиыншылықтар болады. Оның бәрін атап өту қиын мәселе. Біздер Windows-тан басқа да жүйелер бар және Windows-тан жақсы екенін анықталды.

Әлдеқашан мақұлдайтын уақыт келді, Windows бәріне жалғыз және жақсы операциялық жүйе емес. Иә, онда әдемі программа орнатқышы бар, жағымды және ыңғай интерфейс(GUI) бар, өте көп қолданбалы бағдарламалары және өңдеу құралдары бар.

Тамыр каталог бір тек қана кез келгенге Linux файлдық жүйесіне әрқашан  "|" деп аталады. Linux пайдаланушысы каталогтердің бірыңғай ағашымен әрқашан жұмыс істейді, тіпті егер әр түрлі тап осылар орналасқан әр түрлі сақтаушыларда;

1 қаңтар 1970 жыл ресми түрде UNIX операциялық жүйесінің туған күні болып саналатыны анықталды;

Үдеріс ретінде орындалу кезеңінде тұрған бағдарламаны түсінуге болады. Сонымен қатар, үдерісті процессор үшін жұмыс бірлігі ретінде де қарастыруға болады. Жаңа процессорлар үшін одан да кіші жұмыс бірлігі бар, ол ағын немесе тармақ. Басқаша айтсақ, бір үдеріс бір немесе бірнеше ағын туындата алады.

Ал, ағындар операциялық жүйелерде есептеулерді параллельдеу құралдары ретінде пайда болды. Әрине, бір бағдарлама аясында есептеудерді параллельдеу міндеттерін дәстүрлі тәсілдермен де шешуге болады.

Үдерістерді жоспарлаудың мысалы ретінде параллельді есептеулерді алуға болады.

Параллелді есептеулер – параллельді (бір уақытта) жұмыс істейтін есептеуіш үдерістер жиыны сияқты құрастырылатын компьютерлік есептеулерді ұйымдастырудың әдісі.

Параллельді есептеулерді қолданғанда уақыттың үнемделгендігін байқаймыз.

Тәжірбиелік бөлімде жалпы ала келгенде біз Linux ОЖ-нің үдерістерді басқаруға болатын командалар тізімімен таныстық. Қорыта келгенде Linux ОЖ-нің үдерістерімен танысу жүргізілді.







жүктеу 223,42 Kb.

Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау