Туйрук жана Ачкачылык
Туюктук менен ачарчылыктын негизги айырмасы – алардын ортосундагы себеп-натыйжа байланышы; ачарчылыкка алып келүүчү туюк. Туюктук менен ачарчылыктын дагы бир кызыктуу айырмасы, ачарчылык кээде туюктан чыгууга жардам берет, ал эми туюк көйгөй болуп саналат. Компьютер дүйнөсүндө, компьютердик программаны жазып жатканда, программага талап кылынган кызматты аткаруу үчүн биринин артынан бири иштей турган бирден ашык процесс/жип болот. Ошондуктан, адилеттүү системага ээ болуу үчүн, программист бардык процесстер/жиптер алар керек болгон ресурстарга жетүү мүмкүнчүлүгүн алышы керек. Антпесе туңгуюк болот, кийин ачкачылыкка алып келет. Жалпысынан алганда, адилеттүү система эч кандай туюк же ачарчылыкты камтыбайт. Көптөгөн жиптер чектелген ресурстар үчүн атаандашкан учурда туюктар жана ачарчылыктар болот.
Туюк деген эмне?
Туюктук – бул эки жип же процесс бири-бирин тапшырманы аткарууну күткөндө пайда болгон шарт. Алар трубканы коет, бирок эч качан токтобойт же өз ишин бүтүрбөйт. Информатикада туюктарды бардык жерден көрүүгө болот. Транзакциялар базасында, ар бири өзүнүн транзакциясынын ичинде эки процесс бир эле эки маалымат саптарын жаңыртканда, бирок карама-каршы тартипте, туюк абалга алып келет. Кошумча программалоодо, эки атаандаш аракет бири-бирин күтө турганда туюк пайда болушу мүмкүн. Телекоммуникация тутумдарында сигналдардын жоголушу же бузулушу себептүү туюк пайда болушу мүмкүн.
Учурда туюк көп процесстер системаларынын жана параллелдүү эсептөөлөрдүн негизги көйгөйлөрүнүн бири болуп саналат. Чечим катары программалык камсыздоо жана аппараттык камсыздоо үчүн процесс синхрондоштуруу деп аталган кулпулоо системасы ишке ашырылат.
Ачкачылык деген эмне?
Медицина илиминин сөздүгүнөн ачкачылык жашоону камсыз кылуу үчүн зарыл болгон азык заттардын катуу же толук жетишсиздигинин натыйжасы. Ошо сыяктуу эле, информатикада ачарчылык бир нече жиптер же процесстер бир эле ресурсту күткөндө пайда болгон көйгөй болуп саналат, ал туюк деп аталат.
Туюктан чыгуу үчүн процесстердин же жиптердин бири баш тартуусу же артка жылдырылышы керек, ошондо башка жип же процесс ресурсту колдоно алат. Эгерде бул тынымсыз кайталана берсе жана башка процесстерге же жиптерге ресурсту колдонууга уруксат берип жатып, ошол эле процесс же жип ар бир жолу баш тартууга же артка жылдырууга туура келсе, анда тандалган процесс же жип артка жылдырылган ачкачылык деп аталган кырдаалга туш болот. Демек, туюктан чыгуу үчүн ачкачылык – чечүүчү жолдордун бири. Ошондуктан, кээде ачкачылыкты бир түрлүү мал деп аташат. Жогорку артыкчылыктуу процесстер же жиптер көп болгондо, төмөнкү артыкчылыктуу процесс же жип ар дайым туюкта калат.
Ресурстарга же CPUга ачка болуу сыяктуу көптөгөн ачарчылыктар болушу мүмкүн. Ачкачылык боюнча көп мисалдар бар. Алар Окурман-жазуучулар проблемасы жана ашкере философтордун көйгөйү, бул дагы белгилүү. Спагетти идиштери менен тегерек столдо беш унчукпаган философ отурат. Айрылар ар бир жуптун ортосунда жайгашкан философтор. Ар бир философ кезектешип ойлонуп, тамактанышы керек. Бирок, философ спагеттиди сол жана оң айрылары болгондо гана жей алат.
«Тамактануучу философтор»
Туюктук менен ачкачылыктын ортосунда кандай айырма бар?
Процесс:
• Туюк болгондо, эки жип же процесс бири-бирин күтүп, экөө тең алдыга жылбайт.
• Ачкачылыкта, эки же андан көп жип же процесс бир эле ресурсту күткөндө, бири артка жылып, башкаларга ресурсту колдонууга уруксат берет, андан кийин ачкачылык жип же процесс кайра аракет кылат. Демек, бардык жиптер же процесстер баары бир алдыга жылат.
Артка айлануу:
• Туюк абалда, жогорку артыкчылыктуу жиптер/процесстер, ошондой эле төмөнкү артыкчылыктуу жиптер/процесстер бири-бирин чексиз күтүшөт. Бул эч качан бүтпөйт.
• Бирок, ачкачылыкта, төмөнкү артыкчылыктуулар күтүшөт же артка кайтышат, бирок жогорку артыкчылыктары уланат.
Күтүү же кулпу:
• Туюктук - бул тегерек күтүү.
• Ачкачылык – бул тирүүлүктүн бир түрү жана кээде туюктан чыгууга жардам берет.
Туюк жана ачарчылык:
• Туюктук ачарчылыкка алып келет, бирок ачарчылык туюкка алып келбейт.
Себептери:
• Бири-бирин четтетүү, кармап туруу жана күтүү, алдын ала алуу же тегерек күтүүлөрдөн улам туюк пайда болот.
• Ачкачылык ресурстардын жетишсиздигинен, ресурстарды көзөмөлсүз башкаруудан жана процесстин артыкчылыктарынан улам келип чыгат.
Корытынды:
Туйрук жана Ачкачылык
Туюктук жана ачарчылык - программалоодо, ошондой эле жабдыктарды ишке ашырууда пайда болгон маалымат жарыштарынан жана жарыш шарттарынан улам келип чыккан көйгөйлөрдүн айрымдары. Туюк абалда эки жип бири-бирин чексиз күтөт, ал эми ачкачылыкта бир жип артка жылып, экинчи жип ресурстарды колдонууга мүмкүнчүлүк берет. Туюктук ачарчылыкка алып келет, ал эми ачарчылык жипти туюктан чыгарууга жардам берет.