ყველამ ვიცით გაკვეთილი „მრავალდავალება = რამდენიმე პროცესის ერთდროულად შესრულების უნარი“. ჩვენ ვიყენებთ მას ჩვენს კომპიუტერებში ისე, რომ არ ვიცოდეთ მისი არსებობის შესახებ. ერთი აპლიკაციის აპლიკაციებსა და ფანჯრებს შორის გადართვა ხდება (ჩვენთვის) რეალურ დროში და ოპერაციული სისტემის ამ შესაძლებლობას მიგვაჩნია.
დავალება განსხვავებულია
ოპერაციული სისტემა ანაწილებს პროცესორს ყველა აპლიკაციას მცირე დროის ინტერვალებით. დროის ეს პერიოდები იმდენად მცირეა, რომ ჩვენ ვერ ვამჩნევთ მათ, ასე რომ, როგორც ჩანს, ყველა აპლიკაცია ერთდროულად იყენებს პროცესორს. შეიძლება ასე ვიფიქროთ multitasking iOS 4-ში მუშაობს ზუსტად იგივე. ასე არ არის. მთავარი მიზეზი რა თქმა უნდა ბატარეის სიმძლავრეა. თუ ყველა აპლიკაცია რეალურად დარჩა გაშვებული ფონზე, ჩვენ ალბათ რამდენიმე საათში უნდა ვეძებოთ სოკეტი.
iOS 4-თან თავსებადი აპლიკაციების უმეტესობა გადადის „შეჩერებულ რეჟიმში“ ან იძინებს „Home“ ღილაკის დაჭერის შემდეგ. ანალოგი შეიძლება იყოს ლეპტოპის სახურავის დახურვა, რომელიც დაუყოვნებლივ გადადის ძილის რეჟიმში. სახურავის გახსნის შემდეგ ლეპტოპი იღვიძებს და ყველაფერი ზუსტად იმავე მდგომარეობაშია, როგორც სახურავის დახურვამდე. გარდა ამისა, არის აპლიკაციები, სადაც მთავარი ღილაკის დაჭერა იწვევს მათ დასრულებას. და ამით ჩვენ ვგულისხმობთ რეალურ შეწყვეტას. დეველოპერებს შეუძლიათ აირჩიონ ამ მეთოდებიდან რომელი გამოიყენონ.
მაგრამ არსებობს აპლიკაციების კიდევ ერთი კატეგორია. ეს ის აპლიკაციებია, რომლებიც რეალურად მუშაობს ფონზე, მიუხედავად იმისა, რომ თქვენ აკეთებთ სრულიად განსხვავებულს თქვენს iDevice-ზე. Skype არის კარგი მაგალითი, რადგან მას სჭირდება მუდმივი ინტერნეტ კავშირი. სხვა მაგალითები შეიძლება იყოს აპლიკაციები, რომლებიც უკრავს ფონურ მუსიკას (პანდორა) ან აპლიკაციები, რომლებიც საჭიროებენ GPS-ის მუდმივ გამოყენებას. დიახ, ეს აპლიკაციები აცლის ბატარეას მაშინაც კი, როცა ფონზე მუშაობს.
ძილი თუ ჩამოგდება?
iOS 4-თან თავსებადი გარკვეული აპლიკაციები, რომლებიც უნდა დაიძინოს (შეჩერებულ რეჟიმში“) მთავარი ღილაკის დაჭერის შემდეგ, განაგრძობს მუშაობას ფონზე. Apple-მა დეველოპერებს მისცა ზუსტად ათი წუთი, რათა აპს დაესრულებინა თავისი დავალება, რაც არ უნდა ყოფილიყო. ვთქვათ, რომ ჩამოტვირთავთ ფაილს GoodReader-ში. უცებ ვიღაცას სურს დაგირეკოს და თქვენ უბრალოდ უნდა დაეთანხმოთ ამ მნიშვნელოვან ზარს. ზარი ათ წუთზე მეტხანს არ გაგრძელდა, თქვენ დაუბრუნდებით GoodReader-ის აპლიკაციას. ფაილი შეიძლება უკვე ჩამოტვირთულია ან ჯერ კიდევ მიმდინარეობს. რა მოხდება, თუ ზარს ათ წუთზე მეტი დრო სჭირდება? აპლიკაციას, ჩვენს შემთხვევაში GoodReader-ს, მოუწევს შეწყვიტოს თავისი აქტივობა და უთხრას iOS-ს, რომ მისი დაძინება შესაძლებელია. თუ ის ამას არ გააკეთებს, ის უმოწყალოდ შეწყვეტს თავად iOS-ს.
ახლა თქვენ იცით, რა განსხვავებაა „მობილურსა“ და „დესკტოპს“ მრავალ დავალებას შორის. მიუხედავად იმისა, რომ სითხე და აპლიკაციებს შორის გადართვის სიჩქარე მნიშვნელოვანია კომპიუტერისთვის, ბატარეის ხანგრძლივობა ყოველთვის ყველაზე მნიშვნელოვანია მობილური მოწყობილობებისთვის. ამ ფაქტთან ადაპტირებული უნდა ყოფილიყო მულტიტასკინგიც. ამიტომ, ამ სტატიის წაკითხვის შემდეგ, თუ ორჯერ დააჭერთ Home ღილაკს, აღარ დაინახავთ „ფონში გაშვებული აპლიკაციების ზოლს“, არამედ არსებითად მხოლოდ „ბოლო დროს გამოყენებული აპლიკაციების სიას“.
ავტორი: დანიელ ჰრუშკაწყარო: onemoretap.com
ჰმ, საინტერესოა :) მე ყოველთვის მეგონა, რომ ეს ყოველთვის იგივე იყო, თუ როგორ შეიძლება ამის გაკეთება Unix-ზე. რომ აპლიკაციას გამოეყო ნულოვანი CPU დრო და პროცესი უბრალოდ ზის მეხსიერებაში, ყველა რესურსი გამოყოფილია. ამიტომ ორჯერ მომიწია სახლის დაჭერა და სასწრაფოდ შემეჩერებინა აპლიკაცია მის წასაშლელად. ნიშნავს თუ არა ეს იმას, რომ თუნდაც აპლიკაციის ხატულა იყოს ქვედა დამალულ ფურცელში, აპლიკაცია ჯერ კიდევ დიდი ხნის წინ დახურულია (10 წუთის შემდეგ)?
ბოლო სიაში არის უბრალოდ ახლახან გახსნილი აპლიკაციები, რომლებშიც ზოგიერთ მათგანს ჯერ კიდევ შეუძლია გაშვება, ზოგი შეჩერებულია და ზოგი მთლიანად შეჩერებულია. აპლიკაციის სიიდან ხელით ამოღებას აქვს „გვერდითი ეფექტი“, რომ თუ ის გაშვებული იქნება (ან შეჩერებულია) ის შეწყდება.
აპლიკაციამ თავად უნდა უთხრას იმ 10 დამატებით წუთს და გარანტირებული არ არის, რომ მიიღებს მათ.
ისე, ამან არ მოიშორა ჩემი აკვიატება სიიდან აპლიკაციის დახურვით (რა მოხდება, თუ შემთხვევით რესურსებს ჭამს, არა? :-D)
მე მესმის, რომ 10 წუთი განკუთვნილია აპებისთვის, რომლებიც უნდა იმუშაონ ფონზე და არ მიეკუთვნებიან "სკაიპის, GPS და მუსიკის დაკვრის" კატეგორიას. სხვა აპლიკაციები გადადიან შეჩერებულ რეჟიმზე და რჩებიან მეხსიერებაში მანამ, სანამ მეხსიერების საჭიროება არ იქნება სხვა ნივთებისთვის.
შეჩერებულ რეჟიმს აქვს ის უპირატესობა, რომ თუ თქვენ გჭირდებათ აპის მოკვლა, არ დაკარგავთ მის მონაცემებს, ყველაფერი შეინახება შეჩერებულზე გადასვლის მომენტში.
ან, მაგ. დაკვრის შემთხვევაში, ბრძანების ექვივალენტი bg/fg
და რაც შეეხება მოთამაშეს ან სხვა აპლიკაციებს, რომლებიც მუშაობენ ფონზე გარკვეული დროის განმავლობაში? ვგულისხმობ, შემიძლია "ავირჩიო" როგორც დეველოპერი, თუ ეს უნდა დაამტკიცოს Apple-მა როგორმე?
იმისათვის, რომ აპლიკაციამ მართლაც შეუზღუდავი დროით იმუშაოს ფონზე, მან უნდა გააკეთოს (დარეგისტრირდეს) ერთ-ერთი შემდეგი ქმედება:
- გამოიყენეთ მდებარეობის სერვისები (GPS)
- დაუკარით მუსიკა ფონზე
- გამოიყენეთ VOIP (ხმა IP-ზე)
სათაურის მიხედვით (შეხედა კაპოტის ქვეშ), ველოდი, რომ სტატია შეიცავდა გარკვეულწილად უფრო ვრცელ განმარტებას ტექნიკური დეტალებით. ეს უფრო სტატიის პერექსს ჰგავს. თუ ეს არის Perex, როდის არის გაგრძელება? შეგიძლიათ თანხის დაბრუნება? :-)
და რისი გაგება გსურთ უფრო დეტალურად?
სტატიიდან, რომელსაც სათაურში აქვს „ქუდის ქვეშ“, ველოდები დეტალურ ტექნიკურ აღწერას (ავტორს შეუძლია გაანალიზოს, მაგალითად, ზედნადები აპლიკაციების გადართვისას, ან როგორ ხდება სისტემის რესურსებზე ერთდროული წვდომა), შედარება სხვა მოდელებთან. (მაგალითად, ჯეილბრეიკული iPhone-ით). იდეალურია მისი სარეზერვო გარკვეული გაზომვებით. უბრალოდ, ბევრად მეტს ველოდი სტატიისგან, რომელსაც სათაურში აქვს „კაპუსის ქვეშ“, ვიდრე ეს ძალიან ზედაპირული აღწერა.
არის რაიმე icq კლიენტი, რომელიც სკაიპის მსგავსად მუდმივად მუშაობს ფონზე და არ წყვეტს კავშირს?
აპლიკაციას აქვს 10 წამი შეჩერების რეჟიმში გადასასვლელად და არა 10 წუთი... და ამ პროცესის დროს ზოგიერთი ნაწილი შეიძლება იყოს ან არ "ჩამოკიდებული" ბექენდის სერვისებზე, რომელთაგან ზოგიერთი უკვე ჩამოთვლილია ზემოთ - აი რასაც Apple უწოდებს "ჭკვიან" "მრავალამოცანა .... შემდეგ სისტემამ ჩამოაგდო იგი
აპლიკაციას შეიძლება დასჭირდეს დამატებითი დრო, თუ მიმდინარეობს რაიმეს ჩამოტვირთვა, ატვირთვა ან დამუშავება. მას არაფერი აქვს საერთო GPS-თან, VoIP-თან ან მუსიკის დაკვრასთან, რომლებიც მინიმალისტურ რეჟიმში მუშაობს შეუზღუდავი დროით.