Планувальник операційної системи: відмінності між версіями

[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Рядок 38:
{{main|Планування нитей}}
 
Системи [[MS-DOS]] і раніранні [[Microsoft Windows]] не були багатозадачними, і відповідно не мали планувальника. Windows 3.1x використовував неупереджувальний планувальник, і тому не могла переривати програми. Система цілком покладається на програму, коли та скаже ОС, що вона вже не потребує процесора (процесорного часу), і тільки тоді система могла виконувати інший процес. Це звичайно називають кооперативною багатозадачністю. [[Windows 95]] представив зародковий упереджувальний планувальник, проте для сумісності зі спадщиною вирішили дати 16-бітним [[застосунок|застосункам]] запускатися в невитісняючому режимі<ref>{{Cite web |url=http://www.jgcampbell.com/caos/html/node13.html |title=Early Windows |accessdate=5 червень 2009 |archiveurl=https://web.archive.org/web/20090607092001/http://www.jgcampbell.com/caos/html/node13.html |archivedate=7 червень 2009 |deadurl=yes }}</ref>.
 
Операційні системи на основі [[Windows NT]] використовують чергу з багаторівневим відгуком. Визначені 32 рівнів пріоритету, від 0 до 31, де пріоритети від 0 до 15 є «нормальними» пріоритетами, і пріоритети від 16 до 31 є м'якими пріоритетами реального часу, які вимагають привілеїв призначити їх. «0» зарезервований для операційної системи. Користувач може вибрати 5 з цих пріоритетів і призначити їх своїм застосункам з програми Task Manager або за допомогою API управління [[нить|нитями]]. Ядро може змінити рівень пріоритету нитки в залежності від його операцій введення-виведення, завантаження процесора і навіть інтерактивно (тобто приймає і реагує на вимогу людини)<ref>[http://www.sriramkrishnan.com/blog/2006/08/tale-of-two-schedulers-win_115489794858863433.html Windows NT]{{Недоступне посилання|date=липень 2019 |bot=InternetArchiveBot }}</ref>. Планувальник [[Windows Vista]] був змінений, щоб задіяти циклічні регістри-лічильники сучасних процесорів відслідковувати скільки точно циклів процесора виконується [[нить]], а не тільки коли інтервал-таймер перериває виконання<ref>[http://technet.microsoft.com/en-us/magazine/cc162494.aspx Inside the Windows Vista Kernel: Part 1], Microsoft Technet</ref>. Vista використовує також пріоритети планувальника для черги введення-виведення, щоб дефрагментація диску та інші подібні фонові операції не втручалися в роботу основних процедур<ref>{{Cite web |url=http://blog.gabefrost.com/?p=25 |title=Vista Kernel Vista Kernel |accessdate=5 червень 2009 |archiveurl=https://web.archive.org/web/20080219174631/http://blog.gabefrost.com/?p=25 |archivedate=19 лютий 2008 |deadurl=yes }}</ref>.