Многозадачность операционной системы — мультипрограммирование и реализация

Дата публикации 01.03.2021

Multiprogramming ( английский многозадачности ) представляет собой метод многопроцессорной обработки , где компьютерные ресурсы разделены между несколькими задачами. Вначале мультипрограммирование решалось чередованием заданий во время выполнения, когда одно из них ждало, пока более медленное периферийное устройство завершит операцию ввода-вывода (запрос на печать, чтение с ленты, диска и т.д.). Сегодня операционная система меняет задачи в быстрой последовательности, так что оператор компьютера может без проблем работать со всеми. В настоящее время мультипрограммирование использует многозадачность в качестве основного инструмента.

Программист совершенно естественно использует многозадачность, ему не нужно решать ее каким-либо образом в своей программе. Напротив, он может программировать таким образом, что предполагает одновременное выполнение нескольких процессов одновременно, использует связь между процессами, может решать проблему с помощью нескольких отдельных программ, которые работают одновременно, и так далее. Естественно, что работа программиста будет ещё быстрее, если дело его рук расположено на мощном сервере Reshield-IT, который бесперебойно выполняет свою основную функцию, тем самым обеспечивает стабильную работу сайта, приложения или програмы.

Реализация

Обычно на компьютере не так много процессоров, сколько мы хотим выполнять задачи одновременно. Следовательно, невозможно гарантировать, что все запущенные задачи выполняются одновременно. Вместо этого гарантируется, что выполняемые задачи на процессоре (ах) компьютера чередуются очень быстро, создавая впечатление одновременного выполнения. Время, в течение которого может выполняться каждая задача, называется квантом времени .

На рисунке справа показаны задания A, B и C, чередующиеся выполняемые на одном процессоре, что указывает на то, что задание может выполняться меньше максимального количества времени.

Существует два основных способа многозадачности, в зависимости от того, как кванты времени выделяются и удаляются из задач:

  • кооперативная (не вытесняющая) многозадачность
  • вытесняющая многозадачность

Кооперативная (не вытесняющая) многозадачность

Совместная многозадачность требует активного участия выполняемых задач. Каждая задача обязана передавать управление обратно операционной системе достаточно часто с помощью системного вызова , который может запустить другую задачу, которая через некоторое время добровольно откажется от процессора и т.д. Преимущество решения — более простая реализация операционной системы. Существенным недостатком является то, что неправильно запрограммированная задача, не возвращающая управление операционной системе, приведет к полной остановке системы и других задач.

Microsoft Windows , в которой не использовалось 32-разрядное ядро NT (например, Windows 3.x , Windows 95 , Windows 98 ), использовала невытесняющую многозадачность. Однако по маркетинговым причинам это называлось совместной многозадачностью, когда задача, которая была на переднем плане (т.е. имела активное окно), получала больше времени, чем другие задачи (которые пользователь не контролировал напрямую и поэтому не возражал, напротив, система выглядела как мощнее). В Windows 2.x (выпущена в 1988 г.) и более новых, можно было запускать несколько приложений DOS, которые выполнялись в режиме вытесняющей многозадачности независимо, но сами приложения Windows работали в режиме совместной работы в многозадачном режиме, так что некорректно запрограммированное приложение приводило к «зависанию» всей системы. При невытесняющей многозадачности также использовалась Mac OS (использовавшаяся до macOS ) и RISC OS .

Вытесняющая многозадачность

Вы также можете найти соответствующую информацию в статье Вытеснение (информатика) .
При вытесняющей многозадачности операционная система полностью отвечает за выделение и удаление процессора для отдельных задач . С регулярными интервалами (обычно от 100 до 1000 в секунду) таймер запускает прерывание текущей запущенной программы (процесса), оценивает текущую ситуацию (какие задачи запрашивают выделение ЦП, их приоритеты и т.д.) И позволяет запускать любую из них снова. задача, которая была прервана, или другая задача, которая заинтересована в выделении процессора (какая задача затем будет запущена, определяется очередью приоритетов). Однако даже в вытесняющей многозадачности задача может добровольно запросить переключение контекста и отказаться от остальной части своего кванта (так называемая задача «засыпает» — процесс переходит в спящий режим или блокируется путем выполнения медленного ввода-вывода.такие операции, как чтение данных с жесткого диска ).

Windows 95 использует вытесняющую многозадачность (только для 32-битных программ, остальные запускаются без вытеснения). Многие Windows NT полностью вытесняют . С момента своего появления он также используется в macOS , ядрах Unix (включая Linux ) и других операционных системах.

Преимущество этого решения состоит в том, что компьютер не «зависает», потому что даже если задача зацикливается, операционная система использует таймер, чтобы удалить управление из задачи и назначить процессор другой задаче. Недостатком является более сложная реализация операционной системы и необходимость аппаратной поддержки в процессоре компьютера

Предыдущая
СтатьиAndroid - интегрированные приложения, а также разработка приложений для android
Следующая
СтатьиВыбираем качественный смартфон
Помогла статья? Оцените её
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...
Добавить комментарий

18 − 7 =

Adblock
detector