You are on page 1of 21

ЈКП Инфостан

Паралелно процесирање
Практична примена на рачунарима
Unisys A series

Младеновић Синиша
Директор Система обједињене наплате
Београд, новембар 2002. Е-Мail: msinisa@infostan.co.yu
ЈКП Инфостан Теме
 Паралелно процесирање и Multiprocessing
 System resourses
 Soft configuration
 Пример конфигурациje система
 Врста паралелног процесирања
 Паралелно процесирање у Инфостану
 Закључак
Паралелно процесирање и
ЈКП Инфостан Multiprocessing

 Паралелно процесирање је истовремено извршавање програма на


више процесора који могу бити у једном вишепроцесорском систему
или на више једнопроцесорских или вишепроцесорских система.
 Мултипроцесирање значи да два или више процесора једног
рачунара раде под контролом заједничког оперативног система.
Мултипроцесирање је и мултипрограмски рад с тим што више
програма раде истовремено а то омогућава боље искоришћење
меморије и већу пропусну моћ целог система.
 Вишепроцесорски систем може бити конфигурисан и као више
рачунара у истом кабинету са заједничком меморијoм.
Паралелно процесирање и
ЈКП Инфостан Multiprocessing
 Сви процесори имају приступ заједничким меморијским областима.
Програм из меморије може бити извршен на било ком процесору
који је слободан у том тренутку.
 Код подизања система – иницијализације један од процесора
формира табеле и структуре потребне за рад оперативног система и
убацује део оперативног система у меморију на фиксној локацији
која је позната хардверу, док су остали процесори у том тренутку
слободни.
 У току редовног рада система сви процеcори се третирају
равноправно. Кад неки од процесора буде слободан он прегледа
заједничку листу програма за извршавање – ready queue и ако листа
није празна он крене са извршавањем првог програма са те листе без
обзира у ком процесору се извршавао задњи скуп нартедби тог
програма.
ЈКП Инфостан System resourses
 Системски ресурси вишепроцесорског система се могу разноврсно
конфигурисати у независне групе или партиције ако систем има
следеће компоненте:
- два или више процесора
- два или више I/O процесора
- два или више меморијска модула
 Или као минимум свака група мора садржати следеће:
- један процесор
- један I/O процесор
- довољно меморије за рад групе
 Могуће је комбиновање свих процесора у оквиру једне групе за
појачање те групе а такође и тестирање неког од процесора,
хардверског модула или софтвера у оквиру једне групе без утицаја на
рад друге независне групе.
ЈКП Инфостан Soft configuration
 Soft configuration је софтверски контролисан начин конфингурације
система и његових ресурса. Ресурси обухватај процесоре (data и I/O),
меморију, системске датотеке и I/O хардвер.
 Мултипроцесорски систем се може конфигурисати у зависности од
начина коришћења, рецимо ако је у току дана углавном
интерактиван рад а у току ноћи се раде захтевне batch обраде онда се
у току дана ради са једном мултипроцесорском групом а у току ноћи
раде две групе, једна за batch а друга за интерактивни рад.
 Промена конфигурације се може извршити у току рада система
пребацивањем делова ресурса из jedne патриције у другу.
 Конфигурација система се описује у програмском језику Algol .
Пример конфигурационе
ЈКП Инфостан датотеке
 Begin group Afull;  Begin group Apart2;

 processors: proc 5, iop 1;
processors: proc 4-5, iop 0-1;
 memory: memory unit 0,1;
 memory: memory unit 0,1,2,3;  peripherals: all;
 peripherals: all;  hn Apart2;
 hn Afull;  ...

 end group Apart2;
...
 end group Afull;  Begin installation joined
 groups:
 Begin group Apart1;  Afull;
  end installation;
processors: proc 4, iop 0;
 memory: memory unit 2,3;  Begin installation split
 peripherals: all;  groups:
 hn Apart1;  Apart1;
 ...  Apart2;
 end installation;
 end group Apart1;
Врсте
ЈКП Инфостан паралелног процесирања
         Према начину активирања процеса
        - из WFL-work flow language тј. из batch мода
        - из осталих програмских језика
         По месту извршавања процеса
        - на посебним рачунарима
        - multiprocessing – на једном вишепроцесорском систему
         Према врсти међусобне комуникације процеса
        - преко стандардних датотека
        - преко port датотека
        - преко host control или hyper channel датотека
         По синхронизацији процеса
        - синхроно
        - асинхроно
ЈКП Инфостан Из batch мода
 Паралелни процеси се активирају Пример :
process или process run наредбом
Begin job j/process/2;
која активира паралелни
асинхрони процес а водећи job иде process run program/1;
на извршавање следеће наредбе. process run program/11;
Пример : run program/2;
Begin job j/process; end job;
process run program/1;  Овде се након run program/1
run program/2; прелази на следећу наредбу а то је
end job; исто process наредба па се и
 У овом примеру се најпре иницира program/11 активира паралелно а
program/1 а паралелно с њим и онда и program/2. Главни Job чека
program/2, ако program/2 заврши да се сви активирани процеси
пре program/1 тада j/process чека
заврше да би отишао на end job.
по аутоматизму да се сви процеси у
оквиру њега заврше да би и он
регуларно завршио.
Из осталих
ЈКП Инфостан програмских језика
 Сви стандардни програмски process compute_1(a) [t1];
језици имају process наредбу ...
која иницира паралелну
...
процедуру позвану том
наредбом. while (t1.status gtr 0) do
waitandreset
algol пример:
(myself.exceptionevent);
Begin end .
task t1;
real a;  Код програмских језика се мора
procedure compute_1(x); вршити контрола на завршетак
асинхроних процеса да би крај
real x; програма био регуларан.
begin
...
...
end;
ЈКП Инфостан На различитим рачунарима

 Програми се могу паралелно извршавати на различитим рачунарима који су


везани преко неке од мрежа: Unisys BNA , Unisys open system interconection ili
Transmission control protocol/Internet protocol. Процеси могу комуницирати преко
port files или преко стандардних датотека употребом hostname атрибута датотеке.
Порт датотеке су уствари меморијске датотеке и служе размени порука међу
програмима и њихову међусобну координацију.
 Паралелни процеси се активирају на другом рачунару преко task атрибута
hostname. Такође је могућа контрола паралелног процеса на другом рачунару
преко његове task променљиве.
Пример:
Begin job j/process/host2;
task t1(hostname=host2);
process run program/1 [t1];
run program/2;
end job;
У овом се примеру program/1 налази на рачунару чије је име host2 и тамо се
и извршава. Job и program/2 се налазе на истом рачунару.
На једном вишепроцесорском
ЈКП Инфостан систему
 Сви паралелни процеси се извршавају на једном систему и број процеса се
прилагођава броју и врсти процесора. Чак и ако рачунар има више I/O
процесора а један централни процесор може се радити паралелно
процесирање програма који имају доста I/O операција. Сваки процес након
завршетка даје извештај - summary о свом раду где се види количина
утрошеног процесорског, реалног и I/O времена па се тако може проверити
ваљаност паралелног процесирања.
 Пример:
Begin job j/process/copy;
process copy file/1 as save/file/1;
process copy file/2 as save/file/2;
process copy file/3 as save/file/3;
end job;
 Пример паралелног процесирања на систему који има три I/O процесора.
Овде се сва три копирања извршавају истовремено а цео JOB се завршава
након краја свих копирања.
Према врсти међусобне
ЈКП Инфостан комуникације процеса
 Преко стандардних датотека algol:
begin
ретко се користи овај начин file porta (kind = port, maxsubfiles = 1,
комуникације међу процесима јер myuse = i/o, myname = "servant.",
постоје специјализоване yourname = master.",yourhost = "host1.");
...
port датотеке за међусобну ...
комуникацију. Познато је да су open(porta);
стандардни I/O врло скупе и споре ....
операције па се због тога овај начин  Из овог примера се види да паралелни процеси
комуницирања не препоручује. могу преко port датотека размењивати
информације, рецимо ако је један од процеса
 преко port датотека дошао до резултата за којим трагају сви
паралелни процеси он им то може пренети
веома елегантан начин за преко port датотеке да би прекинули са
комуникацију било којих па и непотребним радом и трошењем процесорског
паралелних процеса. Један од процеса времена. Међутим и ту има губитка
процесорског времена јер сваки процес мора
обично контролни отвори порт периодично да пита да ли је стигла нека
датотеку преко атрибута subfile одреди порука кроз port датотеку. Не много природан
број процеса који су под контролом. али најекономичнији начин је да водећи
процес сачека успешан исход једног од
Пример algol програма који паралелних процеса а онда прекине рад
комуницирају преко порт датотеке : осталих процеса.
Према врсти међусобне
ЈКП Инфостан комуникације процеса
 Преко host control датотека које су придружене специјализованом host control
хардверу па се за то ретко користи овај начин међупроцесне комуникације
као и преко
 hyper channel датотека које су пак везане за hyper channel хардвер који
повезује Unisys са другим хост рачунарима.
Према синхронизацији
ЈКП Инфостан процеса
 Асинхроно  Синхроно
ако се паралелни процеси преко task променљивих
Ако се процес иницијатор и нови процеси
контролишу од страних инцијатора онда је то
извршавају паралелно тј. иницијатор синхронизовано извршавање. То се обезбеђује кроз
наставља са даљим радом онда је то асинхроно чекање инцијатора да сви паралелни процеси заврше да
извршавање процеса.Постоје наредбе process и би се наставило са даљим обрадама добијаних података
process run у WFL језику за иницирање и датотека.
асинхроних процеса. Пример:
Begin job j/process/hosts;
Пример:
task t1(hostname=host1);
Begin job j/process/async; task t2(hostname=host2);
process run program/1 ; process run program/1 [t1];
process run program/2 ; process run program/2 [t2];
copy file/1 as save/file/1, do wait until ( t1 is completedok and
t2 is completedok);
copy file/2 as save/file/2;
copy file/1 (hostname=host1) as save/file/1,
end job; file/2 (hostname=host2) as save/file/2;
 job j/process/async после program/1 и program/2 end job;
ради copy наредбу једну за другом и ако оне  Контрола успешног завршетка програма program/1 и
заврше пре програма job чека на завршетак program/2 се врши преко do wait наредбе јер се излазне
програма да би регуларно завршио. датотеке file/1 и file/2 тек након успешног завршетка
програма копирају у директоријум save/= са удаљених
рачунара host1 и host2.
Паралелно процесирање
ЈКП Инфостан у Инфостану
СТАЊЕ СИСТЕМА

 Највећа Unisys база података у овом делу Европе


 Тренутно са неколико стотина милиона слогова
 Око пола милиона корисника са 10 услуга у просеку
 Месечно увећање базе за око 3 милиона слогова
 Педесет диск јединица у 15 фамилија дискова
 Пет јединица магнетних трака
 Ласерска штампа преко Windows Print Server
 Формирање података за штампу на Main frame рачунару
 Ограничени системски ресурси
Паралелно процесирање
ЈКП Инфостан у Инфостану
 Формирање задужења, припрема штампе и штампа
уплатница

Begin Job Db/Update/Print;

Run DbUpdate&PrintPrepare(PrintFile1);
Process Copy PrintFile1 from AppDisk(pack) to
PrintServer(Ipaddress=10.1.5.55);
Run DbUpdate&PrintPrepare(PrintFile2);
Process Copy PrintFile2 from AppDisk(pack) to
PrintServer(Ipaddress=10.1.5.55);
Run DbUpdate&PrintPrepare(PrintFile3);
Process Copy PrintFile3 from AppDisk(pack) to
PrintServer(Ipaddress=10.1.5.55);
…..
End Job;
Паралелно процесирање
ЈКП Инфостан у Инфостану
 Database Backup  System Backup
Begin Job Database/Backup; Begin Job System/Backup;

Process Copy AppPrograms/= Process Copy = from Disk1(pack)


from AppDisk(pack) to to Disk1YYMMDD;
AppTapeYyMmDd; Process Copy = from Disk2(pack)
Run Ѕystem/Dmutility to Disk2YYMMDD;
(“Db=InostanDb Copy = to Process Copy = from Disk3(pack)
DbTapeYyMmDd”); to Disk3YYMMDD;
…..
End Job; End Job;
ЈКП Инфостан Закључак
 Рационално коришћење система
 Практична примена зависи од
конкретне конфигурације
 Једнократни напор са дуготрајним
уштедама
Литература
 
 1. A series System Functional Overview
 2. A series System Configuration Guide
 3. A series Work Flow Language
 4. A series Task Management
 5. A series File Attributes
 6. A series ALGOL
 7. A series COBOL
 8. http://www.unisys.com
ЈКП Инфостан

Питања?

You might also like