KOMPYUTER TƏLİM TEXNOLOGİYALARI
97
hesablamaların həyata keçirilməsi kəsilmələr mexanizmi vasitəsilə mümkündür. Lakin, bu halda
daha sürətli proseslərin emalı və izlənməsi problematikdir. Çünki, bu halda söhbət real zamanda
paralel hesablamadan deyil, sadəcə baxılan kəsilməyə ayrılan zaman kvantında proseslərin ardıcıl
icrasından - kvazi-paralelizmdən gedə bilər. Bunun da səbəbinin DOS-un uyğun hesablama
sisteminin paralel hesablama imkanlarından istifadə edə bilməməsində olması aydındır.
Qeyd olunduğu kimi Windows XP real
zamanda
paralel
hesablamaları
dəstəkləyən
Windows ailəsinin yeganə (Windows Vista və
Windows ailəsinin daha sonrakı üzvlərini nəzərə
almasaq) üzvüdür.
Yuxarıda verilən nəzəri araşdırmalar öz
tətbiqini Windows XP üçün yazılmış kiçik model-
proqramda tapmışdır.
Proqram baxılan məsələnin mahiyyətcə
həllinin həyata keçirilməsinin yollarını göstərmək
məqsədini güdür. Bunun üçün iki prosesin - ədədin
sayılması (nəticəni) və bu zaman proqramın
interfeys
elementlərindən
(o
cümlədən
düymələrdən) alınan informasiyanın emalının
həyata keçirilməsi nümunə kimi baxılır. Proqramın interfeysi şəkil 3-də göstərilib. Burada Start
düyməsinin basılması ilə sayğac işə düşür. Bundan sonra, əgər adi halda Stop düyməsini (və eləcə
də digər düymələri) “basmaq” mümkün olmursa, bu proqramda Stop düyməsini basmaqla sayğacı
saxlamaq mümkündür.
Nəticə.
Təklif olunan alqoritm paralel hesablama tələb olunan praktik məsələlərin, o cümlədən də
hərbi problemlərin həllində tətbiq oluna bilər. Bu tip məsələlərə misal olaraq müxtəlif vericilərdən
alınan məlumatların yığılması və onun emalını həyata keçirən proqram təminatının yaradılmasını
göstərmək olar.
Proqramın kodu aşağıda verilir:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
//Thread
type
TMyThread = class(TThread)
private
protected
procedure Execute; override;
published
constructor CreateIt;
//destructor Destroy; override;
end;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Şəkil 3. Paralel hesablama
proseslərinin proqramlaşdırılmasını
nümayiş etdirən model proqramın
interfeysi.
KOMPYUTER TƏLİM TEXNOLOGİYALARI
98
Button3: TButton;
procedure Button3Click(Sender: TObject);
procedure Stat;
procedure StatModul;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
{ Private declarations }
MyThread1 : TMyThread;
Thread1Active : boolean;
procedure ThreadDone;
public
{ Public declarations }
end;
var
Form1: TForm1;
var i:real; s:string;
implementation
{$R *.dfm}
constructor TMyThread.CreateIt;
begin
inherited Create(true);
FreeOnTerminate := true;
Suspended := false;
end;
procedure TMyThread.Execute;
begin
Form1.Statmodul;
end;
procedure TForm1.ThreadDone;
begin
if (MyThread1<> nil)then
begin
i:=0;
Thread1Active := false;
//MyThread1.Terminate;
end;
end;
procedure TForm1.StatModul;
begin
i:=1;
while i>0 do
begin
i:=i+1;
Str(i:12:0,S);
KOMPYUTER TƏLİM TEXNOLOGİYALARI
99
Edit1.Text:=s;
edit1.refresh;
end;
end;
procedure TForm1.Stat;
begin
if (MyThread1=nil)or(Thread1Active=false)then
begin
MyThread1:= TMyThread.CreateIt;
Thread1Active := true;
end
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Stat;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ThreadDone;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ThreadDone;
close;
end;
end.
İstinad edilmiş ədəbiyyat:
1.
Windows для профессионалов.- Джефри Рихтер. Москва, 2001.
2.
Барский А. Б. Планирование параллельных вычислительных процессов.—M.:
Машиностроение, 1980.—192 с.
3.
Пярнпуу А. А., Хохлюк В. И. Параллельные вычисления в прикладных
задачах//Сообщение по прикладной математике/Вычислительный центр АН СССР—
M., 1985.—64 с.
4.
Системы параллельной обработки: Пер. с англ./Под ред. Д. Ивенса.—M.: Мир,
1985.—416 с.
5.
Хохлюк В. И. О параллелизме в целочисленной оптимизации// Вычислительные
системы.—1981. Вып. 89,—С. 3—22.
6.
Ху T. С. Целочисленное программирование и потоки в сетях: Пер. с англ.—M.: Мир,
1974.—519 с.
7.
Kuck D. J. Parallel Processing of Ordinary Program//Adv. Comput.—1976.—N 15.—P.
119—179.
Dostları ilə paylaş: |