Kalit so’zlar: Jarayon, avlod jarayon, ajdod jarayon, jarayonlar daraxti. Jarayon


Download 43.98 Kb.
Sana20.06.2020
Hajmi43.98 Kb.
#120491
Bog'liq
Windowsda jarayonlar


Mavzu: Windowsda jarayonlar

Reja:

1. Jaroyon tushunchasi

2. Avlod jarayonlarni hosil bo’lishi

3. Dastur oynasini boshqarish



Kalit so’zlar: Jarayon, avlod jarayon, ajdod jarayon, jarayonlar daraxti.

Jarayon-bu dasturning bajarilishidir. Ishlash vaqtida boshqa dasturlarni chaqirmaydigan dastur bu yagona jarayon deganidir. U o’zining manzillar sohasi, virtual xotirasi, bajariluvchi kodi va ma’lumotlari bilan xarakterlanadi.

Ba’zi hollarda bir dastur orqali boshqa dasturlarni ishga tushirishga to’g’ri keladi. Bu ishga tushiriladigan dasturlar standart arxivatorlar, kalkulayotorlar, matnli va grafik muharrirlar bo’lishi mumkin.



Bir dastur tarkibida boshqa dasturni ishga tushirilishi avlod jarayonni hosil qiladi.



Jarayonlar daraxti
Ko’pgina hollarda kompyuter yoki kompyuter tarmog’ida bir vatqda bir nechta ilova(jarayon)lar ishga tushirish va ular o’rtasida ma’lumot almashinuvini tashkillashtirish kerak bo’ladi. Bu narsa boshqa bir iloavni ilovalar orqali boshqarishni talab qiladi.

Ilovalar o’rtasidagi ma’lumot almashinuvini turli xil texnologiyalar orqali qo’llab-quvvatlash mumkin: OLE,DDE, COM, Windowsda xabarlar almashinish mexanizmi.



execlp funksiyasi orqali tashqi dasturni ishga tushirish

execlp funksiyasi o’zining ilovasidan boshqaruvni ko’rsatilgan boshqa istalgan ilovaga uzatadi. Shu tariqa ajdod jarayon ishi tugatiladi va yangisi boshlanadi.

execlp funksiyasi process.h faylida quyidagicha tavsiflangan:



int execlp(char *path,char *arg0,*arg1,..,*argn,NULL)

Bunda path parametri ishga tushirilishi lozim bo’lgan dasturning nomi va yo’lini tavsiflaydi. Agar pathda fayl nomi kengaytmasi va yo’li bilan birgalikda berilsa,u holda funksiya aynan shu faylni izlaydi. Agar fayl kengaytmasi berilmasa berilganga o’xshash fayl qidiriladi. Agar u fayl topilmasa fayl nomiga kengaytma sifatida .exe qo’shiladi va qidirish takrorlanadi. Agar faylning joylashgan o’rni berilmagan bo’lsa, u holda fayl dastur joylashgan katologdan qidiriladi. Bunda ham fayl topilmasa PATH o’zgaruvchilar fazosidan qidiriladi.

Funksiyaning arg0…argn argumentlari ishga tushadigan dasturning buyruqlar satri orqali yuborilgan parametrlari hisoblanadi. Funksiya hech bo’lmaganda bitta arg0 parametrga qiymat yuborish orqali dasturni ishga tushirishi lozim. Kelishuvga ko’ra bu argument pathning nusxasi bo’ladi. Boshqa argumentlar, agar talab qilinsa yuklanadigan dasturga qo’shimcha informatsiyalarni jo’natadi. Agar u bir nechta so’zdan iborat bo’lsa, masalan, bir nechta xususiyatdan iborat bo’lsa, u holda ularni alohida parametr sifatida uzatish mumkin. Shuningdek, ularning barchasini arg1 ga birlashtirish ham mumkin.

execlp funksiyasining oxirgi argumenti NULL argumentlar ro’yxatini tugaganligini bildiradi.

Agar yangi ilova muvaffaqiyatli yuklansa execlp funksiyasi 0 qiymat qaytaradi, aks holda -1 qiymat qaytaradi.

execlp funksiyasidan foyadalanishga misol(Windowsning standart kalkulaytorini ishga tushiradi):

if(execlp("calc.exe","calc.exe",NULL))

ShowMessage("calc.exe dastur ishga tushmadi");

execlp funksiyasini tadbiq qilish sferasi:

1. Qandaydir ilovani yuklanishidan oldin uning kiruvchi interfeysini yaratishda.

2. Xotirada bo’laklarga bo’lingan holda qayta yuklanuvchi ilovani ishga tushirish.

execlp funksiyasi orqali ishga tushirilgan yangi ilova tezkor xotirada uni chaqiruvchi ilovaning joyiga o’rnashadi. Shundan kelib chiqqan holda aytish mumkinki, bunda xotiradan foydalanish hajmi oshmaydi.

WinExec_funksiyasi_orqali_tashqi_dasturni_ishga_tushirish___WinExec'>WinExec funksiyasi orqali tashqi dasturni ishga tushirish

WinExec funksiyasi yuklanadigan ilovaning oynasini boshqarish imkonini beradi. Bu funksiya Windowsning istalgan versiyasida va istalgan fayl uchun ishlaydi: Windows ilovalari, MS-DOS, PIF fayllar va boshqalar.

WinExec funksiyasi quyidagicha tavsiflanadi:

int WinExec(const char *CmdLine,unsigned int CmdShow);

CmdLine parametri NULL simvol bilan tugaydigan, ishga tushirilishi lozim bo’lgan ilovaning nomini tavsiflashda qo’llaniladi. Agar faylning yo’li ko’rsatilmagan bo’lsa, u holda Windows faylni katologlarda quyidagi ketma-ketliklarda izlaydi:

1. Ilova o’zi yuklanadigan katologdan.

2.Joriy katologdan.

3. GetSystemDirectory funksiyasi beradigan windowsning tizimli katologidan.

4. GetWindowsDirectory funksiyasi beradigan windows katologidan.

5. O’zgaruvchilar fazosidagi katologlar ro’yxatidan.

CmdShow parametri Windowsda yuklanadigan ilova oynasinig tasvirlanish shaklini beradi. Ko’pchlik hollarda bu parametr qiymati sifatida SW_RESTORE ishlatiladi. Bu qiymat yuklanadigan oynaning aktivlashtirilishi va ekranda tasvirlanishi uchun qo’llaniladi.

WinExec funksiyasi orqali muvaffaqiyatli ravishda yuklangan ilovalar uchun bu funksiya 31 dan katta qiymat qaytaradi. Muvaffaqiuyatsizlikka uchraganda esa quyidagi qiymatlardan birini qaytaradi:



Qiymat

Tartib raqam

Tavsifi

0

0

Tizimda xotira yoki resurs yetishmovchiligi sodir bo’ldi

ERROR_BAD_FORMAT

11

.exe xato fayl

ERROR_FILE_NOT_FOUND

2

Ko’rsatilgan fayl topilmadi

ERROR_PATH_NOT_FOUND

3

Ko’rsatilgan katolog topilmadi

Qo’llanilishiga misol:



int i=WinExec(Edit1->Text.c_str(),SW_RESTORE);

if(i<32)

ShowMessage("Xato kodi: "+IntToStr(i));

Yuqoridagi misolda foydalanuvchi Edit tahrirlash oynasi orqali kiritgan dasturni bajaradigan va xato sodir bo’lsa mos javobni beradigan dastur kodi keltirilgan.



spawnlp funksiyasi orqali tashqi dasturni ishga tushirish

spawnlp funksiyasi ham tashqi ilovani o’zi dastlab yopilishi orqali ishga tushuaradi. execlp funksiyasidan farqli ravishda bu funkisya ko’plab imlkoniyatlarga ega.

Bu funksiyani dasturda qo’llash uchun process.h va stdio.h sarlavha fayllari dasturda ko’rsatilishi kerak.

Funksiyaning umumiy tavsifi quiydagicha:

int spawnlp(int mode, char *path, char *arg0,arg1,…argn,NULL);

Mazkur funksiya execpl funksiyasida birgina mode parametri bilan farq qiladi. Ko’pgina hollarda mazkur parametr quyidagi qiymatlarni qabul qiladi:



P_WAIT

Ajdod ilova chaqirilgan jarayonni tugashini kutadi va tugagach ishini davom ettiradi.

P_NOWAIT

Ajdod ilova chaqirilgan jarayon ishini tugashini kutmaydi, balki psevdoparallel ravishda ishlaydi.

P_DETACH

Chaqirilgan ilova fon rejimida ishlaydi va klavitura va displeyga murojaat qilish imkoniga ega bo’lmaydi.

P_OVERLAY

Chaqirilgan ilova xotirada chaqiruvchi dastur joyiga joyalashadi.

Download 43.98 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling