#46469763 · 14 Dec 2015, 02:45 · · პროფილი · პირადი მიმოწერა · ჩატი
პროცესორს, არ შეუძლია, ერთდროულად რამდენიმე მოქმედების შესრულება. ასრულებს რიგ-რიგობით. ანუ, ჯერ ერთი ბრძანება შესრულდება, რომ დაამთავრებს ამის შესრულებას, მერე გადავა მეორეზე და ა.შ.
ამის გამო, გამოიგონეს ბირთვები - core მეორე ბრძანება რომ არ დაელოდოს პირველის დასრულებას, ერთი წავა ერთ ბირთვში და ამ დროს მეორე წავა მეორე ბირთვში. ანუ, ორივე ერთდროულად, პარალელურ რეჟიმში შესრულდება.
თუმცა არის შემთხვევები, როცა ბრძანების შესრულებას არ სჭირდება მთლიანი ბირთვის რესურსები და ნაწილი რჩება გამოუყენებელი. მაგრამ, ერთ ბირთვს, ორი ბრძანების შესრულება არ შეუძლია. ჯერ ერთი უნდა შესრულდეს და მერე მეორე.
სწორედ ამ რესურსების ასათვისებლად გამოიგონეს thread - ანუ ნაკადები. თუ, ბირთვში მუშავდება რამე ბრძანება, მაგრამ არაა სრულად დატვირთული და კიდევ შეუძლია სხვა ბრძანების დამუშავება, ეს დაუტვირთავი ნაწილი გამოჩნდება როგორც ცალკე "ბირთვი" და ის მეორე ბრძანება წავა ამ დაუტვირთავ ნაწილში. ანუ, ესეც პარალელურად შესრულდება.
ე.ი. thread-ის საშუალებით, ბირთვები სრულად გამოიყენებს მთელ თავის რესურსს. ოღონდ, პროგრამასაც უნდა ჰქონდეს იმის მხარდაჭერა, რომ ბრძანებები გაუშვას სხვადასხვა ბირთვში ცალ-ცალკე და მერე ბირთვებში კიდევ ნაკადებად დაყოს...
This post has been edited by Accident on 14 Dec 2015, 03:01
|