Multitasking, osdev уики, задвижвани от общността на феновете на Wikia

Multitasking - способността на операционната система (или софтуер околната среда) в подкрепа на едновременното изпълнение на съвместни и взаимодействие на множество задачи (програми, нишки на изпълнение) с един на друг и на околната среда.







Ако системата може да изпълнява само задачи последователно от следващата само след приключване на тока, а след това системата се нарича единична задачи едновременно. Първите системи са били такива.

Преходен линк към мултитаскинг OS е операционна система за обработка на партидите: еднократна задачи както в интерес на истината, такава система не работи с едно заявление и пакет поток, който последователно процеси (работещи функции или програми).

Директно на същото многозадачна трябва да се каже, когато околната среда гарантира, че системата в същото време множество нишки на изпълнение.

Идеалният случай е паралелна многозадачна многозадачна където всяка задача се изпълнява в своята хардуер микропроцесор ядро ​​всъщност едновременно един с друг. Тази опция се дори реализира, например в Propeller микроконтролер от Parallax (осигурява работа веднага 8 проблеми), но обикновено използването на отделен хардуер за всяка задача е твърде разточително, следователно се отнася за обработка на псевдо няколко неща, когато микропроцесорът ресурси последователно прехвърляни между задачи, които дават илюзията за едновременност, или и псевдо паралелен набор от многозадачност с няколко ядра.

Има два основни вида псевдо многозадачна:

  • не-превантивен - изискваща изрично прехвърляне на контрола между задачите в определени точки по своя собствена инициатива;
  • разместване - при което превключване между задачите се извършва косвено чрез диспечера на задачите на произволно време.

Nevytyasnyayuschaya многозадачност като най-примитивните, първо е създаден, и разполага със dostinstva и недостатъци:

  • + много лесно да се приложат;
  • + и предсказуема в поведение, което елиминира много опасни ситуации, като в надпреварата за използването на споделени ресурси;
  • + Тя налага минимални системни изисквания и прекарва минимум ресурси (може би дори използването на няколко задачи на стека);
  • - Тя изисква специален стил на писане на програми, което го прави трудно както за развитието на нови и адаптиране на съществуващи такива;
  • - възпрепятства бърз отговор на външни събития;
  • - практически е невъзможно да се защити задачи от друг, което значително намалява надеждността на системата - обикновено един не работи правилно проблемът е лесно запълва всички останали (блокове или възпрепятства тяхната работа).

От друга страна има изместване на дадена задача. В него организацията на взаимодействие между изцяло в правомощията софтуерната среда (а именно, диспечера на задачите), което позволява на множество задачи по едно и също време, за да работят в системата, като че ли всеки беше единственият. С евентуалното изместване на проблема по всяко време и на всяко място в кода (с изключение на местата, където това е изрично забранено), за да преминете към друг. Плюсове и минуси на следното:







  • + не изисква задача превключване грижовна между тях, всяка задача, но от него не се изисква взаимодействие с други задачи или polzovatley споделя ресурси може да изглежда по същия начин, както ако бяха една среда задача;
  • + проблемът може бързо да получи контрол, ако е необходимо, независимо от състоянието на други задачи, които осигуряват производителност в реално време;
  • + широка приложимост за защита на задачите на операционната система от грешки и атаки;
  • - Специални методи са необходими за синхронизация задача един с друг, за да се избегне несигурни ситуации и конфликти;
  • - Необходимо е да се поддържа от хардуера (поне за записване и възстановяване на държавата, когато преминавате mikroprotsesor);
  • - Това изисква повече системни ресурси (памет за стека и спестяване на състоянието на всеки процесор, както и по време на превключване на контекста).

Предимства изпреварваща многозадачност са най-значимите за повечето практически проблеми и затова почти всички развити достатъчно съвременни операционни системи прилагат този тип многозадачност.

Ефективността на многозадачна система до голяма степен зависи от метода на планирането на задачи за изпълнение. За да се разбере концепцията за насрочване на важни задачи на държавата. Основните задачи на държавата са:

  • е извършено;
  • Пригответе се за изпълнение;
  • заключена.

Предизвикателството е в изпълнението, когато той е избран от ресурса на процесора, и предава управлението. Очевидно е, че системата може да се изпълнява задачи повече от физически процесори. Следователно, налице е второто условие - готов за изпълнение. Задачата в това състояние, ако тя може да бъде изпълнено, това е, че няма причини за блокиране, но като се имат предвид изчислителни ресурси за други задачи. В третия състоянието на задачата получава невъзможност за неговото изпълнение в определен момент. Това може да бъде

  • очакване на събитие (откриване на семафор, пристигане съобщение и др ...);
  • мъниче инициализация (когато не е настроен друга задача или система, първоначалните условия за започване на дейност);
  • "Замразяване" (стоп изричното изпълнение, обикновено за цел отстраняване на грешки);
  • завършване на (състоянието на "зомби", когато изпълнението е вече завършен, но средствата все още не са освободени);
  • или някои по-специфични случаи.

Много opertsionnoy системи третират тези случаи, както е различно, но те са отразени само в детайлите на изпълнението.

За разлика от първите две, заключване статут, най-общо казано това не е задължително. Сравнително стандарт случай само чака, разходки, и е възможно да се приложи един празен цикъл. Все пак, това е загуба на време на процесора, който може да вземе различно задача, така че блокирането състояние съществува в почти всички многозадачна операционна система.

Има няколко основни стратегии график:

кръгъл (кръгла Робин) контрол между задачите, извършени в определен във всеки ред на редовни интервали; произволно (случайно) през всеки определен период от време контролът се предава на случаен предизвикателство; приоритет (приоритет задвижване) всяка задача има ниво приоритет и получи не-сключващи задача за контрол, която има най-високо ниво; (Краен срок задвижване) прехвърляне контрол, процедурата ще гарантира изпълнението на задачите в определен период от време.
  • Той констатира, че използването на разширение AdBlock.