Jarayonlar



Yüklə 1,24 Mb.
səhifə38/38
tarix16.05.2023
ölçüsü1,24 Mb.
#114382
1   ...   30   31   32   33   34   35   36   37   38
Operatsion tizm Chapter 3 Jarayonlar

n = {
The Collatz faraz xavotirlar nima sodir bo'ladi qachon biz olish har qanday musbat butun son n va quyidagi algoritmni qo'llang:


n ∕ 2, agar n hisoblanadi hatto 3 × n + 1, agar n hisoblanadi g'alati

Taxminlarga ko'ra, agar ushbu algoritm doimiy ravishda qo'llanilsa, barchasi ijobiy bo'ladi butun sonlar oxir-oqibat bo'ladi erishish 1. Masalan, agar n = 35 bo'lsa, ketma-ketlik

35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1

Ushbu ketma-ketlikni yaratuvchi fork() tizim chaqiruvi yordamida C dasturini yozing ichida the bola jarayon. The boshlab raqam bo'ladi bo'l dan taqdim etilgan the buyruq chiziq. Uchun misol, agar 8 hisoblanadi o'tdi kabi a parametr ustida buyruq chiziq, the bola jarayon bo'ladi chiqish 8, 4, 2, 1. Chunki ota -ona va bola jarayonlari ma'lumotlarning o'z nusxalariga ega, bola ketma-ketlikni chiqarishi kerak bo'ladi. Ota-onani chaqirishini so'rang Kutmoq() qo'ng'iroq qiling uchun Kutmoq uchun the bola jarayon uchun to'liq oldin dan chiqish dastur. Bajarish zarur xato tekshirish uchun ta'minlash bu a musbat butun son hisoblanadi o'tdi yoqilgan the buyruq chiziq.



    1. 3.21-mashqda bola jarayoni Collatz gipotezasi bilan belgilangan algoritmdan hosil bo'lgan raqamlar ketma-ketligini chiqarishi kerak, chunki the ota-ona va bola bor ularning Shaxsiy nusxalari ning the ma'lumotlar. Ushbu dasturni loyihalashning yana bir yondashuvi ota-ona va bola jarayonlari o'rtasida umumiy xotira ob'ektini o'rnatishdir. Ushbu uslub bolaga ketma-ketlik mazmunini umumiy xotira ob'ektiga yozish imkonini beradi. Bola tugatgandan keyin ota-ona ketma-ketlikni chiqarishi mumkin. Chunki the xotira hisoblanadi umumiy, har qanday o'zgarishlar the bola qiladi ota-ona jarayonida ham o'z aksini topadi.

ta'riflanganidek POSIX umumiy xotirasi yordamida tuziladi ichida Bo'lim 3.7.1. The ota-ona jarayon bo'ladi taraqqiyot orqali quyidagi qadamlar:

      1. Tashkil etish the umumiy xotira ob'ekt ( shm open() , ftruncate() va mmap() ).



      1. Yaratmoq the bola jarayon va Kutmoq uchun bu uchun tugatish.

      2. Chiqish the tarkibi ning birgalikda xotira.

      3. O'chirish the umumiy xotira ob'ekt.

Hamkorlik jarayonlari bilan bog'liq muammolardan biri sinxronizatsiyani o'z ichiga oladi masalalar. In bu mashq qilish, the ota-ona va bola jarayonlar kerak ota-ona bolaga qadar ketma-ketlikni chiqarmasligi uchun muvofiqlashtirilgan bo'lishi kerak tugatadi ijro. Bular ikki jarayonlar bo'ladi bo'l sinxronlashtirilgan wait () tizimi chaqiruvidan foydalanish : ota-ona jarayoni wait() ni chaqiradi , bu bola jarayoni chiqmaguncha uni to'xtatib turadi.

    1. Bo'lim 3.8.1 tasvirlaydi aniq port raqamlar kabi bo'lish yaxshi ma'lum - ya'ni ular standart xizmatlarni taqdim etadilar. Port 17 kunlik kotirovka xizmati sifatida tanilgan . Mijoz serverdagi 17-portga ulanganda, server o'sha kun uchun taklif bilan javob beradi.

O'zgartirish the sana server ko'rsatilgan ichida Rasm 3.27 shunday bu bu yetkazib beradi a joriy sana emas, balki kunning kotirovkasi . Qo'shtirnoq ASCII bosma bo'lishi kerak belgilar va kerak o'z ichiga oladi kamroq dan 512 belgilar, bir nechta qatorga ruxsat berilgan bo'lsa-da. Bu taniqli portlar ajratilganligi sababli va shuning uchun mavjud emas, bor sizning server tingla uchun port 6017. The 3.28-rasmda ko'rsatilgan sana mijozi serveringiz tomonidan qaytarilgan tirnoqlarni o'qish uchun ishlatilishi mumkin.

    1. A hayku hisoblanadi a uch qatorli she'r ichida qaysi the birinchi chiziq o'z ichiga oladi besh bo'g'inlar , ikkinchi chiziq o'z ichiga oladi Yetti bo'g'inlar, va the uchinchi chiziq o'z ichiga oladi besh bo'g'in. 5575 portni tinglaydigan xayku serverini yozing. Mijoz ushbu portga ulanganda server xayku bilan javob beradi. 3.28-rasmda ko'rsatilgan sana mijozi haiku serveringiz tomonidan qaytarilgan tirnoqlarni o'qish uchun ishlatilishi mumkin.

    2. An aks-sado server aks sadolar orqaga nima bo'lsa ham bu oladi dan a mijoz. Uchun Misol uchun, agar mijoz serverga Salom satrini yuborsa U yerda! , server Salom bilan javob beradi U yerda!

3.8.1-bo'limda tasvirlangan Java tarmoq API yordamida echo serverini yozing. Bu server accept() usuli yordamida mijoz ulanishini kutadi . Mijoz ulanishi qabul qilinganda, server quyidagi amallarni bajarib, loop qiladi:

  • O'qing ma'lumotlar dan the rozetka ichiga a bufer.

  • Yozing the tarkibi ning the bufer orqaga uchun the mijoz.

Server faqat aniqlangandan keyingina tsikldan chiqib ketadi mijoz ulanishni yopganligi.
3.27-rasmdagi sana serveri java.io.BufferedReader sinfidan foydalanadi. BufferedReader foydalaniladigan java.io.Reader sinfini kengaytiradi uchun o'qish xarakter oqimlar. Biroq, the aks-sado server kafolat bera olmaydi bu bu bo'ladi o'qing belgilar dan mijozlar; bu mumkin qabul qilish ikkilik ma'lumotlar ham. java.io.InputStream sinfi bayt darajasidagi ma'lumotlar bilan shug'ullanadi aksincha dan the xarakter Daraja. Shunday qilib, sizning aks-sado server kerak foydalanish ob'ekt _ bu uzaytiradi java.io.InputStream . The o'qish() usuli ichida the

java.io.InputStream sinf qaytadi − 1 qachon mijoz ega yopiq uning soket ulanishining oxiri.



    1. Oddiy quvurlar yordamida dastur tuzing, unda bir jarayon ikkinchi jarayonga satrli xabar yuboradi, ikkinchi jarayon esa xabardagi har bir belgining holatini teskari aylantiradi va uni birinchi jarayonga qaytaradi. Misol uchun, agar birinchi jarayon Salom xabarini yuborsa U erda ikkinchi jarayon hI qaytaradi BU YERDA . Buning uchun ikkita quvurdan foydalanish kerak bo'ladi, bitta uchun yuborish the original xabar dan the birinchi uchun the ikkinchi jarayon va the boshqa uchun yuborish the tahrirlangan xabar dan the birinchi jarayondan keyin ikkinchi . Ushbu dasturni UNIX yoki Windows quvurlari yordamida yozishingiz mumkin .

    2. Oddiy fayldan foydalanib filecopy.c nomli fayldan nusxa ko'chirish dasturini loyihalash quvurlar. Bu dastur bo'ladi bo'l o'tdi ikki parametrlar: the nomi ning the faylga bo'l nusxalangan va the nomi ning the maqsad fayl. The dastur bo'ladi keyin yarating a oddiy quvur va yozish the tarkibi ning the fayl uchun bo'l nusxalangan quvurga. Bola jarayoni o'qiydi bu fayl quvurdan va unga yozing the maqsad fayl. Uchun misol, agar biz chaqirish the dastur kabi quyidagicha:

./fayl nusxasi input.txt copy.txt

the fayl input.txt bo'ladi bo'l yozilgan uchun the quvur. The bola jarayon bo'ladi ushbu faylning mazmunini o'qing va uni belgilangan joyga yozing copy.txt fayli . Siz ushbu dasturni UNIX yoki Windows quvurlari yordamida yozishingiz mumkin .



Dasturlash Loyihalar
Yüklə 1,24 Mb.

Dostları ilə paylaş:
1   ...   30   31   32   33   34   35   36   37   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