ასინქრონული ძრავების ტიპები, ტიპები, ძრავების ტიპები. აღგზნებული სინქრონული აპარატის ასინქრონული რეჟიმი

ასინქრონულ (ასევე უწოდებენ არაბლოკირებულ) პრიმიტიულზე წვდომისას პროცესი არ ჩერდება.

ამგვარად, მას შემდეგ, რაც პროცესი გამოიძახებს Send primitive-ს, ოპერაციული სისტემა უბრუნებს პროცესს კონტროლს დაუყოვნებლივ მას შემდეგ, რაც შეტყობინება დადგება გადაცემის რიგში ან შეტყობინების ასლის შექმნის შემდეგ. როდესაც შეტყობინება გადაცემულია ან დაკოპირებულია უსაფრთხო ადგილას შემდგომი გადაცემისთვის, გაგზავნის პროცესი წყდება და ამით ეცნობება, რომ შეტყობინების ბუფერის ხელახლა გამოყენება შესაძლებელია.

თუ შეტყობინების ასლი არ არის შექმნილი, მაშინ გაგზავნის პროცესში შეტანილი ნებისმიერი ცვლილება გაგზავნის პროცესში, მას შემდეგ, რაც Send primitive გამოძახებულია, მაგრამ შეტყობინების გაგზავნამდე, სარისკოა.

ანალოგიურად, ასინქრონული Receive პრიმიტივის წვდომის შემდეგ, პროცესი აგრძელებს მუშაობას. როდესაც შეტყობინება მოდის, პროცესი ინფორმირებულია ამ მოვლენის შესახებ შეწყვეტით ან პერიოდული გამოკითხვით.

ასინქრონული პრიმიტივები საშუალებას აძლევს პროცესებს მიიღონ შეტყობინებების გადაცემის სისტემები ეფექტურად და მოქნილად.

ამ მიდგომის მინუსი ის არის, რომ პროგრამები, რომლებიც იყენებენ ასეთ პრიმიტივებს, რთულია ტესტირება და გამართვა.

მოვლენებმა, რომლებიც დროზეა დამოკიდებული და მათი რეპროდუცირება შეუძლებელია, შეიძლება შექმნას პრობლემები, რომელთა მოგვარებაც რთულია.

ალტერნატივა არის სინქრონული ან, როგორც მათ ასევე უწოდებენ, დაბლოკვის პრიმიტივების გამოყენება.

როდესაც გამოიძახება სინქრონული გაგზავნის პრიმიტივი, კონტროლი არ უბრუნდება გაგზავნის პროცესს შეტყობინების გაგზავნამდე (არასანდო სერვისი) ან შეტყობინების მიწოდების დადასტურების მიღებამდე (სანდო სერვისი).

Receive ბლოკირების პრიმიტივი არ დაბრუნდება მანამ, სანამ შეტყობინება არ იქნება მისთვის გამოყოფილ ბუფერში.

დისტანციური პროცედურის ზარები

დისტანციური პროცედურის ზარი (RPC) არის შეტყობინების გადაცემის ძირითადი მოდელის ვარიანტი.

დღეს, დისტანციური პროცედურების გამოძახება არის გავრცელებული და ფართოდ გამოყენებული მეთოდი განაწილებულ სისტემაში ურთიერთქმედების ჩასახვისთვის. ამ ტექნიკის არსი მდგომარეობს იმაში, რომ დაუშვას პროგრამებს სხვადასხვა მანქანებზე, დაუკავშირდნენ ერთმანეთს პროცედურების უბრალოდ გამოძახებით, თითქოს ისინი მუშაობდნენ იმავე მანქანაზე.

ამრიგად, პროცედურის გამოძახების მექანიზმი გამოიყენება დისტანციური აპარატის მიერ შემოთავაზებულ სერვისებზე წვდომისთვის.

ამ მიდგომის პოპულარობა განპირობებულია შემდეგი უპირატესობებით:

პროცედურული მოწოდებები ჩვეულებრივი და კარგად გააზრებული აბსტრაქციაა.

დისტანციური პროცედურის ზარები საშუალებას გაძლევთ მიუთითოთ დისტანციური ინტერფეისი, როგორც დასახელებული ოპერაციების ნაკრები მითითებული ტიპის ობიექტებზე. ამ გზით, ინტერფეისი შეიძლება იყოს მკაფიოდ და ნათლად დოკუმენტირებული და სტატიკური ტიპის შემოწმება შეიძლება განხორციელდეს განაწილებულ პროგრამაში.

რადგან ინტერფეისი არის სტანდარტიზებული და ზუსტად განსაზღვრული, აპლიკაციის საკომუნიკაციო პროგრამის გენერირება შესაძლებელია ავტომატურად.

რადგან ინტერფეისი სტანდარტიზებულია და ზუსტად არის განსაზღვრული, დეველოპერებს შეუძლიათ დაწერონ კლიენტისა და სერვერის მოდულები, რომლებიც საჭიროებენ პროგრამის წყაროს მხოლოდ მცირე ცვლილებებს სხვა პლატფორმებზე და ოპერაციულ სისტემებზე გადასატანად.

დისტანციური პროცედურის ზარის მექანიზმი შეიძლება ჩაითვალოს მოწინავე სისტემად საიმედო სინქრონული შეტყობინების გაგზავნისთვის.

ზოგადი არქიტექტურა ილუსტრირებულია ნახ. 17.11, b, a ნახ. სურათი 17.13 გვიჩვენებს უფრო დეტალურ დიაგრამას. გამოძახების პროგრამა ასრულებს ნორმალურ პროცედურულ ზარს პარამეტრებით თავის აპარატზე.

მაგალითად: CALL P(X. Y)

აქ ♦ P არის პროცედურის სახელი;

♦ X - მიღებული არგუმენტები;

♦ Y - მნიშვნელობების დაბრუნება. ის, რომ დისტანციური პროცედურის ზარი რეალურად ხდება სხვა მოწყობილობაზე, შეიძლება იყოს ან არ იყოს გამჭვირვალე მომხმარებლისთვის. პროცედურების ეგრეთ წოდებული P, ან stub, უნდა იყოს ჩართული გამოძახების პროცესის მისამართების სივრცეში ან დინამიურად დაკავშირებული იყოს გამოძახების დროს.

Stub ქმნის შეტყობინებას, რომელიც განსაზღვრავს გამოძახებულ პროცედურას და შეიცავს მის პარამეტრებს. შემდეგ ის აგზავნის ამ შეტყობინებას დისტანციურ სისტემაში და ელოდება პასუხს.

როდესაც პასუხი მიიღება, stub უბრუნებს კონტროლს პროგრამას, რომელმაც მას დაურეკა და გადასცემს მას დაბრუნების მნიშვნელობებს. დისტანციურ მანქანაზე, კიდევ ერთი ნაკერი ასოცირდება გამოძახებულ პროცედურასთან.

როდესაც შეტყობინება მოდის, სტუბი იკვლევს მას და მიღებული პროცედურის სახელსა და პარამეტრებზე დაყრდნობით აყალიბებს ჩვეულებრივ ადგილობრივ ზარს CALL P(X, Y).

ანუ, დისტანციური პროცედურა ეწოდება ადგილობრივად, სტანდარტული პარამეტრით, რომელიც გადის სტეკში.

ბრინჯი. 17.13. დისტანციური პროცედურის გამოძახების მექანიზმი

Client-Server Binding Binding გაძლევთ საშუალებას მიუთითოთ კავშირი დისტანციურ პროცედურასა და მის დარეკვის პროგრამას შორის. Binding იქმნება მას შემდეგ, რაც ორმა აპლიკაციამ დაამყარა ლოგიკური კავშირი და მზად არის გაცვალოს ბრძანებები და მონაცემები.

შეკვრა შეიძლება იყოს მუდმივი ან მუდმივი. მუდმივი დაკავშირებით, ლოგიკური კავშირი ორ პროცესს შორის მყარდება მხოლოდ დისტანციური პროცედურის ზარის ხანგრძლივობის განმავლობაში.

როგორც კი დისტანციური პროცედურა დააბრუნებს მნიშვნელობებს, კავშირი იხურება. აქტიური კავშირი მოიხმარს რესურსებს, რადგან ორივე მხარემ უნდა შეინახოს ინფორმაცია მისი მდგომარეობის შესახებ.

დროებითი კავშირების გამოყენება საშუალებას გაძლევთ დაზოგოთ ეს რესურსები. მეორეს მხრივ, კავშირის დამყარება მოითხოვს დროსა და ქსელის ზედნადებს, ამიტომ ეს მიდგომა არ არის შესაფერისი დისტანციური პროცედურებისთვის, რომლებსაც ხშირად უწოდებენ იგივე პროცესს.

მუდმივი შეკვრით, დისტანციური პროცედურის ზარისთვის დამყარებული კავშირი გრძელდება დისტანციური პროცედურის დაბრუნების შემდეგ.

ეს კავშირი შეიძლება გამოყენებულ იქნას დისტანციური პროცედურის შემდგომი ზარებისთვის. თუ კავშირი არ გამოიყენება გარკვეული ინტერვალით, ის წყდება. ეს დიზაინი სასარგებლოა აპლიკაციებისთვის, რომლებიც ახორციელებენ უამრავ დისტანციურ პროცედურულ ზარს.

ამ შემთხვევაში, მუდმივი დაკავშირება იძლევა ზარების განხორციელების საშუალებას და მათი შედეგების მიღებას იმავე ლოგიკური კავშირის საშუალებით.

4.4 სინქრონული და ასინქრონული საკომუნიკაციო სისტემების შედარება

როგორც წესი, მიმღების ან დემოდულატორის მუშაობის განხილვისას, ვარაუდობენ სიგნალის სინქრონიზაციის გარკვეულ დონეს. მაგალითად, თანმიმდევრული ფაზის დემოდულაცია (PSK) ვარაუდობს, რომ მიმღებს შეუძლია გამოიმუშაოს საცნობარო სიგნალები, რომელთა ფაზა იდენტურია (შესაძლოა მუდმივ ოფსეტამდე) გადამცემის სიგნალის ანბანის ელემენტების ფაზასთან. შემდეგ მიღებული სიმბოლოს მნიშვნელობის შესახებ გადაწყვეტილების მიღების პროცესში (მაქსიმალური ალბათობის პრინციპის გამოყენებით) საცნობარო სიგნალები შედარებულია შემომავალთან.

ასეთი საცნობარო სიგნალების გენერირებისას მიმღები უნდა იყოს სინქრონიზებული მიმღებ ოპერატორთან. ეს ნიშნავს, რომ შემომავალი ოპერატორის ფაზა და მისი ასლი მიმღებში უნდა იყოს თანმიმდევრული. სხვა სიტყვებით რომ ვთქვათ, თუ შემომავალ ოპერატორში არ არის კოდირებული ინფორმაცია, შემომავალი გადამზიდავი და მისი ასლი მიმღებში ერთდროულად გაივლიან ნულს. ამ პროცესს ეწოდება ფაზაში ჩაკეტილი მარყუჟი (ეს არის პირობა, რომელიც მაქსიმალურად მჭიდროდ უნდა დაკმაყოფილდეს, თუ გვსურს მიმღებზე თანმიმდევრულად მოდულირებული სიგნალების ზუსტი დემოდულაცია). ფაზაში ჩაკეტილი მარყუჟის შედეგად მიმღების ლოკალური ოსცილატორი სინქრონიზებულია მიღებულ სიგნალთან სიხშირით და ფაზაში. თუ გადამზიდავი სიგნალი პირდაპირ მოდულირებს ქვემატარებელს და არა გადამზიდს, უნდა განისაზღვროს როგორც გადამზიდავი, ასევე ქვემტარი ფაზა. თუ გადამცემი არ ბლოკავს მატარებელს და ქვეგადამზიდს (რაც ჩვეულებრივ ხდება), მიმღებს მოეთხოვება ქვემტარის ასლის გენერირება, ქვემტარის ასლის ფაზური კონტროლის კონტროლის ქვეშ განცალკევებით. ასლის გადამზიდავი. ეს საშუალებას აძლევს მიმღებს მიიღოს ფაზური ჩაკეტვა როგორც გადამზიდავზე, ასევე ქვეგადამზიდზე.

გარდა ამისა, ვარაუდობენ, რომ მიმღებმა ზუსტად იცის, სად იწყება და სად მთავრდება შემომავალი სიმბოლო. ეს ინფორმაცია საჭიროა იმისათვის, რომ იცოდეთ შესაბამისი სიმბოლოს ინტეგრაციის ინტერვალი - ენერგიის ინტეგრაციის ინტერვალი - სიმბოლოს მნიშვნელობასთან დაკავშირებით გადაწყვეტილების მიღებამდე. ცხადია, თუ მიმღები ინტეგრირდება შეუსაბამო სიგრძის ინტერვალზე ან ორ სიმბოლოზე მოცულ ინტერვალზე, ზუსტი გადაწყვეტილების მიღების შესაძლებლობა შემცირდება.

ჩანს, რომ სიმბოლოსა და ფაზის სინქრონიზაციას აქვს საერთო, რომ ორივე მოიცავს მიმღებზე გადაცემული სიგნალის ნაწილის ასლის შექმნას. ფაზური ჩაკეტვისთვის, ეს იქნება მატარებლის ზუსტი ასლი. სიმბოლურისთვის, ეს არის მეანდრი, რომელიც გადადის ნულზე ერთდროულად, სიმბოლოებს შორის შემომავალი სიგნალის გადასვლით. მიმღებს, რომელსაც შეუძლია ამის გაკეთება, ამბობენ, რომ აქვს სიმბოლოების სინქრონიზაცია. იმის გამო, რომ სიმბოლური პერიოდის განმავლობაში ჩვეულებრივ არის ძალიან დიდი რაოდენობის გადამზიდავი პერიოდები, სინქრონიზაციის ეს მეორე დონე ბევრად უფრო უხეშია, ვიდრე ფაზის სინქრონიზაცია და, როგორც წესი, მიიღწევა განსხვავებული მიკროსქემის გამოყენებით, ვიდრე გამოიყენება ფაზის სინქრონიზაციაში.

ბევრი საკომუნიკაციო სისტემა მოითხოვს სინქრონიზაციის კიდევ უფრო მაღალ დონეს, რომელსაც ჩვეულებრივ უწოდებენ ჩარჩოს სინქრონიზაციას. ჩარჩოს სინქრონიზაცია საჭიროა, როდესაც ინფორმაცია მიწოდებულია ბლოკებად, ან სიმბოლოების ფიქსირებული რაოდენობის შემცველი შეტყობინებებით. ეს ხდება, მაგალითად, როდესაც ბლოკის კოდი გამოიყენება შეცდომის წინსვლის სქემის განსახორციელებლად ან როდესაც საკომუნიკაციო არხი დროში გაზიარებულია და გამოიყენება რამდენიმე მომხმარებლის მიერ (TDMA ტექნოლოგია). ბლოკის კოდირებით დეკოდერმა უნდა იცოდეს კოდურ სიტყვებს შორის საზღვრების მდებარეობა, რაც აუცილებელია შეტყობინების სწორი დეკოდირებისთვის. დროის გაყოფის არხის გამოყენებისას, თქვენ უნდა იცოდეთ არხის მომხმარებლებს შორის საზღვრების მდებარეობა, რაც აუცილებელია ინფორმაციის სწორი მიმართულებისთვის. სიმბოლოების სინქრონიზაციის მსგავსად, ჩარჩოს სინქრონიზაცია უდრის კვადრატული ტალღის გენერირების შესაძლებლობას კადრების სიჩქარით ნულოვანი გადასვლებით, რომლებიც ემთხვევა გადასვლებს ერთი ჩარჩოდან მეორეზე.

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

აქამდე დისკუსიის აქცენტი საკომუნიკაციო არხის მიმღები იყო. თუმცა, ზოგჯერ გადამცემი უფრო აქტიურ როლს ასრულებს სინქრონიზაციაში - ის ცვლის მისი გადაცემის დროსა და სიხშირეს, რათა შეესაბამებოდეს მიმღების მოლოდინებს. ამის მაგალითია სატელიტური საკომუნიკაციო ქსელი, სადაც მრავალი მიწის ტერმინალი აგზავნის სიგნალებს ერთ სატელიტურ მიმღებზე. უმეტეს შემთხვევაში, გადამცემი იყენებს მიმღების საპირისპირო საკომუნიკაციო არხს დროის სიზუსტის დასადგენად. ამიტომ, გადამცემის წარმატებული სინქრონიზაცია ხშირად მოითხოვს ორმხრივ კომუნიკაციას ან ქსელს. ამ მიზეზით, გადამცემის სინქრონიზაციას ხშირად უწოდებენ ქსელის სინქრონიზაციას.

არსებობს ღირებულება, რომელიც დაკავშირებულია მიმღების სინქრონიზაციის აუცილებლობასთან. სინქრონიზაციის ყოველი დამატებითი დონე გულისხმობს სისტემის უფრო დიდ ღირებულებას. ყველაზე აშკარა ინვესტიცია არის დამატებითი პროგრამული უზრუნველყოფის ან აპარატურის საჭიროება მიმღებისთვის სინქრონიზაციის შესაძენად და შესანარჩუნებლად. ასევე, და ნაკლებად აშკარაა, ჩვენ ზოგჯერ ვიხდით სინქრონიზაციისთვის დახარჯულ დროს კომუნიკაციის დაწყებამდე, ან ენერგიაში, რომელიც საჭიროა სიგნალების გადასაცემად, რომელიც გამოყენებული იქნება მიმღებში სინქრონიზაციის მისაღებად და შესანარჩუნებლად. ამ ეტაპზე შეიძლება გაინტერესებდეს, რატომ უნდა განიხილოს საკომუნიკაციო სისტემის დიზაინერმა სისტემის დიზაინი, რომელიც მოითხოვს სინქრონიზაციის მაღალ ხარისხს. პასუხი: გაუმჯობესებული შესრულება და მრავალფეროვნება.

განვიხილოთ ტიპიური კომერციული ანალოგური AM რადიო, რომელიც შეიძლება იყოს სამაუწყებლო საკომუნიკაციო სისტემის მნიშვნელოვანი ნაწილი, რომელიც მოიცავს ცენტრალურ გადამცემს და მრავალ მიმღებს. ეს საკომუნიკაციო სისტემა არ არის სინქრონიზებული. ამავდროულად, მიმღების გამტარუნარიანობა უნდა იყოს საკმარისად ფართო, რომ მოიცავდეს არა მხოლოდ საინფორმაციო სიგნალს, არამედ ნებისმიერი გადამზიდველის რყევებს, რომლებიც გამოწვეულია დოპლერის ეფექტით ან გადამცემის საცნობარო სიხშირის დრიფტით. გადამცემის გამტარუნარიანობის ეს მოთხოვნა ნიშნავს, რომ დამატებითი ხმაურის ენერგია მიეწოდება დეტექტორს იმ ენერგიაზე, რომელიც თეორიულად საჭიროა ინფორმაციის გადაცემისთვის. ოდნავ უფრო დახვეწილი მიმღებები, რომლებიც შეიცავს გადამზიდის სიხშირის თვალთვალის სისტემას, შეიძლება შეიცავდეს ვიწრო გამტარ ფილტრს, რომელიც ორიენტირებულია მატარებელზე, რაც მნიშვნელოვნად შეამცირებს ხმაურის ენერგიას და გაზრდის მიღებულ სიგნალ-ხმაურ თანაფარდობას. ამიტომ, მიუხედავად იმისა, რომ ჩვეულებრივი რადიო მიმღებები საკმაოდ შესაფერისია დიდი გადამცემებისგან სიგნალების მისაღებად რამდენიმე ათეული კილომეტრის მანძილზე, ისინი შეიძლება არ იმუშაონ ნაკლებ პირობებში.

ციფრული კომუნიკაციებისთვის, მოდულაციის არჩევისას ხშირად განიხილება კომპრომისები მიმღების შესრულებასა და სირთულეს შორის. უმარტივესი ციფრული მიმღებები მოიცავს მათ, რომლებიც განკუთვნილია ორობითი FSK-ით არათანმიმდევრული ამოცნობით გამოსაყენებლად. ერთადერთი მოთხოვნაა ბიტის სინქრონიზაცია და სიხშირის თვალყურის დევნება. თუმცა, თუ თქვენ აირჩევთ თანმიმდევრულ BPSK სქემას, როგორც მოდულაციას, შეგიძლიათ მიიღოთ იგივე ბიტის შეცდომის ალბათობა, მაგრამ უფრო დაბალი სიგნალი-ხმაურის თანაფარდობით (დაახლოებით 4 დბ). BPSK მოდულაციის მინუსი არის ის, რომ მიმღებს ესაჭიროება ზუსტი ფაზის თვალყურის დევნება, რაც შეიძლება წარმოადგენდეს დიზაინის გამოწვევას, თუ სიგნალებს აქვთ დოპლერის მაღალი სიხშირე ან მიდრეკილნი არიან გაქრობისკენ.

ფასსა და შესრულებას შორის კიდევ ერთი კომპრომისი მოიცავს შეცდომის გამოსწორების კოდირებას. შესრულების მნიშვნელოვანი გაუმჯობესების მიღწევა შესაძლებელია შეცდომის კონტროლის შესაბამისი ტექნიკის გამოყენებით. ამავდროულად, ფასი, რომელიც გამოხატულია მიმღების სირთულეში, შეიძლება იყოს მაღალი. ბლოკის დეკოდერის სწორად მუშაობა მოითხოვს მიმღებს ბლოკის, ჩარჩოს ან შეტყობინების სინქრონიზაციის მიღწევას. ეს პროცედურა ემატება ჩვეულებრივი დეკოდირების პროცედურას, თუმცა არის შეცდომის გამოსწორების გარკვეული კოდები, რომლებსაც აქვთ ჩაშენებული ბლოკის დრო. კონვოლუციური კოდები ასევე საჭიროებს დამატებით სინქრონიზაციას ოპტიმალური შესრულების მისაღებად. მიუხედავად იმისა, რომ კონვოლუციური კოდების შესრულების ანალიზი ხშირად იძლევა ვარაუდს, რომ შეყვანის თანმიმდევრობის სიგრძე უსასრულოა, პრაქტიკაში ეს ასე არ არის. ამიტომ, შეცდომის მინიმალური ალბათობის უზრუნველსაყოფად, დეკოდერმა უნდა იცოდეს საწყისი მდგომარეობა (ჩვეულებრივ ყველა ნული), საიდანაც იწყება ინფორმაციის თანმიმდევრობა, საბოლოო მდგომარეობა და საბოლოო მდგომარეობის მიღწევის დრო. იმის ცოდნა, თუ როდის მთავრდება საწყისი მდგომარეობა და როდის მიიღწევა საბოლოო მდგომარეობა, უდრის ჩარჩოს სინქრონიზაციას. გარდა ამისა, დეკოდერმა უნდა იცოდეს როგორ დააჯგუფოს არხის სიმბოლოები განშტოების გადაწყვეტილების მისაღებად. ეს მოთხოვნა ასევე ეხება სინქრონიზაციას.

ზემოაღნიშნული განხილვა გარიგებების შესახებ გაკეთდა ცალკეული არხების და მიმღებების შესრულებასა და სირთულეს შორის ურთიერთმიმართების თვალსაზრისით. აღსანიშნავია, რომ სინქრონიზაციის შესაძლებლობას ასევე აქვს მნიშვნელოვანი პოტენციური შედეგები, რომლებიც დაკავშირებულია სისტემის ეფექტურობასთან და მრავალფეროვნებასთან. კადრების სინქრონიზაცია საშუალებას იძლევა გამოიყენოს მოწინავე, უნივერსალური მრავალჯერადი წვდომის ტექნიკა, როგორიცაა მოთხოვნაზე დაფუძნებული მრავალჯერადი წვდომის (DAMA) სქემები. გარდა ამისა, გავრცელებული სპექტრის ტექნიკის გამოყენება, როგორც მრავალჯერადი წვდომის, ასევე ჩარევის ჩახშობის სქემები, მოითხოვს სისტემის სინქრონიზაციის მაღალ დონეს. ეს ტექნოლოგიები გვთავაზობენ უაღრესად მრავალმხრივი სისტემების შექმნის შესაძლებლობას, რაც ძალიან მნიშვნელოვანი ფუნქციაა, როდესაც სისტემა იცვლება ან ექვემდებარება განზრახ ან უნებლიე ჩარევას სხვადასხვა გარე წყაროებიდან.


დასკვნა

ჩემი ნაშრომის პირველი ნაწილი აღწერს უსადენო სატელეკომუნიკაციო საკომუნიკაციო სისტემების აგების პრინციპებს: მოცემულია ფიჭური საკომუნიკაციო სისტემის აგების დიაგრამა, მითითებულია ფიჭურ კომუნიკაციებში აბონენტების განცალკევების მეთოდები და კოდების გამოყოფის უპირატესობები (კონფიდენციალობა და ხმაურის იმუნიტეტი). აღინიშნება დროისა და სიხშირის შედარებით, ასევე საერთო უკაბელო სტანდარტები განიხილება DECT, Bluetooth და Wi-Fi კომუნიკაციები (802.11, 802.16).

შემდეგ განიხილება სიგნალების კორელაციური და სპექტრული თვისებები და, მაგალითად, მოცემულია ზოგიერთი სიგნალის სპექტრის გამოთვლები (მართკუთხა პულსი, გაუსის ზარი, გათლილი პულსი) და ციფრულ კომუნიკაციებში გავრცელებული ბარკერის სიგნალებისა და უოლშის ფუნქციების ავტოკორელაციის ფუნქციები. ასევე მითითებულია სატელეკომუნიკაციო სისტემების რთული სიგნალების ტიპები.

მესამე თავში წარმოდგენილია რთული სიგნალების მოდულაციის მეთოდები: ფაზური ცვლის გასაღების მეთოდები, მოდულაცია მინიმალური სიხშირის ცვლით (მოდულაციის ერთ-ერთი მეთოდი უწყვეტი ფაზით), კვადრატული ამპლიტუდის მოდულაცია; და მითითებულია მათი დადებითი და უარყოფითი მხარეები.

ნაშრომის ბოლო ნაწილი შეიცავს შეცდომების ალბათობას M ცნობილი და M მერყევი სიგნალების გარჩევისას ჩარევის ფონზე, აგრეთვე შეცდომების გამოთვლის ალგორითმს ასინქრონულ საკომუნიკაციო სისტემებში უცნობი დროის პოზიციით M ორთოგონალური სიგნალების გარჩევისას. კოდის გაყოფით.


ბიბლიოგრაფია:

1. რატინსკი მ.ვ. ფიჭური კომუნიკაციების საფუძვლები / ედ. D. B. Zimina - M.: რადიო და კომუნიკაციები, 1998. - 248გვ.

2. Sklyar B. ციფრული კომუნიკაცია. თეორიული საფუძვლები და პრაქტიკული გამოყენება, მე-2 გამოცემა: თარგმანი. ინგლისურიდან – M.: Williams Publishing House, 2003. – 1104გვ.

3. შახნოვიჩ ი. თანამედროვე უკაბელო საკომუნიკაციო ტექნოლოგიები. მოსკოვი: ტექნოსფერო, 2004. – 168გვ.

4. ბასკაკოვი ს.ი. რადიოინჟინერიის სქემები და სიგნალები: სახელმძღვანელო. სპეციალური დანიშნულების უნივერსიტეტებისთვის "რადიო ინჟინერია". – მე-3 გამოცემა, შესწორებული. და დამატებითი – მ.: უმაღლესი. სკოლა, 2000. – 462გვ.

5. ხმაურის მსგავსი სიგნალები ინფორმაციის გადაცემის სისტემებში. რედ. პროფ. ვ.ბ. პესტრიაკოვი. მ., „სოვ. რადიო“, 1973. – 424გვ.

6. ვარაკინი ლ.ე. საკომუნიკაციო სისტემები ხმაურის მსგავსი სიგნალებით. – მ.: რადიო და კომუნიკაციები, 1985. – 384გვ.

7. ვიშნევსკი ვ.მ., ლიახოვი ა.ი., პორტნოი ს.ლ., შახნოვიჩ ი.ვ. ფართოზოლოვანი უკაბელო ინფორმაციის გადაცემის ქსელები. მოსკოვი: ტექნოსფერო, 2005. – 592 გვ.

8. Radchenko Yu.S., Radchenko T.A. უცნობი ჩამოსვლის დროით სიგნალების კოდის გამოყოფის ეფექტურობა. მე-5 საერთაშორისო შრომები. კონფ. „რადარი, ნავიგაცია, კომუნიკაციები“ - RLNC-99, ვორონეჟი, 1999, ტ. 507-514 წწ.

9. რადიოსაინჟინრო სისტემები: სახელმძღვანელო. სპეციალური დანიშნულების უნივერსიტეტებისთვის "რადიო ინჟინერია" / Yu.P. გრიშინი, ვ.პ. იპატოვი, იუ.მ. კაზარინოვი და სხვები; რედ. იუ.მ. კაზარინოვა. – მ.: უმაღლესი. სკოლა, 1990. – 469გვ.

ნორმალურ მუშაობაში გენერატორის ლილვზე მოქმედებს ორი მომენტი (ჩვენ გვჯერა, რომ საკისრებში ხახუნით გამოწვეული წინააღმდეგობის მომენტი და გამაგრილებელი საშუალების წინააღმდეგობა შეიძლება უგულებელყოფილი იყოს): ტურბინის ბრუნვის მომენტი მთგენერატორის როტორის ბრუნვა და მისი ბრუნვის დაჩქარების მცდელობა და სინქრონული ელექტრომაგნიტური ბრუნვა ქალბატონო, ეწინააღმდეგება როტორის ბრუნვას. ტურბინის ბრუნვისა და გენერატორის ელექტრომაგნიტური (დამუხრუჭების) ბრუნვის დისბალანსის შემთხვევაში, დარღვევის სიმძიმის მიხედვით, შეიძლება მოხდეს სინქრონული რხევები ან გენერატორის ასინქრონული რეჟიმი.

ასინქრონული რეჟიმი (ასინქრონულირეჟიმი) – გარდამავალი რეჟიმი ენერგოსისტემაში, რომელიც ხასიათდება ენერგოსისტემის გენერატორების ნაწილის ასინქრონული ბრუნვით.

ასინქრონული რეჟიმები შეიძლება მოხდეს შემდეგი მიზეზების გამო:

სტატიკური მდგრადობის დარღვევა ელექტროგადამცემი ხაზების მეშვეობით გადაცემული სიმძლავრის გაზრდის გამო დასაშვებ მნიშვნელობის მიღმა;

დინამიური მდგრადობის დარღვევა ავარიული დარღვევების გამო (მოკლე ჩართვა, გენერირების მოწყობილობების ან სამომხმარებლო ელექტრული დანადგარების გამორთვა);

ელექტროგადამცემი ხაზების და გენერატორების არასინქრონული ჩართვა;

გენერატორის აგზნების დანაკარგები.

უნდა აღინიშნოს, რომ ასინქრონული მუშაობის რეჟიმები არააღგზნებული და აღგზნებული სინქრონული აპარატის მნიშვნელოვნად განსხვავდება ერთმანეთისგან.

1. აღგზნებული სინქრონული მანქანის ასინქრონული რეჟიმი

მაგალითად, განვიხილოთ გენერატორის გადასვლა ასინქრონულ ოპერაციულ რეჟიმზე დინამიური მდგრადობის დარღვევის გამო (იხ. ნახ. 1), როდესაც ხდება მოკლე ჩართვა ელექტროგადამცემი ხაზის გათიშვით.

ამ დამოკიდებულების დამახასიათებელი თვისებაა მკაფიოდ განსაზღვრული მაქსიმუმის და მინიმალურის არსებობა. განსხვავება ასინქრონულ რეჟიმსა და სინქრონულ რხევებს შორის დენის ცვლილებების თვალსაზრისით მდგომარეობს მხოლოდ რხევის ციკლში მაქსიმალური დენის მნიშვნელობის მნიშვნელობაში და ამ რხევების ხანგრძლივობაში. ვინაიდან სინქრონული რხევების დროს კუთხემ თეორიულად შეიძლება მიაღწიოს თავის კრიტიკულ მნიშვნელობას, შეუძლებელია ასინქრონული რეჟიმის სინქრონული რხევებისგან განასხვავება მხოლოდ მიმდინარე მნიშვნელობით. ამრიგად, ALAR მოწყობილობები, რომლებიც ეფუძნება ასინქრონული რეჟიმის იდენტიფიკაციას მიმდინარე რყევებით, კონფიგურირებულია იმისთვის, რომ მუშაობდეს მეორეზე, მესამეზე და ა.შ. ასინქრონული რეჟიმის ციკლი. სხვა სიტყვებით რომ ვთქვათ, შერჩევითი ასინქრონული რეჟიმის აღმოჩენა შესაძლებელია მხოლოდ გრძელვადიანი დენის რყევებით, ამპლიტუდით არანაკლებ მოცემული და პერიოდის არაუმეტეს გამოთვლილზე.

ძაბვის ცვლილებისა და ურთიერთკუთხის დამოკიდებულება ორ ძაბვის ვექტორს შორის ასინქრონულ რეჟიმში

შუალედურ წერტილებში ძაბვის განსაზღვრის გამოხატულება განისაზღვრება კირჩჰოფის მეორე კანონის შესაბამისად შემდეგი ფორმულის გამოყენებით:

კონტროლირებადი წერტილის ფარდობითი მანძილი ძაბვის წერტილიდან ძაბვის წერტილიდან.

ასინქრონულ რეჟიმში სინქრონიდან ამოვარდნილი სინქრონული აპარატის EMF ვექტორი იწყებს ბრუნვას სინქრონულად მოქმედი მანქანების EMF ვექტორთან შედარებით. უნდა აღინიშნოს, რომ ზოგად შემთხვევაში, ვექტორის როტაცია შეიძლება მოხდეს როგორც საათის ისრის მიმართულებით, ასევე საათის ისრის საწინააღმდეგოდ:

საათის საწინააღმდეგოდ აჩქარება

თუ No2 ენერგოსისტემის ვექტორი ბრუნავს საათის ისრის მიმართულებით, მაშინ ეს მიუთითებს, რომ No2 ენერგოსისტემის გენერატორები შეანელე No1 ენერგოსისტემის გენერატორებთან დაკავშირებით.

მაგალითისთვის განვიხილოთ No2 სისტემის ვექტორის ბრუნვა წარმოდგენილ გამოთვლის სქემაში „საათის ისრის მიმართულებით“.

მიღებული გამონათქვამების ანალიზი გვიჩვენებს, რომ იმ მომენტში, როდესაც No1 და სისტემის ძაბვა 180 გრადუსიანი კუთხით განსხვავდება (ასინქრონული ბრუნვა), აქტიური სიმძლავრე ცვლის თავის ნიშანს და რეაქტიული სიმძლავრის მნიშვნელობა აღწევს მას. მაქსიმალური ღირებულება. ასინქრონული ბრუნვის მომენტში სიმძლავრის შეცვლის ეს თვისება გამოიყენება სხვადასხვა მწარმოებლების მიერ ALAR მოწყობილობებში, მიუხედავად ელემენტის ბაზისა (ელექტრომექანიკური ან მიკროპროცესორული მოწყობილობები).

ზოგად შემთხვევაში, ჯამური სიმძლავრის ვექტორის ჰოდოგრაფი (= + Q) გაზომვის ადგილას (ელექტრო რელეს დაყენება) არის ელიფსი (P-ის დამოკიდებულება Q-ზე) კუთხის ცვლილებისას. ასინქრონულ ციკლში დენის ჰოდოგრაფის ცვლილებების თავისებურებები შესაძლებელს ხდის ასინქრონული რეჟიმის დაწყების მომენტის იდენტიფიცირებას, თუ შესაძლებელია მითითებული ჰოდოგრაფის გადასვლის ჩაწერა კუთხის დიაპაზონიდან ~0.<δ<180° в диапазон ~180 0 <δ<360 0 при выполнении дополнительного условия, характеризующего зону δ≈180°.

წინააღმდეგობის ცვლილების დამოკიდებულება ასინქრონულ რეჟიმში

წინააღმდეგობის რელეს ტერმინალებზე წინაღობა განისაზღვრება, როგორც ძაბვის კოეფიციენტი კონტროლირებად წერტილში გაყოფილი დენზე.

ელექტროგადამცემი ხაზის ბოლოებზე ძაბვის მოდულებს შორის ურთიერთობის გათვალისწინებით შედეგად მიღებული გამოხატულება შეიძლება გარდაიქმნას შემდეგ ფორმაში:

მიღებული გამონათქვამის ანალიზი გვიჩვენებს, რომ წინააღმდეგობის ჰოდოგრაფი არის კოორდინატების წარმოშობის მიმართ გადაადგილებული წრე (ელიფსი). ელექტროგადამცემი ხაზის ბოლოებზე ძაბვის მოდულების თანაფარდობიდან გამომდინარე, წინააღმდეგობის ცვლილების მახასიათებელს განსხვავებული ფორმა აქვს.

მაინტერესებს, რომ async მოელის ჩაშენებულ ნაკადის ფუნქციონირებას.

ყველა ამბობს, რომ ასინქრონიზაცია ბევრად უკეთესია შესრულების თვალსაზრისით, რადგან ის ათავისუფლებს ძაფებს, რომლებიც ელოდება პასუხს გრძელ ასინქრონულ ზარზე. კარგი მივხვდი.

მაგრამ განიხილეთ ეს სცენარი.

მე მაქვს async methodA, რომელიც ასრულებს ასინქრონიზაციის ოპერაციას მონაცემთა ბაზაში. მონაცემთა ბაზის API უზრუნველყოფს BeginQuery ფუნქციას და QueryCompleted მოვლენას. მე შევფუთე ისინი ამოცანაში (TaskCompletionSource-ის გამოყენებით).

ჩემი შეკითხვა არის რა ხდება ქუდის ქვეშ BeginQuery ზარსა და QueryCompleted გასროლას შორის.

ვგულისხმობ - არ იქნება საჭირო რაიმე სახის მუშის შექმნა ამ მოვლენის გასათავისუფლებლად? ძალიან დაბალ დონეზე უნდა იყოს გარკვეული სინქრონული მარყუჟი, რომელიც ბლოკავს ძაფების წაკითხვის შედეგებს db-დან.

მე მჯერა, რომ ნებისმიერმა ასინქრონულმა ზარმა უნდა შექმნას თემა, რომ რეალურად დაამუშავოს პასუხი (შესაძლოა დაველოდოთ მას დაბალი დონის C++ მარყუჟში მძღოლის კოდში).

ასე რომ, ჩვენი ერთადერთი "გამარჯვება" არის ის, რომ გამოძახების თემა შეიძლება განთავისუფლდეს მაშინ, როდესაც ზოგიერთი სხვა თემა თავის საქმეს აკეთებს.

ასინქრონული მეთოდის გამოძახება ყოველთვის ქმნის ახალ სამუშაო თემას?

ვინმეს შეუძლია დაადასტუროს ჩემი გაგება?

4 პასუხი

ყველა ამბობს, რომ ასინქრონიზაცია ბევრად უკეთესია შესრულების თვალსაზრისით, რადგან ის ათავისუფლებს ძაფებს, რომლებიც ელოდება პასუხს გრძელვადიან ასინქრონულ ზარზე.

Კი და არა. ასინქრონიზაციის მიღმა არის გამოძახების თემის გათავისუფლება. ინტერფეისის აპლიკაციებში, ასინქრონიზაციის მთავარი უპირატესობა არის რეაგირება, რადგან UI თემა გათავისუფლებულია. სერვერის აპლიკაციებში, ასინქრონიზაციის მთავარი უპირატესობა არის მასშტაბურობა, რადგან მოთხოვნის თემა თავისუფლდება სხვა მოთხოვნების დასამუშავებლად.

ასე რომ, ჩვენი ერთადერთი "გამარჯვება" არის ის, რომ აბონენტის ძაფი შეიძლება განთავისუფლდეს მაშინ, როდესაც სხვა ძაფი ასრულებს თავის საქმეს. ყოველთვის იძახებს ასინქრონულ მეთოდს ახალი მუშა თემის შესაქმნელად?

არა. OS დონეზე, ყველა I/O ოპერაცია ასინქრონულია. ეს არის სინქრონული API-ები, რომლებიც ბლოკავს ძაფს, ხოლო ფუძემდებლური ასინქრონული I/O შესრულებულია. ამას წინათ დავწერე ბლოგ პოსტში: .

ის შექმნის I/O დასრულების პორტს (IOCP), რომელიც წარმოადგენს ამოცანას, რომელიც მუშავდება გარედან და თემა გაგრძელდება სხვა ნივთებით. შემდეგ, როდესაც IOCP შეატყობინებს, რომ დავალება დასრულდა, თემა დამოკიდებული იქნება IOCP მდგომარეობაზე და გააგრძელებს დავალების შესრულებას.

I/O პორტები ელეგანტურ გადაწყვეტას იძლევა მასშტაბირებადი სერვერის აპლიკაციების დაწერის პრობლემისთვის, რომლებიც იყენებენ მრავალძალიან და ასინქრონულ I/O-ს.

ვგულისხმობ - არ არის საჭირო ღონისძიებისთვის რაიმე სახის მუშაკის შექმნა? ძალიან დაბალ დონეზე უნდა არსებობდეს გარკვეული სინქრონული მარყუჟი, რომელიც ბლოკავს დბ-დან ძაფის წაკითხვის შედეგს.

მაშინაც კი, როცა რეალურად გჭირდებათ ბირთვის ობიექტის მოლოდინი (როგორიცაა ხელით გადატვირთვის ღონისძიება), მაინც შეგიძლიათ სინქრონული კოდის დაბლოკვა ასინქრონულად აქციოთ და გაათავისუფლოთ თემა დაბლოკვისგან (განახლებულია: რეალური სცენარი).

მაგალითად, სინქრონული კოდი:

Void Consume() ( var completeMre = new ManualResetEvent(false); producer.StartOperation(completedMre); completeMre.WaitOne(); // ბლოკირება მოლოდინი Console.WriteLine(producer.DequeueResult());)

ასინქრონული ანალოგი:

Async Task ConsumeAsync() ( var completeMre = new ManualResetEvent(false); producer.StartOperation(completedMre); var tcs = new TaskCompletionSource (); ThreadPool.RegisterWaitForSingleObject(completedMre, (s, t) => tcs.SetResult(producer.DequeueResult()), null, Timeout.Infinite, true); var შედეგი = დაველოდოთ tcs.Task; Console.WriteLine(შედეგი); )

ასინქრონული ვერსია მასშტაბებს 64-ჯერ აღემატება (MAXIMUM_WAIT_OBJECTS), რაც წარმოადგენს ბირთვის ობიექტების მაქსიმალურ რაოდენობას, რომლებიც შეიძლება შეგროვდეს RegisterWaitForSingleObject, რათა დაელოდო ერთ თემას. ასე რომ თქვენ შეგიძლიათ დარეკოთ Consume() 64-ჯერ პარალელურად და ის დაბლოკავს 64 თემას. ან შეგიძლიათ დაურეკოთ ConsumeAsync-ს 64-ჯერ და დაბლოკოთ მხოლოდ ერთი თემა.



გაქვთ შეკითხვები?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: