ჩიხი vs შიმშილი
მთავარი განსხვავება ჩიხსა და შიმშილს შორის არის მიზეზ-შედეგობრივი კავშირი მათ შორის; ეს არის ჩიხი, რომელიც იწვევს შიმშილს. კიდევ ერთი საინტერესო განსხვავება ჩიხსა და შიმშილს შორის არის ის, რომ ჩიხი პრობლემაა, ხოლო შიმშილს ზოგჯერ შეუძლია დაეხმაროს ჩიხიდან გამოსვლას. კომპიუტერულ სამყაროში, კომპიუტერული პროგრამის დაწერისას იქნება ერთზე მეტი პროცესი/ძაფი, რომლებიც ერთდროულად იმუშავებენ ერთმანეთის მიყოლებით, რათა შეასრულონ პროგრამისთვის საჭირო სერვისი. ამიტომ, იმისათვის, რომ ჰქონდეს სამართლიანი სისტემა, პროგრამისტმა უნდა უზრუნველყოს, რომ ყველა პროცესი/თემა მიიღებს ან მიიღებს საკმარის წვდომას მათ საჭირო რესურსებზე.თუ არა, იქნება ჩიხი და ეს მოგვიანებით შიმშილამდე მიგვიყვანს. ზოგადად, სამართლიანი სისტემა არ შეიცავს რაიმე ჩიხს ან შიმშილს. ჩიხები და შიმშილი ძირითადად წარმოიქმნება მაშინ, როდესაც ბევრი ძაფი ეჯიბრება შეზღუდული რესურსებისთვის.
რა არის ჩიხი?
ჩიხი არის მდგომარეობა, რომელიც წარმოიქმნება, როდესაც ორი თემა ან პროცესი ერთმანეთს ელიან დავალების დასრულებამდე. ისინი მხოლოდ გათიშავენ, მაგრამ არასოდეს შეწყვეტენ და არ დაასრულებენ თავიანთ დავალებას. კომპიუტერულ მეცნიერებაში ჩიხები ყველგან ჩანს. ტრანზაქციის მონაცემთა ბაზაში, როდესაც ორი პროცესი, თითოეული თავისი ტრანზაქციის ფარგლებში განაახლებს ინფორმაციის იგივე ორ რიგს, მაგრამ საპირისპირო თანმიმდევრობით, გამოიწვევს ჩიხს. პარალელურად პროგრამირებაში შეიძლება მოხდეს ჩიხი, როდესაც ორი კონკურენტი მოქმედება დაელოდება ერთმანეთს წინსვლას. სატელეკომუნიკაციო სისტემებში ჩიხი შეიძლება მოხდეს სიგნალების დაკარგვის ან გაფუჭების გამო.
დღესდღეობით, ჩიხი ერთ-ერთი მთავარი პრობლემაა მულტიპროცესორულ სისტემებში და პარალელურ გამოთვლებში. როგორც გამოსავალი, დაბლოკვის სისტემა, რომელსაც ეწოდება პროცესის სინქრონიზაცია, დანერგილია როგორც პროგრამული უზრუნველყოფის, ასევე აპარატურისთვის.
რა არის შიმშილი?
სამედიცინო მეცნიერების ლექსიკონიდან შიმშილი არის სიცოცხლის შენარჩუნებისთვის საჭირო საკვები ნივთიერებების ძლიერი ან სრული ნაკლებობის შედეგი. ანალოგიურად, კომპიუტერულ მეცნიერებაში შიმშილი არის პრობლემა, რომელიც ჩნდება, როდესაც მრავალი თემა ან პროცესი ელოდება ერთსა და იმავე რესურსს, რასაც ჩიხს უწოდებენ.
იმისთვის, რომ გამოვიდეთ ჩიხიდან, ერთ-ერთმა პროცესმა ან ძაფმა უნდა დათმოს ან უკან დააბრუნოს, რათა მეორე ძაფმა ან პროცესმა შეძლოს რესურსის გამოყენება. თუ ეს განუწყვეტლივ ხდება და ერთი და იგივე პროცესი ან ძაფი ყოველ ჯერზე უნდა დათმოს ან უკან დაბრუნდეს, ხოლო სხვა პროცესებს ან ძაფებს აძლევენ რესურსის გამოყენების უფლებას, მაშინ არჩეული პროცესი ან ძაფი, რომელიც უკან დაბრუნდა, გაივლის სიტუაციას, რომელსაც ეწოდება შიმშილი.მაშასადამე, ჩიხიდან თავის დასაღწევად, შიმშილი ერთ-ერთი გამოსავალია. ამიტომ, ხანდახან შიმშილს ერთგვარ ცხოველს უწოდებენ. როდესაც არის ბევრი მაღალი პრიორიტეტის პროცესი ან თემა, უფრო დაბალი პრიორიტეტის პროცესი ან თემა ყოველთვის შიმშილობს ჩიხში.
შეიძლება იყოს ბევრი შიმშილი, როგორიცაა შიმშილი რესურსებზე და შიმშილი CPU-ზე. ბევრი გავრცელებული მაგალითია შიმშილის შესახებ. ისინი არიან მკითხველ-მწერლების პრობლემა და სასადილო ფილოსოფოსების პრობლემა, რაც უფრო ცნობილია. ხუთი ჩუმი ფილოსოფოსი სხედან მრგვალ მაგიდასთან სპაგეტის თასებით. ჩანგლები მოთავსებულია მეზობელ ფილოსოფოსთა თითოეულ წყვილს შორის. თითოეულმა ფილოსოფოსმა მონაცვლეობით უნდა იფიქროს და ჭამოს. თუმცა, ფილოსოფოსს შეუძლია სპაგეტის ჭამა მხოლოდ მაშინ, როდესაც მას აქვს მარცხენა და მარჯვენა ჩანგალი.
"სასადილო ფილოსოფოსები"
რა განსხვავებაა ჩიხსა და შიმშილს შორის?
პროცესი:
• ჩიხში, ორი თემა ან პროცესი დაელოდება ერთმანეთს და ორივე არ მიდის წინ.
• შიმშილის დროს, როდესაც ორი ან მეტი ძაფები ან პროცესი ელოდება ერთსა და იმავე რესურსს, ერთი დაბრუნდება და სხვებს ნებას დართებს გამოიყენონ ეს რესურსი ჯერ, შემდეგ კი შიმშილის ძაფი ან პროცესი კვლავ შეეცდება. ამიტომ, ყველა თემა ან პროცესი მაინც წინ გაგრძელდება.
გაბრუნება:
• ჩიხში, როგორც მაღალი პრიორიტეტის ძაფები/პროცესები, ასევე დაბალი პრიორიტეტის ძაფები/პროცესები უსასრულოდ დაელოდებიან ერთმანეთს. ის არასოდეს მთავრდება.
• მაგრამ, შიმშილის დროს, დაბალი პრიორიტეტები დაელოდებიან ან უკან დაბრუნდებიან, მაგრამ მაღალი პრიორიტეტები გაგრძელდება.
მოლოდინი ან ჩაკეტვა:
• ჩიხი არის წრიული ლოდინი.
• შიმშილი ერთგვარი სასიკვდილო საშუალებაა და ზოგჯერ ეხმარება ჩიხიდან თავის დაღწევაში.
ჩიხი და შიმშილი:
• ჩიხი იწვევს შიმშილს, მაგრამ შიმშილი არ იწვევს ჩიხს.
მიზეზები:
• ჩიხი წარმოიქმნება ურთიერთგამორიცხვის, შეჩერების და მოლოდინის გამო, პრევენციის ან წრიული ლოდინის გარეშე.
• შიმშილი ხდება რესურსების სიმცირის, რესურსების უკონტროლო მართვისა და პროცესის პრიორიტეტების გამო.
რეზიუმე:
ჩიხი შიმშილის წინააღმდეგ
ჩიხი და შიმშილი არის ზოგიერთი პრობლემა, რომელიც წარმოიქმნება მონაცემთა რბოლების და რბოლის პირობების გამო, რომლებიც წარმოიქმნება პროგრამირების დროს, ასევე აპარატურის დანერგვისას. ჩიხში, ორი ძაფი უსასრულოდ დაელოდება ერთმანეთს შესრულების გარეშე, ხოლო შიმშილის დროს ერთი ძაფი უკან დაბრუნდება და მეორე ძაფს საშუალებას აძლევს გამოიყენოს რესურსები.ჩიხი გამოიწვევს შიმშილს, ხოლო შიმშილი დაეხმარება ძაფს ჩიხიდან გამოსვლაში.