O'zbek

Operatsion tizimlardagi jarayonlarni boshqarishning asosiy tushunchalari, jumladan, jarayon holatlari, rejalashtirish algoritmlari, jarayonlararo aloqa va boshi berk koʻchalarni bartaraf etishni oʻrganing. Dasturchilar va tizim maʼmurlari uchun muhim.

Operatsion tizimlar: Jarayonlarni boshqarish boʻyicha toʻliq qoʻllanma

Jarayonlarni boshqarish har qanday zamonaviy operatsion tizimning asosiy jihatidir. U jarayonlarning bajarilishini boshqarish, resurslarni taqsimlash va silliq koʻp vazifalilikni taʼminlashni oʻz ichiga oladi. Ushbu qoʻllanma jarayonlarni boshqarish tushunchalari, usullari va muammolari haqida batafsil maʼlumot beradi. U talabalar, dasturchilar, tizim maʼmurlari va operatsion tizimlarning qanday ishlashini tushunishga qiziqqan har bir kishi uchun moʻljallangan.

Jarayon nima?

Aslida, jarayon — bu bajarilayotgan dasturning bir nusxasi. Bu shunchaki dastur kodidan koʻproq narsa; u dastur hisoblagichining, registrlarning va oʻzgaruvchilarning joriy qiymatlarini oʻz ichiga oladi. Har bir jarayon oʻz xotira maydoniga ega, bu uning boshqa jarayonlarga bevosita aralashishiga yoʻl qoʻymaydi.

Dasturni retsept, jarayonni esa taomni pishirish harakati deb tasavvur qiling. Siz bir vaqtning oʻzida bir xil dasturni ishga tushiradigan bir nechta jarayonlarga ega boʻlishingiz mumkin (masalan, matn muharririning bir nechta nusxasi), har biri oʻz maʼlumotlari va holatiga ega boʻladi.

Jarayonning asosiy tarkibiy qismlari:

Jarayon holatlari

Jarayon oʻzining hayotiy davri mobaynida turli holatlardan oʻtadi. Ushbu holatlarni tushunish jarayonlarni boshqarishni tushunish uchun juda muhimdir.

Bu holatlar jarayonning hayotiy siklini ifodalaydi va operatsion tizim ular oʻrtasidagi oʻtishlarni boshqarish uchun masʼuldir. Masalan, jarayon diskdan maʼlumot oʻqishi kerak boʻlganda, u Bajarilmoqda holatidan Kutishda holatiga oʻtadi va kiritish-chiqarish amaliyoti tugaguncha kutadi. Soʻngra, u yana ishlash navbatini kutib, Tayyor holatiga qaytadi.

Jarayonni Boshqarish Bloki (JBB)

JBB — bu operatsion tizimga jarayonni boshqarish uchun zarur boʻlgan barcha maʼlumotlarni oʻz ichiga olgan maʼlumotlar strukturasi. Bu jarayonning rezyumesiga oʻxshaydi, unda OT uni kuzatib borish uchun bilishi kerak boʻlgan hamma narsa mavjud.

JBBning odatiy tarkibi:

Jarayonlarni rejalashtirish

Jarayonlarni rejalashtirish — bu tayyor navbatdagi qaysi jarayonga protsessor ajratilishi kerakligini aniqlash faoliyatidir. Rejalashtirishning maqsadi maʼlum mezonlarga muvofiq tizim ish faoliyatini optimallashtirishdir, masalan, protsessor unumdorligini maksimal darajada oshirish, bajarilish vaqtini minimallashtirish yoki jarayonlar oʻrtasida adolatni taʼminlash.

Rejalashtirish navbatlari

Operatsion tizim jarayonlarni boshqarish uchun navbatlardan foydalanadi. Keng tarqalgan navbatlarga quyidagilar kiradi:

Rejalashtiruvchilar

Rejalashtiruvchilar — bu keyingi ishga tushiriladigan jarayonni tanlaydigan tizim dasturiy modullaridir. Rejalashtiruvchilarning ikki asosiy turi mavjud:

Baʼzi tizimlarda multiprogrammalash darajasini kamaytirish uchun jarayonlarni xotiradan (diskka) chiqarib, qayta kiritadigan oʻrta muddatli rejalashtiruvchi ham mavjud. Bu, shuningdek, svoping (swapping) deb ataladi.

Rejalashtirish algoritmlari

Koʻplab rejalashtirish algoritmlari mavjud boʻlib, ularning har biri oʻzining kuchli va zaif tomonlariga ega. Algoritmni tanlash tizimning aniq maqsadlariga bogʻliq. Quyida baʼzi keng tarqalgan algoritmlar keltirilgan:

Misol: Burst vaqtlari (bajarilish vaqtlari) mos ravishda 24, 3 va 3 millisekund boʻlgan P1, P2 va P3 uchta jarayonni koʻrib chiqaylik. Agar ular P1, P2, P3 tartibida kelsa, FCFS rejalashtiruvi P1, soʻngra P2, soʻngra P3 ning ishlashiga olib keladi. Oʻrtacha kutish vaqti (0 + 24 + 27) / 3 = 17 millisekund boʻladi. Biroq, agar biz SJF dan foydalansak, jarayonlar P2, P3, P1 tartibida bajariladi va oʻrtacha kutish vaqti (0 + 3 + 6) / 3 = 3 millisekund boʻladi – bu sezilarli yaxshilanish!

Jarayonlararo aloqa (JPA)

Jarayonlararo aloqa (JPA) jarayonlarga bir-biri bilan aloqa qilish va sinxronlashish imkonini beradi. Bu birgalikda ishlaydigan bir nechta jarayonlardan iborat murakkab ilovalarni yaratish uchun zarurdir.

Keng tarqalgan JPA mexanizmlari:

Misol: Veb-server bir vaqtning oʻzida kiruvchi soʻrovlarni qayta ishlash uchun bir nechta jarayonlardan foydalanishi mumkin. Har bir jarayon bitta soʻrovni qayta ishlashi mumkin va jarayonlar server holati haqidagi maʼlumotlarni almashish uchun umumiy xotira yoki xabar uzatish orqali aloqa qilishi mumkin.

Sinxronizatsiya

Bir nechta jarayonlar umumiy resurslarga kirganda, maʼlumotlarning buzilishi va poyga holatlarini oldini olish uchun sinxronizatsiyani taʼminlash juda muhimdir. Sinxronizatsiya mexanizmlari jarayonlar bajarilishini muvofiqlashtirish va umumiy maʼlumotlarni himoya qilish usullarini taqdim etadi.

Keng tarqalgan sinxronizatsiya usullari:

Misol: Bir nechta jarayonlar tomonidan oshiriladigan umumiy hisoblagichni koʻrib chiqing. Sinxronizatsiyasiz bir nechta jarayon hisoblagich qiymatini oʻqib, uni oshirib, qayta yozishi mumkin, bu esa notoʻgʻri natijalarga olib keladi. Oshirish operatsiyasini himoya qilish uchun myuteks qulfidan foydalanish bir vaqtning oʻzida faqat bitta jarayon hisoblagichga kirishini taʼminlaydi va poyga holatlarining oldini oladi.

Boshi berk koʻcha (Deadlock)

Boshi berk koʻcha ikki yoki undan ortiq jarayonlar cheksiz bloklanib qolganda yuzaga keladi, har biri boshqasi tomonidan ushlab turilgan resursni kutadi. Bu tizimni toʻxtatib qoʻyishi mumkin boʻlgan jiddiy muammodir.

Boshi berk koʻcha yuzaga kelishining shartlari:

Boshi berk koʻcha yuzaga kelishi uchun bir vaqtning oʻzida toʻrtta shart bajarilishi kerak (Koffman shartlari):

Boshi berk koʻchalarni bartaraf etish usullari:

Boshi berk koʻchalarni bartaraf etishning bir necha yondashuvlari mavjud:

Misol: Ikki jarayon, P1 va P2, va ikki resurs, R1 va R2 ni koʻrib chiqing. P1 R1 ni ushlab turibdi va R2 ni kutmoqda, P2 esa R2 ni ushlab turibdi va R1 ni kutmoqda. Bu aylanma kutishni yaratadi va boshi berk koʻchaga olib keladi. Ushbu boshi berk koʻchaning oldini olishning bir usuli — jarayonlardan ishni boshlashdan oldin barcha resurslarni bir vaqtning oʻzida soʻrashni talab qilishdir.

Haqiqiy hayotdan misollar

Jarayonlarni boshqarish tushunchalari butun dunyodagi turli operatsion tizimlarda qoʻllaniladi:

Xulosa

Jarayonlarni boshqarish — bu operatsion tizimlarning koʻp vazifalilik, resurslarni birgalikda ishlatish va tizimdan samarali foydalanishni taʼminlaydigan muhim jihatidir. Ushbu qoʻllanmada muhokama qilingan tushunchalarni tushunish operatsion tizimlar bilan ishlaydigan, ilovalar ishlab chiqadigan yoki tizimlarni boshqaradigan har bir kishi uchun zarurdir. Jarayon holatlari, rejalashtirish algoritmlari, jarayonlararo aloqa va boshi berk koʻchalarni bartaraf etishni oʻzlashtirib, siz yanada mustahkam, samarali va ishonchli dasturiy tizimlarni yaratishingiz mumkin. Turli yondashuvlar oʻrtasidagi murosasani hisobga olishni va oʻzingizning maxsus ehtiyojlaringizga eng mos keladigan usullarni tanlashni unutmang.

Qoʻshimcha oʻrganish uchun

Jarayonlarni boshqarish boʻyicha tushunchangizni chuqurlashtirish uchun quyidagi manbalarni oʻrganishni oʻylab koʻring: