Jarayonlar



Yüklə 1,24 Mb.
səhifə15/38
tarix16.05.2023
ölçüsü1,24 Mb.
#114382
1   ...   11   12   13   14   15   16   17   18   ...   38
Operatsion tizm Chapter 3 Jarayonlar

Rasm 3.11 Aloqa modellar. (a) Ulashgan xotira. (b) Xabar o'tish.
Yuqorida aytib o'tilgan ikkala model ham operatsion tizimlarda keng tarqalgan, va ko'p tizimlari amalga oshirish ikkalasi ham. Xabar o'tish hisoblanadi foydali uchun kichikroq almashish miqdor ning ma'lumotlar, chunki yo'q ziddiyatlar kerak bo'l oldini oldi. Xabar o'tish taqsimlangan tizimda umumiy xotiraga qaraganda osonroq amalga oshiriladi. (Garchi taqsimlangan umumiy xotirani ta'minlaydigan tizimlar mavjud bo'lsa-da, biz buni qilmaymiz ko'rib chiqing ular ichida bu matn.) Ulashgan xotira mumkin bo'l Tezroq dan xabar o'tish , chunki xabarlarni uzatish tizimlari odatda tizim chaqiruvlari yordamida amalga oshiriladi va shuning uchun yadro aralashuvi ko'proq vaqt talab qiladigan vazifani talab qiladi. In umumiy xotira tizimlari, tizimi qo'ng'iroqlar bor talab qilinadi faqat uchun o'rnatish umumiy xotira hududlari. Umumiy xotira o'rnatilgandan so'ng, barcha kirishlar odatiy xotiraga kirish sifatida ko'rib chiqiladi va yadrodan yordam talab qilinmaydi.
3.5 va 3.6 bo'limlarda biz umumiy xotira va xabar uzatish tizimlarini batafsil ko'rib chiqamiz.

    1. IPC ichida Umumiy xotira Tizimlar


Umumiy xotiradan foydalangan holda jarayonlararo aloqa aloqa jarayonlarini talab qiladi uchun o'rnatish a mintaqa ning birgalikda xotira. Odatda, a umumiy xotira hududi istiqomat qiladi ichida the manzil bo'sh joy ning the jarayon yaratish the umumiy xotira segmenti. Boshqa jarayonlar bu tilak uchun muloqot qilish foydalanish bu umumiy xotira segmenti kerak biriktir bu ularga manzil bo'sh joy. Eslab qoling bu, odatda, the Operatsion tizim bir jarayonning boshqa jarayonning xotirasiga kirishini oldini olishga harakat qiladi. Ulashgan xotira talab qiladi bu ikki yoki Ko'proq jarayonlar rozi uchun ushbu cheklovni olib tashlang. Keyin ular ma'lumotlarni o'qish va yozish orqali ma'lumot almashishlari mumkin ichida the birgalikda hududlar. The shakl ning the ma'lumotlar va the Manzil bor tomonidan belgilanadi bular jarayonlar va bor emas ostida the faoliyat ko'rsatmoqda tizimning boshqaruv. The jarayonlar bir vaqtning o'zida bir xil joyga yozilmasligini ta'minlash uchun ham javobgardir.

Hamkorlik jarayonlari tushunchasini tasvirlash uchun ishlab chiqaruvchini ko'rib chiqamiz - iste'molchi muammo, qaysi hisoblanadi a umumiy paradigma uchun hamkorlik qilish jarayonlar. A ishlab chiqaruvchi jarayon iste'molchi jarayoni tomonidan iste'mol qilinadigan ma'lumotni ishlab chiqaradi . Masalan, kompilyator iste'mol qilinadigan montaj kodini ishlab chiqishi mumkin tomonidan a assembler. The assembler, ichida burilish, mumkin mahsulot ob'ekt yuklovchi tomonidan iste'mol qilinadigan modullar. Ishlab chiqaruvchi - iste'molchi muammosini ham ta'minlaydi a foydali metafora uchun the mijoz - server paradigma. Biz umuman o'ylab ko'ring a server kabi a ishlab chiqaruvchi va a mijoz kabi a iste'molchi. Uchun misol, a veb server ishlab chiqaradi (bu bu, beradi) veb mazmuni shunday kabi HTML fayllar va tasvirlar, qaysiki iste'mol qilingan (bu bu, o'qish) tomonidan the mijoz veb brauzer talab qilish the manba. Ishlab chiqaruvchiga bitta yechim - iste'molchi muammosi umumiy xotiradan foydalanadi. Ishlab chiqaruvchi va iste'molchi jarayonlarining bir vaqtda ishlashiga ruxsat berish uchun bizda ishlab chiqaruvchi tomonidan to'ldirilishi va iste'molchi tomonidan bo'shatilishi mumkin bo'lgan mahsulotlar buferi mavjud bo'lishi kerak. Bu bufer joylashadi tomonidan baham ko'rilgan xotira mintaqasida ishlab chiqaruvchi va iste'molchi jarayonlar. A ishlab chiqaruvchi mumkin mahsulot bitta element esa iste'molchi hisoblanadi iste'mol boshqa element. The ishlab chiqaruvchi va iste'molchi kerak iste'molchi mavjud bo'lgan narsani iste'mol qilishga urinmasligi uchun sinxronlashtiriladi
emas hali bo'lgan ishlab chiqarilgan.
Ikki xil ning buferlar mumkin bo'l ishlatilgan. The cheksiz bufer joylar yo'q bufer hajmining amaliy chegarasi. Iste'molchi yangi mahsulotlarni kutishi mumkin, ammo ishlab chiqaruvchi har doim yangi mahsulotlarni ishlab chiqarishi mumkin. Cheklangan bufer belgilangan bufer hajmini qabul qiladi. Bunday holda, agar bufer bo'sh bo'lsa, iste'molchi, bufer to'lgan bo'lsa, ishlab chiqaruvchi kutishi kerak.
Keling qarang Ko'proq yaqindan da Qanaqasiga the chegaralangan bufer tasvirlaydi umumiy xotiradan foydalangan holda jarayonlararo aloqa. Quyidagi o'zgaruvchilar ishlab chiqaruvchi va iste'molchi jarayonlari tomonidan umumiy xotira hududida joylashgan:
#aniqlash BUFFER SIZE 10

typedef tuzilishi {


. . .
} buyum;

element bufer[BUFFER SIZE]; int ichida = 0;


int tashqariga = 0;
The birgalikda bufer hisoblanadi amalga oshirildi kabi a dumaloq massiv bilan ikki mantiqiy ko'rsatkichlar: in va tashqariga . The o'zgaruvchan ichida ball uchun the Keyingisi ozod pozitsiya ichida the bufer; chiqish nuqtalari uchun the birinchi to'la pozitsiya ichida the bufer. The bufer hisoblanadi bo'sh qachon ichida == chiqib ; the bufer hisoblanadi to'la qachon (( in + 1) % BUFFER SIZE ) == tashqariga .
The kod uchun the ishlab chiqaruvchi jarayon hisoblanadi ko'rsatilgan ichida Rasm 3.12, va the kod uchun iste'molchi jarayon hisoblanadi ko'rsatilgan ichida Rasm 3.13. The ishlab chiqaruvchi jarayon ega a keyingi mahalliy o'zgaruvchi ishlab chiqariladigan yangi buyum saqlanadigan ishlab chiqariladi . Iste'molchi jarayon ega a mahalliy o'zgaruvchan Keyingisi ichida iste'mol qilinadi qaysi the element uchun iste'mol qilinadi, saqlanadi.
Ushbu sxema ko'pi bilan BUFFER O'lchamiga ruxsat beradi − bir vaqtning o‘zida buferda 1 ta element. BUFFER SIZE elementlari bir vaqtning o'zida buferda bo'lishi mumkin bo'lgan yechimni taqdim etish uchun uni mashq sifatida qoldiramiz . 3.7.1-bo'limda biz umumiy xotira uchun POSIX API-ni tasvirlaymiz.

element Keyingisi ishlab chiqarilgan;

esa (to'g'ri) {
/* mahsulot a element ichida Keyingisi ishlab chiqarilgan */

esa (((in + 1) % BUFFER SIZE) == tashqarida)


; /* qil hech narsa */

bufer[in] = keyingi ishlab chiqarilgan; ichida = (in + 1) % BUFFER SIZE;


}




Yüklə 1,24 Mb.

Dostları ilə paylaş:
1   ...   11   12   13   14   15   16   17   18   ...   38




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin