Multitasking preventiv

Multitasking preventiv ( priority multitasking , engleză preemptive  multitasking , literalmente preemptive multitasking ) este un tip de multitasking în care sistemul de operare decide să comute între sarcini după o anumită perioadă de timp [1] .

Caracteristici

Decizia este luată în conformitate cu prioritățile sarcinilor. Spre deosebire de multitasking cooperativ , controlul este transferat sistemului de operare indiferent de starea aplicațiilor care rulează, datorită cărora, în special, aplicațiile suspendate (de exemplu, în buclă ), de regulă, nu „atârnă” sistemul de operare. Comutarea regulată a sarcinilor îmbunătățește, de asemenea, capacitatea de răspuns a sistemului, eficiența eliberării resurselor sistemului care nu mai sunt utilizate de sarcină [1] [2] .

În implementare, multitasking-ul preventiv diferă de multitasking cooperativ, în special prin faptul că necesită procesarea unei întreruperi de sistem de la un temporizator hardware [3] . După ce cuantumul de timp pentru proces a expirat, are loc o întrerupere și este invocat planificatorul de proces . Frecvența apelării programatorului este critică: apelarea prea des va pierde timp CPU.

Suport în sisteme de operare

Multitasking-ul preventiv este utilizat în majoritatea sistemelor de operare moderne de uz general [4] , de exemplu: Windows 9x și NT [5] , Linux (și alte UNIX ) [6] și OS/2 [7] , [8] Mac OS [9] ] [10] și BeOS [11] , MenuetOS și KolibriOS [12] . Un exemplu de sistem multitasking preventiv anterior UNIX este VMS [13] . Este, de asemenea, utilizat în multe sisteme de operare în timp real încorporate , cum ar fi FreeRTOS [14] .

Vezi și

Note

  1. ↑ 1 2 Dorot Viaceslav Leonidovici. Multitasking preventiv // Dicționar explicativ al vocabularului computerelor moderne . - ed. a III-a - BHV-Petersburg, 2004. - S. 143. - 608 p. — ISBN 978-5-94157-491-9 .
  2. Hailperin, 2007 , p. 37.
  3. Hailperin, 2007 , p. 37-38.
  4. Alexey Belokopytov. Tehnologia informației moderne: un ghid de studiu . — Litri, 2016-01-02. - P. 6. - 173 p. — ISBN 9785457413658 .
  5. Yuri Abramovici Shchupak. Multitasking // WIN32 API: Windows Application Development . - Editura „Petru”, 14-07-2008. - S. 17-18. — 592 p. — ISBN 978-5-388-00301-0 . Arhivat pe 15 septembrie 2016 la Wayback Machine
  6. Raymond, 2005 , 3.1.2. Suport multitasking, p. 81.
  7. Raymond, 2005 , 3.2.3. OS/2, p. 92.
  8. Alexander Vladimirovici Gordeev. Planificarea și programarea proceselor sarcinilor // Sisteme de operare: [în direcția pregătirii. „Inginerie informatică și informatică” ]. - Editura „Petru”, 2009. - S. 57. - 417 p. — ISBN 9785947236323 . Arhivat pe 15 septembrie 2016 la Wayback Machine
  9. Acest lucru se aplică versiunilor moderne, începând cu OS X, Mac OS „clasic” implementat multitasking non-preemptive (vezi, de exemplu , Raymond, 2005 , 3.2.2. Mac OS, p. 91).
  10. Pavel Urusov. Mere putrede. Cele mai proaste produse Apple . gagadget.com (5 februarie 2015). Consultat la 1 septembrie 2016. Arhivat din original pe 15 septembrie 2016.
  11. Istoria sistemului de operare BeOS  // Hacker. - 2013. - Nr. 10 . Arhivat din original pe 26 august 2016.
  12. Serghei Kuzmin. Noua față a Menuet OS . comprice.ru (15 decembrie 2004). Preluat la 1 septembrie 2016. Arhivat din original la 13 octombrie 2016.
  13. Raymond, 2005 , 3.2.1. VMS, p. 89.
  14. Kormanyos, 2015 , p. 196-197.

Literatură