Almashtirish jamoasi.
void Swap (int *a, int *b)
{
int tmp = *a;
*a=*b;
*b=tmp;
}
key
shared int lock=0
int key;
Sinxronizatsiya mexanizmi. 2 ta jarayon bo'lishi kerak:
yuqori ustuvor jarayon
past bilan
2 jarayon ishlashiga ruxsat bering, 1 tizimda paydo bo'ladi, shuning uchun 2 ishlamay qoladi.
2-jarayon tanqidiy qismda, 1 paydo bo'ladi, lekin serverga kira olmaydi. bo'limi, 1 kishi esa protsessorni oldi. -> osilgan
6.1. semafora
60-yillarda semafora ishlatadigan mexanizm taklif qilindi.
6.1.1. semafore ish tushunchasi
semafora - manfiy bo'lmagan qiymatlarni oladigan, uning jarayoniga kirish huquqini oladigan butun o'zgaruvchi, uni boshlash vaqti bundan mustasno, faqat 2 ta atom operatsiyasi orqali amalga oshirilishi mumkin.
P(s) : while (s==0)
s=s-1;
--------------------------
V(s):s=s+1
Jarayonlarning o'zaro ta'sirini tashkil qilish muammolarini hal qilish uchun semafor o'zgaruvchilari qo'llaniladi.
Juda tez-tez, s o'zgaruvchisi OS yadro kodida joylashgan
6.1.2. ishlab chiqaruvchi -> iste'molchilar echimi
Cheklangan o'lchamdagi bufer orqali 2 ta ma'lumot almashishga ruxsat bering.
7. Tupik. Agar sinxronizatsiya vositalari to'g'ri ishlatilmasa, kutilmagan qiyinchiliklar paydo bo'lishi mumkin. Ushbu muammo ma'lumotlar bazalarida paydo bo'lishi mumkin.
Apparat va dasturiy ta'minotning ishdan chiqishi.
Dasturiy ta'minotning muddati.
Agar har bir jarayon to'plamda boshqa jarayonni keltirib chiqarishi mumkin bo'lgan hodisani kutsa, ko'plab jarayonlar bema'ni holatdadir.
Resurs tushunchasi. OTning asosiy funktsiyalaridan biri bu jarayonlarni vaqt o'tishi bilan tarqatishdir. Ba'zi manbalarni (diskni) almashish mumkin (resurslar birgalikda).
manba so'rovi - so'rov
resursdan foydalanish
bepul manba
Agar manba bo'lmasa, jarayon kutishi yoki bloklanishi kerak
7.3 To'satdan blokirovka qilish
1) o'zaro chetlanish sharti
2) manbani kutish sharti. Agar jarayon biron bir manbani olgan bo'lsa, ammo qolganini olmagan bo'lsa, u avval kutilgan resurslarni ushlab turadi.
3) qayta taqsimlash shartlari. Agar resurs jarayoni boshlangan bo'lsa, unda resurs hatto OS tomonidan olib tashlanmaydi.
4) aylana kutish holati. Resursni bosib olgan bir nechta jarayonlar mavjud, ammo ular etishmaydi.
Bu qiyin vaziyat yuzaga kelishi uchun barcha 4 shart bajarilishi kerakligi matematik ravishda aniq ko'rsatib berilgan.
7.4. Daromadlarga qarshi kurashning asosiy yo'nalishlari
1) muammoga e'tibor bermaslik
2) to'siqni aniqlash
3) tupik uchidan tiklash
4) resurslarni ehtiyotkorlik bilan taqsimlash orqali qiyinchiliklarni chetlab o'tish
5) to'siqlarning paydo bo'lishi uchun har qanday shartlarning buzilishi tufayli buzilishlarning oldini olish
7.5. Straus algoritmi
7.6. Qulfni aniqlash
qiyin vaziyat yuzaga kelganligini aniqlash kerak
vaziyatga jalb qilingan jarayonlar va manbalarni aniqlash kerak
manba
jarayon
manba R
jarayon
jarayon A ushlab res. R
manba K
7.7. Tupik chidan tiklash.
Agar tupik uchi aniqlansa
tuzalmoq
orqaga qaytarish, vaziyatni boshi berkigacha tiklash
orqaga qaytish paytida ma'lumotlar qisman yo'qoladi.
Tupikni tiklash qiyinligi:
aksariyat hollarda OS samarali tiklanish mexanizmlariga ega emas
bunday mablag'lar mavjud bo'lsa ham, ular qimmatga tushadi
ma'lumotlar yo'qolishi bilan bog'liq bo'lgan ko'p vaqtni talab qiladi
Resurslarni qayta taqsimlash yordamida tiklash
OT bitta manbani olib tashlash va boshqa jarayonga o'tkazish imkoniyatiga ega bo'lishi kerak.
Orqaga qaytarish orqali tiklash.
Orqaga qaytarish orqali tiklash eng samarali usul deb ishoniladi. Bu nazorat punktiga qaytib, hisoblashni davom ettirish bilan bog'liq. Kerakli nazorat punktlarini tashkil qilish
Tizim jarayonlarini yo'q qilish orqali tiklash
Tupik jarayonning ma'lumotlarini yo'qotish xavfi mavjud
idempotent - bu jarayon translyatsiya bilan bog'liq, uni tupik yaxshidir.
Resurslarni ajratish orqali qiyin vaziyatlarda qanday ishlash kerak
Maqsad: to'siqlar paydo bo'lishining oldini olish, boshqacha qilib aytganda, jarayonni resurs bilan ta'minlaydigan OT ushbu operatsiya xavfsizligiga ishonch hosil qilishi kerak.
Resursni jarayon bilan taqsimlashda har doim ham o'likning ko'rinishini oldindan bilish mumkinmi?
Ha, resurslarni to'g'ri taqsimlash bilan to'siqlar yo'qligini kafolatlaydigan algoritmlar mavjud.
Do'stlaringiz bilan baham: |