Многозадачность — способность операционной системы (или программного окружения) поддерживать одновременное совместное выполнение и взаимодействие нескольких задач (программ, потоков исполнения) друг с другом и внешней средой.
Если система может выполнять задачи только последовательно, начиная следующую только после завершения текущей, то система называется однозадачной . Первые системы были именно такими.
Переходным звеном к многозадачным ОС является ОС пакетной обработки: будучи однозадачной по сути, такая система работает не с одним приложением, а потоком пакетов, которые последовательно обрабатывает (запуская функции или программы их обработки).
Непосредственно же о многозадачности следует говорить тогда, когда окружение обеспечивает наличие в системе одновременно нескольких потоков исполнения.
Идеальным случаем многозадачности является параллельная многозадачность, когда каждая задача исполняется в своём аппаратном микропроцессорном ядре действительно одновременно друг с другом. Такой вариант даже реализован, например в микроконтроллере Propeller от Parallax (обеспечивает работу сразу 8 задач), однако обычно использование отдельных аппаратных средств под каждую задачу оказывается слишком расточительным, поэтому применяется псевдопараллельная многозадачность, когда ресурсы микропроцессора поочерёдно передаются между задачами, создавая иллюзию одновременности, или совокупность параллельной и псевдопараллельной многозадачности при наличии нескольких процессорных ядер.
Как исполнить любое желание! 100% техника от Садхгуру!
Различают два основных типа псевдопараллельной многозадачности:
- невытесняющая — требующая явной передачи управления между задачами в определённых точках по их инициативе;
- вытесняющая — в которой переключение между задачам происходит неявно, посредством диспетчера задач в произвольные моменты времени.
Невытясняющая многозадачность, как наиболее примитивная, была создана первой и имеет свои достинства и недостатки:
- + весьма легка в реализации;
- + хорошо предсказуема в поведении, исключает многие опасные ситуации, такие как гонки за использование разделяемых ресурсов;
- + предъявляет минимум требований к системе и тратит минимум ресурсов (возможно даже использование несколькими задачами одного стека);
- — требует особого стиля написания программ, затрудняя как разработку новых, так и адаптацию существующих;
- — затруднена оперативная реакция на внешние события;
- — практически невозможна защита задач друг от друга, что сильно снижает надёжность системы — как правило одна неправильно работающая задача легко заваливает все остальные (блокирует или нарушает их работу).
В противоположность ей существует вытесняющая задачность. В ней организация взаимодействия между полностью возложена на программное окружение (а конкретно, диспетчер задач), позволяя нескольким задачам одновременно работать в системе так, как если бы каждая была единственной. При этом возможно вытеснение задачи в любой момент времени и в любой точке кода (за исключением мест, где это явно запрещено) с переключением на другую. Плюсы и минусы следующие:
- + не требует от задач заботы о переключении между ними, любая задача, пока от неё не требуется взаимодействия с другими задачами или пользоватлься общими ресурсами может выглядеть так же, как если бы она была в однозадачном окружении;
- + задача может оперативно получить управление в случае необходимости вне зависимости от состояния других задач, что обеспечивает работу в реальном времени;
- + широки возможности реализации защиты операционной системой задач от ошибок и атак;
- — требует специальных методов синхронизации задач друг с другом во избежание неопределённых ситуаций и конфликтов;
- — нуждается в поддержке со стороны аппаратного обеспечения (как минимум для сохранения и восстановления состояния микропроцесора при переключении);
- — требует больше системных ресурсов (память под стек и сохранение состояния для каждого процессора и время на переключение контекстов).
Достоинства вытесняющей многозадачности оказываются наиболее существенными для большинства практических задач и поэтому практически все достаточно развитые современные операционные системы реализуют именно этот тип многозадачности.
Эффективность многозадачной системы во многом зависит от способа диспетчеризации задач на исполнение. Для понимания диспетчеризации важным является понятие состояния задачи. Основные состояния задач такие:
- выполняется;
- готова к исполнению;
- заблокирована.
Задача находится в состоянии исполнения тогда, когда под неё выделен ресурс процессора и передано управление. Очевидно, что в системе не может быть выполняющихся задач больше, чем физических процессоров. Поэтому существует второе состояние — готовность к исполнению. Задача в это состояние тогда, когда она может исполняться, то есть не существует причин, вызывающих блокировку, но вычислительные ресурсы отданы под другие задачи. В третье состояние задача попадает при невозможности её исполнения в данный момент времени. Это может быть
- ожидание какого либо события (открытия семафора, прихода сообщения и т. п.);
- незавершённая инициализация (когда ещё не созданы другой задачей или системой начальные условия для запуска);
- «заморозка» (явная остановка исполнения, обычно в отладочных целях);
- завершение (состояние «зомби», когда исполнение уже закончено, но ресурсы ещё не освобождены);
- или какие-то ещё специфические случаи.
Многие оперционные системы рассматривают эти случаи как различные, однако они имеют отражаются лишь в деталях реализации.
В отличие от первых двух, состояние блокировки, вообще говоря не является обязательным. Достаточно стандартным является лишь случай ожидания, ходя и его можно реализовать пустым циклом. Однако это является пустой тратой процессорного времени, которое можно занять другой задачей, поэтому состояние блокировки существует практически во всех многозадачных ОС.
Известно несколько основных стратегий диспетчеризации:
круговая (round-robin) управление между задачами производится в в каком-либо фиксированном порядке через определённые промежутки времени; случайная (random) через каждый определённый промежуток времени управление передаётся на произвольную задачу; приоритетная (priority-driven) каждая задача имеет уровень приоритета и управление получает незаблокированная задача имеющая наибольший уровень; (deadline-driven) передача управления производится в порядке, обеспечивающем выполнение задач в определённый срок.
Источник: osdev.fandom.com
Как работает многозадачность? Разбор
Во времена далекие, тяжелые, междоусобные, жил на руси князь галицкий Ярослав Владимирович. Премудрости ему было не занимать. Поэтому величали его Ярослав Осмомысл. Восемь мыслей он в голове мог держать. Всё он одновременно делал, и бояр окаянных усмирял, и икры баклажанную ложкой зачерпывал, и бастарда на трон сажал.
Но то всё сказки. А в жизни слухи о многозадачности человеческого мозга сильно преувеличены. Все, кто пробовал решать какую-то задачу и одновременно переписываться в тысячах рабочих чатов знают, что любые попытки выполнить миллион дел за раз, приводят к интерференции мыслительных задач. Что буквально делает нас глупее, отнимает много сил и многократно снижают эффективность.
Исследователи из Университета Сассекса выяснили , что у людей с высокой степенью многозадачности плотность мозгового вещества в передней поясной коре ниже. Эта область отвечает за эмпатию, а также за когнитивный и эмоциональный контроль.
Иными словами, люди по своей природе — однозадачные. А вот современные компьютеры и операционные системы по-настоящему многозадачным. Но так было не всегда! Поэтому сегодня мы выясним, как компьютеры стали многозадачными и причем тут многоядерные процессоры AMD?
Узнаем какие операционные системы наиболее многозадачны? А главное, правда ли что на смартфонах многозадачность не настоящая?
Зачем нужна многозадачность?
Как говориться, к хорошему быстро привыкаешь. Работая за компьютером мы открываем кучу вкладок в Google Chrome или любом другом браузере, переписываемся в тысячах рабочих и не только чатов, работаем с документами и параллельно смотрим YouTube.
Сейчас с таким уровнем многозадачности легко справляются корпоративные ультрабуки, которые, собственно, и являются основным инструментом для работы. Но как они это делают?
Однозадачные ОС
Итак, в компьютерах наличие или отсутствие многозадачности в первую очередь зависит от операционной системы. Изначально все ОС были однозначными. В таких системах задачи выполнялись последовательно, то есть одна за другой. Например, старый добренький MS-DOS — это однозадачная ОС.
Такие простые операционные системы по-прежнему активно используются в различных бытовых приборах: холодильниках, кофемашинах, ну или на простейших кнопочных телефонах, которыми мы раньше пользовались. Да, старые-добрые телефоны Nokia были однозначными.
Но подождите! Ведь Nokia много чего умела! Например, за секунду до мирового рекорда в змейку вполне могла позвонить мама, и, естественно, надо было ответить. И при этом ничего страшного не происходило, можно было спокойно принять вызов, а потом продолжить играть с того же места.
Разве это не многозадачность? Нет! В этот момент система просто прерывала один процесс, переключалась на другой, а потом возвращалась обратно. Прямо как человеческий мозг. Так что знайте, наш мозг чем-то похож на старую Nokia.
А вот настоящие многозадачные ОС могут выполнять несколько процессов параллельно, ну или псевдопараллельно. О чем мы сейчас и поговорим.
Типы многозадачности
Все современные многозадачные ОС, по своей сути, делают тоже самое, что и однозадачные, они точно также прерывают одну задачу, чтобы запустить вторую, а потом третью и так далее, но это переключение происходит настолько быстро, что создается иллюзия, будто всё происходит одновременно. Но чем тогда отличаются многозадачные и однозадачные ОС?
А тем, что многозадачные системы способны прервать выполняемую задачу практически в любой момент и передать управление ожидающей задаче. Такие системы как жесткий генерал держат процессы под строгим контролем и сами решают какая из задач в данный момент может претендовать на процессорное время. Причем делают они это очень быстро, миллиарды раз в секунду. И, кстати, такой тип многозадачности называется преимущественным или вытесняющим.
Preemptive multitasking — преимущественная, или вытесняющая, многозадачность.
А какую задачу вытеснить и какой отдать преимущество определяет планировщик операционной системы. Но это не всё! На самом деле современные ОС — не просто многозадачные, они многопоточные. В чём разница?
В многозадачных ОС, минимальная единица, которой может управлять планировщик — это программа. Одна программа = один процесс, и всё что мы можем делать — это переключаться между процессами.
А в многопоточных ОС, каждая программа может иметь несколько потоков, то есть подзадач. Поэтому планировщик может переключаться между потоками, что позволяет уменьшить задержки, и куда рациональнее распределять ресурсы.
Именно такое свойство быстро переключаться между потоками позволяет вам одновременно использовать кучу приложений и мгновенно переключаться между ними.
Многопоточность в Google Chrome
Хороший пример программы, которая по максимуму использует возможности многозадачности и многопоточности — это наш родной прожорливый браузер Google Chrome. Каждая вкладка в Chrome — это отдельный процесс, с несколькими потоками. Это хорошо заметно если открыть диспетчер задач: кучка маленьких Chrome занимают ваш процессор пока вы серфите в Интернете.
Более того, что каждый процесс может попросить операционную систему развернуть другой процесс для выполнения различных задач. И под каждый такой процесс, нужно выделить определенное количество оперативной памяти.
А ведь есть еще плагины, которые также являются процессами и всякие сервисы и прочие штуки, которые нагружают не только центральный процессор, но и графический.
Короче Chrome — это настоящий монстр. У него даже есть свой диспетчер задач. Чтобы его открыть нажмите Shift + Esc в Windows, а в Mac его можно открыть из меню Window.
Для выполнения каждого из этих процессов требуется свой логический процессор. Скажем, у AMD Ryzen 7 5700U имеется 8 физических ядер, каждое из которых может работать как два виртуальных потока. Итого мы получаем 16 одновременно выполняемых потоков, часть которых может выполняться быстро и на малых частотах, а самым требовательным можно ненадолго увеличить рабочую частоту до 4,33 ГГц.
Теперь понимаете, почему Chrome жрёт столько оперативки и сажает батарейку на ноутбуках с неэффективным распределением ресурсов процессора? Для эффективного выполнения сотен мелких процессов нет ничего лучше множества ядер с эффективным управлением их мощностью. У современных процессоров AMD для этого каждое ядро может работать как производительное, либо как энергоэффективное.
Кстати, в борьбе с Google Chrome есть и другие методы снизить нагрузку на железо.
Проверяли мы все на бизнес-ноутбуке LENOVO V14 GEN2 с процессором AMD Ryzen 7 5700U и 8 ГБ оперативной памяти. Вот его спецификации:
Lenovo V14 GEN2
- Дисплей 14″ FHD 60Гц
- Процессор — AMD Ryzen 7 5700U (1,8-4,3 ГГц)
- TDP — 15Вт
- ОЗУ — 8ГБ
- SSD — 256ГБ
Современные ОС многозадачные и многопоточные, а потому, что они еще и многопроцессорные. Это значит, что ОС поддерживают работу с несколькими процессорами одновременно. Правда за редкими случаями такой необходимости нет, так как большинство современных процессоров многоядерные, а каждое ядро, это считайте отдельный процессор. И чем больше ядер, тем лучше для многозадачности!
А многоядерность — это фишка AMD. Они в принципе выпустили первый двухядерный проц для ПК, это был Athlon 64 X2 в 2005 году.
Ну и они со своей архитектурой ZEN, cмогли сделать по-настоящему крутые 8-ядерные процессоры для ультрабуков. Например, в нашем LENOVO V14 GEN2 установлен AMD Ryzen 7 5700U. Это 8-ядерный и 16-поточный процессор. Это значит, что он может обрабатывать 16 потоков одновременно, то есть параллельно без всяких там приставок “псевдо”. Что делает этот ноутбук супер-отзывчивым.
Приложения быстро грузятся, переключение между запущенными программами происходит мгновенно. Работа с несколькими рабочими столами — также без проблем.
Что очень круто для корпоративного ультрабука. Но еще круче то, что все 8 ядер могут в определенный момент заработать на полную, и тогда все 16 потоков будут выполняться на предельной тактовой частоте 4,3 ГГц. А затем также быстро перейти в энергоэффективный режим, снижая общий показатель тепловыделения ниже 15 Ватт.
ПРИМЕЧАНИЕ: В штатном режиме на ноутбуке все ядра не смогут работать на максимальной частоте; она обычно достижима для одного-двух ядер.
С процессорами AMD Ryzen поколения ZEN 2 эффективность распределения процессов на потоки легко спутать с магией. Настолько быстро и незаметно все выполняется в большинстве повседневных рабочих задач. Более того, тут еще стоит довольно мощная встроенная графика AMD Radeon.
Поэтому ноутбук можно спокойно использовать не только для типичных офисных задач задач, типа работы документами и почтой, но и работать:
- С тяжелыми приложениями
- С 2D, 3D графикой
- С внешними 4К дисплеями
- Стримить видео без тормозов
- Проводить конференции со спец.эффектами типа замены фона и кучей участников, что особенно важно на удаленке.
Что еще важно? Безопасность. Архитектура Zen, в процессорах Ryzen, сама по себе не так подвержена уязвимостям в силу новизны, особенно на фоне устаревающих архитектурных решений у многих конкурентов.
Вдобавок тут есть встроенный модуль безопасности TPM 2.0, который шифрует всё и вся по стандартам корпоративной безопасности бизнес-инфраструктуры. Ну и конечно он нужен для установки Windows 11, без которой сегодня трудно представить актуальный ультрабук для бизнеса. И шторка для веб-камеры тоже есть, это ж корпоративный продукт и приватность гарантирует.
В общем, Ryzen 5700U — это просто бомба для своего сегмента. Благодаря 8-миядерной конфигурации с 16 потоками, сотни фоновых процессов выполняются играючи, без подтормаживаний и затупов. Но стоит дать реальную нагрузку этому процессору, и вся мощь Архитектуры ZEN мигом переключится на частоту 4,3 гигагерц. Также ноутбук LENOVO V14 может похвастаться отличной автономностью — до 21 часа использования — небольшими габаритами с весом всего 1,5 килограмма и столь же конкурентной ценой. Для образцового многозадачного ноутбука получается весьма приличная колода из козырей.
Многозадачные ОС
Но какая операционная система самая-самая многозадачная? Самая эффективная, самая распределенно-параллельно вычисляющая?
На самом деле все популярные ОС — это всё многозадачные, многопоточные, многопроцессорные, вытесняющие операционные системы. К таким системам относится и Windows, и UNIX, и Linux. Ну и соответственно туда же входят MacOS и iOS, которые основаны на UNIX. И Android, который основан на Linux. Но почему тогда многозадачность в смартфонах и планшетах считается неполноценной?
А вот почему.
Многозадачность на смартфонах
Несмотря на то, что iOS и Android на уровне ядра позволяют реализовать полноценную многозадачность, такую же как на взрослых операционных, Google и Apple блокируют эту возможность. Почему?
На самом деле очень простой причине: многозадачность очень ресурсоемкая вещь, которая сильно нагружает процессор и жрет аккумулятор. При этом на маленьких экранах полноценная многозадачность просто не нужна. Поэтому? чтобы ваш смартфон не разряжался за пару часов, а интерфейс был плавным, в мобильных ОС используют чуть другой подход к многозадачности. И работает это так — каждое приложение может находиться в 4-х состояниях:
- Нерабочее
- Активное
- Фоновое
- Приостановленное
До запуска, приложение находится в нерабочем состоянии. Но после нажатия на иконку, приложение загружается в ОЗУ и переходит в активное состояние. В этот момент оно полноценно работает и потребляет системные ресурсы.
Но как только вы свернули приложение, оно сразу переключается из активного состояния в фоновое, то есть приложение не видно, но оно также работает. А через несколько секунд приложение приостанавливается. Оно всё также висит в памяти, но не исполняет код.
Такой подход: с одной стороны, мгновенно запускать приостановленные приложения, когда вы к ним возвращаетесь, с другой — не сжигать лишние ресурсы в фоне.
И отвечая на вопрос, нужно ли вручную закрывать все эти приостановление приложения? Ответ — однозначно нет. Такие приложения, не съедают батарейку, они просто временно висят в оперативной памяти. Но если оперативка закончится система сама их оттуда выгрузит. И это справедливо и для iOS, и для Android.
Тем не менее бывают исключения. Некоторым приложения, позволено висеть в фоновом состоянии сколько угодно. Например, музыкальным проигрывателям, навигации, почтовым клиентам, мессенджерам. В этом случае действительно, будет тратиться какое-то количество ресурсов. Поэтому в iOS сторонним приложения очень сложно получить привилегии фоновой активности.
А вот на Android чуть попроще. В отличие от iOS в Андроиде есть понятие “сервисы”, которые могут работать в фоне, поэтому на Android гораздо проще реализовать фоновую активность приложения. Этим Android больше поход на взрослые ОС, со всеми вытекающими плюсами и минусами.
Источник: dzen.ru
В. Ф. Нестерук Организация эвм и систем
Н 56 Организация ЭВМ и систем: Краткий конспект лекций для дистанционной формы обучения. – Омск: Изд-во ОмГТУ, 2005, 60 с.
Рассматривается история развития и классификация ЦВМ, основы теории микропрограммного управления, организация и методика проектирования операционных устройств с микропрограммным управлением на базе микропроцессорных средств, основы теории программного управления и способы адресации в командном цикле.
Предназначено для студентов направления 552800 дистанционной формы обучения.
Редактор н. Н. Пацула
ИД № 06039 от 12.10.01
Свод. темплан 2005 г.
Подписано к печати 19.04.05. Формат 1 /16. Бумага офсетная.
Отпечатано на дупликаторе. Усл. печ. л. 3,75. Уч-изд. л. 3,75.
_________________________Тираж 200 экз. Заказ 353. _______________________
Издательство ОмГТУ. 644050, г. Омск, пр. Мира, 11.
технический университет, 2005
Назначение и классификация ЭВМ
Электронные вычислительные машины (ЭВМ) предназначены для автоматизации интеллектуальной и управленческой деятельности человека.
Различают следующие основные классы ЭВМ: аналоговые вычислительные машины (АВМ), цифровые вычислительные машины (ЦВМ) и гибридные – цифро-аналоговые (ЦАВМ) и аналого-цифровые (АЦВМ) вычислительные машины.
Так как предметом курса являются ЦВМ, то для машин других классов ниже будут даны только общие определения без подробного рассмотрения принципов их организации.
АВМ классифицируются как машины непрерывного действия, в которых и входные воздействия (аргументы) и выходные результаты (функции) непрерывны во времени. Для представления аргументов и функций используются токовые или потенциальные электрические сигналы. Вычислительный процесс реализуется на аппаратной модели, воспроизводящей требуемые функциональные зависимости.
Модель строится путём композиции базовых функциональных элементов (сумматоров, интеграторов, масштабирующих и дифференцирующих устройств, иных типов функциональных преобразователей), которые могут быть активного и пассивного типа. Активные элементы выполняются на основе специальных усилителей постоянного тока (УПТ) с линейными и нелинейными обратными связями. В пассивных элементах используются лишь параметрические свойства компонентов (резисторов, конденсаторов, катушек индуктивности, диодов).
АВМ характеризуются высоким быстродействием – непрерывная выходная функция формируется с небольшим временным сдвигом, равным задержке на электронной цепи прохождения сигнала со входа на выход модели. Это качество позволяет использовать АВМ для управления технологическим оборудованием в реальном масштабе времени. В то же время, точность вычислений невысока, так как зависит от точности изготовления базовых функциональных элементов и в эквиваленте не превышает точности ЦВМ с двенадцатиразрядной двоичной сеткой.
ЦВМ относятся к машинам дискретного действия, для которых характерны дискретное представление данных (операндов и результатов) и дискретный ход вычислительного процесса. ЦВМ оперируют с цифровыми кодами чисел, преимущественно двоичными. Дискретность представления чисел определяется весом младшего разряда кода, а точность – половиной веса младшего разряда. Теоретически можно обеспечить любую требуемую точность, но на практике длина разрядной сетки цифровых машин не превышает 128 двоичных разрядов.
Дискретность хода вычислительного процесса определяется в основном использованием численных методов при вычислении различных функциональных зависимостей через малый базовый набор операций в форме временного процесса, а также дискретным типом применяемых электронных элементов. Элементы ЦВМ должны иметь минимум два различимых состояния, и переход из одного состояния в другое осуществляется с определённой параметрической задержкой.
Суммарные задержки от последовательных цепочек элементов, участвующих в операции, и от последовательного набора этих операций при вычислении одного значения функции создают существенную временную задержку, определяющую временной интервал дискретности представления значений результирующей функции. В свою очередь, если ЦВМ используется для моделирования функциональных зависимостей без привязки к реальному масштабу времени, точечные значения функции можно определить для всех возможных значений аргументов, но при вычислении в реальном масштабе времени может наблюдаться прореживание точечной функции на временной интервал дискретности. Соответственно придётся прореживать значения аргументов с неменьшим временным интервалом, а значения функции внутри этих интервалов будут неопределёнными. По данной причине ЦВМ имеют меньшее быстродействие, чем АВМ.
Гибридные вычислительные машины в зависимости от процентного соотношения цифровой и аналоговой частей в общем конструктиве подразделяются на ЦАВМ (преимущественная цифровая часть) и АЦВМ (преимущественная аналоговая часть). Эти машины используются в основном в системах управления в реальном масштабе времени и позволяют наиболее эффективно сочетать свойства аналоговых и цифровых вычислительных средств при решении конкретных задач.
Рассмотрим подробнее наиболее характерные признаки классификации ЦВМ.
По основным архитектурным признакам различают:
- Классические машины, или машины фон-неймановского типа. Характеризуются наличием устройства командного управления, осуществляющего управление по хранимой в памяти ЦВМ программе (иначе – машины, управляемые контроллерами). Для машин данного типа характерно преимущественно упорядоченное исполнение команд программы.
- Машины, управляемые данными. В этих машинах любая команда программы может активизироваться и выполняться, если готовы данные для этой команды. Возможно параллельное выполнение ряда команд (в пределе — до всех команд программы). Число параллельно исполняемых команд зависит от возможного количества параллельно работающих операционных устройств (ОУ) и от реального потока данных. Для этих машин характерно преимущественно неупорядоченное исполнение команд.
- Машины, управляемые заданиями. Это машины, реализующие принцип объектных вычислений. Подобные машины являются многоранговыми древовидными иерархическими структурами, в каждом ранге которых размещаются функциональные устройства (объекты) равного уровня сложности, с уменьшением уровня сложности объектов от высшего ранга к низшему. Объекты текущего ранга способны принимать задания с предыдущего высшего ранга, активизироваться, если задания соответствуют их выполняемым функциям, и формировать задания на последующий низший ранг, воспринимать ответные реакции с низшего ранга, формировать на их основе результаты и передавать эти результаты объектам высшего ранга. В зависимости от назначения машины данного типа могут выполнять как последовательный поток, так и параллельные потоки заданий.
Наибольшее распространение получили к настоящему времени машины, управляемые контроллерами. ЦВМ данного типа классифицируют по следующим параметрам. По соотношению потоков данных и потоков команд: — SISD (Single Instruction Single Data) — один поток команд, один поток данных; — SIMD (Single Instruction Multiple Data) — один поток команд, много потоков данных; — MISD (Multiple Instruction Single Data) — много потоков команд, один поток данных; — MIMD (Multiple Instruction Multiple Data) — много потоков команд, много потоков данных. К типу SISD относятся ЦВМ, содержащие одно операционное устройство, способное в соответствии с потоком команд обрабатывать поток данных, элементы которого поступают последовательно во времени (рис. 1 а). ЦВМ типа SIMD (рис. 1 б) имеют несколько параллельно функционирующих операционных устройств, способных обрабатывать одновременно поступающие элементы соответствующих параллельных потоков данных под управлением общего потока команд. В MISD машинах (рис. 1 в) одни и те же элементы общего потока данных обрабатываются одновременно в параллельно работающих операционных устройствах по командам соответствующих параллельных потоков команд. ЦВМ типа MIMD (рис. 1 г) имеют матрицу операционных устройств, каждая строка которой эквивалентна структуре типа SIMD, а столбец – структуре типа MISD. По способу организации вычислительного процесса: — последовательные; — параллельные; — конвейерные. К последовательным относятся ЦВМ типа SISD, в которых очередная команда запускается на исполнение только после завершения операций по предыдущей команде . Параллельные ЦВМ могут одновременно выполнять несколько очередных команд программы либо обрабатывать несколько потоков данных. К параллельным могут относиться машины типов SIMD, MISD и MIMD. Конвейёрные ЦВМ имеют архитектуру SISD при условии, что операционное устройство имеет конвейерный режим работы. В этом режиме очередная команда может запускаться на исполнение до окончания операций по одной либо нескольким предшествующим командам с временным сдвигом запуска очередной команды относительно запуска предыдущей на постоянную величину, называемую тактом (или шагом) конвейера. Конвейерный режим определяется как псевдо-параллельный, так как позволяет выполнять операции по нескольким очередным командам в текущий момент времени. По количеству одновременно исполняемых программ: — однопрограммные; — многопрограммные (мультипрограммные). В однопрограммных ЦВМ в активном состоянии может находиться только одна исполняемая программа, в то время как в многопрограммных – несколько исполняемых программ. Многопрограммный режим может осуществляться с разделением времени между отдельными программами, когда в текущий момент выполняется очередной фрагмент одной из программ, а в следующий момент – фрагмент другой программы, что создаёт видимость одновременного исполнения нескольких программ. В многопрограммных ЦВМ может использоваться и режим пакетной обработки, когда предварительно создаётся пакет готовых к исполнению программ и они выполняются в порядке своей очерёдности в пакете. У пользователя также создаётся эффект одновременного выполнения программ, так как отсутствуют промежуточные задержки на подготовку программ к исполнению. По размерности массивов обрабатываемых данных: — скалярные; — суперскалярные; — векторные. Скалярные ЦВМ могут выполнять операции над скалярами – отдельными константами, текущими значениями переменной, текущими элементами массивов данных и т.п. Суперскалярные ЦВМ имеют два и более скалярных операционных устройств и позволяют одновременно выполнять несколько очередных команд по обработке скаляров. Векторные машины относятся к параллельным ЦВМ и способны выполнять однотипные операции сразу над вектором — множеством элементов массива. По назначению: — универсальные (общего назначения); — специализированные. Универсальные ЦВМ ориентированы на решение широкого круга задач и могут использоваться во многих областях человеческой деятельности. Однако применение подобных машин в конкретной области не всегда может быть экономически оправдано из-за неэффективного использования их возможностей. Они имеют избыточные аппаратные и программные средства. Специализированные ЦВМ оптимизированы для решения конкретных задач в относительно узкой области, что определяет экономическую эффективность их применения. ЦВМ различаются также по быстродействию, производительности, ёмкости основной памяти, габаритам, потребляемой мощности, надёжности, устойчивости к воздействию окружающей среды и прочим параметрам. Под быстродействием понимают максимально возможное количество выполняемых коротких операций в секунду либо среднее число операций в секунду, полученное при прогоне стандартных тестовых смесей команд. Косвенным показателем быстродействия для конкретных архитектур и технологий является тактовая частота процессора. Наибольшее быстродействие обеспечивают суперЭВМ, к которым относятся системы, выполняющие не менее ста миллионов операций с плавающей точкой в секунду (т. е. с быстродействием не менее 100 мегафлоп). Производительность ЦВМ оценивается на конкретном множестве задач и может колебаться в существенных пределах для одной и той же машины в зависимости от решаемых задач. Ёмкость памяти также является одним из основных параметров и может колебаться в существенных пределах. Максимальная ёмкость определяется размером виртуального адресного пространства системы, в пределах которого в зависимости от назначения ЦВМ выделяются области основной памяти и внешней памяти. В среднем адресное пространство основной памяти не должно быть меньше показателя быстродействия. Адресуемым элементом может быть байт (восемь битов), слово (два байта), двойное слово (четыре байта), четверное слово (восемь байтов). В ряде систем возможна адресация и к отдельным битам. Ёмкость памяти обычно оценивается в байтах или битах. Габариты ЦВМ отражаются в приставках микро- (размер небольшого чемодана, дипломата) и мини- (размер письменного стола). Машины больших габаритов относятся к большим ЦВМ. Размер лишь косвенно говорит о быстродействии и производительности. Например, может быть супермикроЭВМ – малых габаритов и высокой производительности. Потребляемая мощность находится в прямой зависимости от используемой интегральной технологии и тактовых частот работы ЦВМ. Современные однокристальные процессоры имеют мощность до нескольких десятков ватт. В то же время процессоры наручных часов и калькуляторов имеют мощность в несколько микроватт. ЦВМ могут классифицироваться и по ряду других признаков, представляющих интерес для тех или иных групп потребителей и специалистов.
Источник: studfile.net