Многозадачность в компьютере это

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

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

Одной из первых многозадачных систем была OS-360 для компьютеров фирмы IBM и их советских аналогов ЕС ЭВМ. В 1969 году появилась система Unix с алгоритмическим решением проблемы многозадачности. На базе Unix позднее были созданы десятки многозадачных операционных систем.

На компьютерах PDP-11 и их советских аналогах СМ-4 использовалась многозадачная система RSX-11 (советский аналог ОС РВ), и система распределения времени TSX-PLUS, обеспечивающая ограниченные возможности многозадачности и многопользовательский режим разделения времени, эмулируя для каждого пользователя однозадачную RT-11 (советский аналог РАФОС). Это решение было популярно из-за низкой эффективности и надежности полноценной многозадачной системы. Удачным решением была и операционная система VMS, разработанная для компьютеров VAX (советский аналог — СМ-1700), как развитие RSX-11.

Первый в мире мультимедийный персональный компьютер Amiga 1000 (1984 год) проектировался с расчетом на полную аппаратную поддержку вытесняющей многозадачности реального времени в операционной системы AmigaOS. Разработка аппаратной и программной части велась параллельно и согласованно. В результате по показателю квантования шедулера многозадачности (1/50 секунды на переключение контекста) AmigaOS долгое время оставалась непревзойденной в секторе персональных компьютерох.

Фирма Microsoft обеспечила многозадачность в операционных системах Windows. Идеи заложенные в VMS использовались при создании линейки операционных систем Windows NT. По времени переключения контекста многозадачности (квантование) Windows NT не уступает AmigaOS и Unix-подобным системам.

Многозадачность в компьютере это

Поддержка многозадачности (Лекция)

ПЛАН ЛЕКЦИИ

1. Многозадачность – определение, история развития

2. Режимы многозадачности

3. Невытесняющая многозадачность

4. Многозадачность в защищенном режиме

1. Многозадачность – определение, история развития

Многозадачность ( multitasking ) — это способность операционной системы выполнять несколько программ одновременно. В основе этого принципа лежит использование операционной системой аппаратного таймера для выделения отрезков времени ( time slices ) для каждого из одновременно выполняемых процессов. Если эти отрезки времени достаточно малы, и машина не перегружена слишком большим числом программ, то пользователю кажется, что все эти программы выполняются параллельно.

В обязанности процессора входит обеспечение одновременного выполнения нескольких задач. Для реализации многозадачности применяются системные регистры процессора.

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

Для того чтобы программы MS DOS могли работать внутри защищенной многозадачной среды, используется режим работы процессора виртуальной адресации i86 РМ 86 ( Protected Mode 86). В результате включения механизма РМ 86 реализуется не четыре х- , а менее эффективная двухуровневая система защиты. Память разбивается на страницы. В каждой странице формируются окна емкостью 1 Мбайт. В подобном окне может храниться отдельная программа DOS или другой операционной системы. Совокупность хранимых подобным образом программ называется виртуальными машинами, которые работают в многозадачном режиме.

Идея многозадачности не нова. Многозадачность реализуется на больших компьютерах типа мэйнфрэйм ( mainframe ), к которым подключены десятки, а иногда и сотни, терминалов. У каждого пользователя, сидящего за экраном такого терминала, создается впечатление, что он имеет эксклюзивный доступ ко всей машине. Кроме того, операционные системы мэйнфрэймов часто дают возможность пользователям перевести задачу в фоновый режим, где они выполняются в то время , как пользователь может работать с другой программой.

Для того , чтобы многозадачность стала реальностью на персональных компьютерах, потребовалось достаточно много времени. Но, кажется, сейчас мы приближаемся к эпохе использования многозадачности на ПК (PC). Как мы увидим вскоре, некоторые расширенные 16-разрядные версии Windows поддерживают многозадачность, а имеющиеся теперь в нашем распоряжении Windows NT и Windows 95 — 32-разрядные версии Windows, поддерживают кроме многозадачности еще и многопоточность ( multithreading ).
Многопоточность — это возможность программы самой быть многозадачной. Программа может быть разделена на отдельные потоки выполнения ( threads ), которые, как кажется, выполняются параллельно. На первый взгляд эта концепция может показаться едва ли полезной, но оказывается, что программы могут использовать многопоточность для выполнения протяженных во времени операций в фоновом режиме, не вынуждая пользователя надолго отрываться от машины.

2. Режимы многозадачности

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

Многозадачность в DOS

Микропроцессор Intel 8088, использовавшийся в первых ПК, не был специально разработан для реализации многозадачности. Частично проблема (как было показано в предыдущей главе) заключалась в недостатках управления памятью. В то время , как множество программ начинает и заканчивает свое выполнение, многозадачная операционная система должна осуществлять перемещение блоков памяти для объединения свободного пространства. На процессоре 8088 это было невозможно реализовать в стиле, прозрачном для приложений.

Сама DOS не могла здесь чем-либо существенно помочь. Будучи разработанной таким образом, чтобы быть маленькой и не мешать приложениям, DOS поддерживала, кроме загрузки программ и обеспечения им доступа к файловой системе, еще не так много средств.
Тем не менее, творческие программисты, работавшие с DOS на заре ее появления, нашли путь преодоления этих препятствий, преимущественно при использовании резидентных ( terminate-and-stay-resident , TSR) программ. Некоторые TSR-программы, такие как спулер печати, использовали прерывание аппаратного таймера для выполнения процесса в фоновом режиме. Другие, подобно всплывающим ( popup ) утилитам, таким как SideKick , могли выполнять одну из задач переключения — приостановку выполнения приложения на время работы утилиты. DOS также была усовершенствована для обеспечения поддержки резидентных программ.
Некоторые производители программного обеспечения пытались создать многозадачные оболочки или оболочки, использующие переключение между задачами, как надстройки над DOS (например, Quarterdeck’s DeskView ), но только одна из этих оболочек получила широкое распространение на рынке. Это, конечно, Windows.

3. Невытесняющая многозадачность

Когда Microsoft выпустила на рынок Windows 1.0 в 1985 году, это было еще в большой степени искусственным решением, придуманным для преодоления ограничений MS DOS. В то время Windows работала в реальном режиме ( real mode ), но даже тогда она была способна перемещать блоки физической памяти (одно из необходимых условий многозадачности) и делала это, хотя и не очень прозрачно для приложений, но все-таки вполне удовлетворительно.

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

Оконная оболочка позволяет нескольким программам выполняться совместно, разделяя один экран. Переключение вперед и назад становится тривиальным, существует возможность быстро передавать данные из одной программы в другую, например, разместить картинку , созданную в программе рисования, в текстовом файле, образованном с помощью текстового процессора. Передача данных поддерживалась в различных версиях Windows: сначала с использованием папки обмена ( clipboard ), позднее — посредством механизма динамического обмена данными (Dynamic Data Exchange, DDE), сейчас — через внедрение и связывание объектов ( Object Linking and Embedding , OLE).

И все же, реализованная в ранних версиях Windows многозадачность не была традиционной вытесняющей, основанной на выделении отрезков времени, как в многопользовательских операционных системах. Такие операционные системы используют системный таймер для периодического прерывания выполнения одной задачи и запуска другой. 16-разрядные версии Windows поддерживали так называемую невытесняющую многозадачность ( non-preemptive multitasking ). Такой тип многозадачности был возможен благодаря основанной на сообщениях архитектуре Windows. В общем случае, Windows-программа находилась в памяти и не выполнялась до тех пор, пока не получала сообщение. Эти сообщения часто являлись прямым или косвенным результатом ввода информации пользователем с клавиатуры или мыши. После обработки сообщения программа возвращала управление обратно Windows.

16-разрядные версии Windows не имели возможности произвольно переключать управление с одной Windows-программы на другую, основываясь на квантах времени таймера. Переключение между задачами происходило в момент, когда программа завершала обработку сообщения и возвращала управление Windows. Такую невытесняющую многозадачность называют также кооперативной многозадачностью ( cooperative multitasking ) потому, что она требует некоторого согласования между приложениями. Одна Windows-программа могла парализовать работу всей системы, если ей требовалось много времени для обработки сообщения.

Хотя невытесняющая многозадачность была основным типом многозадачности в 16-разрядных версиях Windows, некоторые элементы вытесняющей (примитивной, preemptive ) многозадачности в них тоже присутствовали.

Windows использовала вытесняющую многозадачность для выполнения DOS-программ, а также позволяла библиотекам динамической компоновки (DLL) получать прерывания аппаратного таймера для задач мультимедиа.

16-разрядные версии Windows имели некоторые особенности, которые помогали программистам если не разрешить, то, по крайней мере, справиться с ограничениями, связанными с невытесняющей многозадачностью. Наиболее известной является отображение курсора мыши в виде песочных часов. Конечно, это не решение проблемы, а только лишь возможность дать знать пользователю, что программа занята выполнением протяженной во времени работы, и что система какое-то время будет недоступна. Другим частичным решением является использование системного таймера Windows, что позволяет выполнять какие-либо действия периодически. Таймер часто используется в приложениях типа часов и приложениях, работающих с анимацией.

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

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

4. Многозадачность в защищенном режиме

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

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

Каждая задача описывается селектором дескриптора сегмента TSS — Task State Segment или сегмент состояния задачи. Сегмент TSS для каждой задачи должен быть описан в таблице GDT (загрузка дескриптора из LDT вызывает ошибку). Сегмент состояния задачи представляет собой 0x67 байт данных, в которых сохраняется состояние задачи (т.е. — содержание регистров процессора и некоторые другие данные) при прекращении ее выполнения.

Пример дескриптора сегмента TSS в таблице GDT:
67 00 00 00 00 89 40 00

Первые 0x67 байт линейного адресного пространства будут использованы для хранения состояния задачи, селектор которой указывает на этот дескриптор Бит 4 пятого байта дескриптора определяет дескриптор как системный. В этом случае биты 0-3 определяют тип дескриптора. Для TSS это:

0001 — свободный 16 битный сегмент состояния задачи
0011 — занятый 16 битный TSS
1001 — свободный 32 битный TSS
1011 — занятый 32 битный TSS

А также:
0101 — шлюз задачи

Селектор выполняющейся в текущий момент времени задачи содержится в регистре TR. В ОС обычно этот регистр загружается командой LTR при запуске первой задачи, выполняющейся в многозадачном режиме

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

Упоминания в литературе

Согласно определения, формы – это строительные блоки интерфейса пользователя. При этом хороший дизайн форм будет включать в себя нечто большее, нежели просто добавление элементов управления и программирование процедур обработки событий. Для того, чтобы создать действительно хорошо спроектированную форму, нужно понять ее главное назначение, способ и время использования; а также связи с другими элементами программы. В создании приложения нужно учитывать тот факт, что вам придется создавать несколько форм, каждая из которых будет отображаться по мере необходимости. Все будет зависеть от того, какую задачу вы закладываете при создании. Так, одни пользователи стараются широко использовать многозадачность Windows, в то время как другие предпочитают работать только с одним приложением. При этом необходимо помнить об этом во время разработки интерфейса пользователя (UI), чтобы максимально реализовать все возможности Windows. Это позволит вашим пользователям с любыми навыками работы эффективно применять созданное вами приложение.

Физический перенос данных на магнитном носителе представлял собой не меньшую проблему. Диски нужно было отправлять по почте или самостоятельно перевозить, а значит, для передачи сколько-нибудь значительного количества информации в другое место могли потребоваться часы или даже дни. В 1980‑е и даже 1990‑е гг. установка программного обеспечения с 10–20 дискет была обычным делом. Такой процесс мог занять больше часа, и делать на компьютере в это время что-то другое было невозможно. В то время у ПК не было современных многоядерных процессоров и функционала многозадачности . Хотя производители и придумали альтернативные средства для увеличения объема сохраняемых данных, включая некогда популярные zip-архиваторы, прирост тогда был связан в основном с тем, как удобнее управлять данными, а не как эффективнее соединять системы друг с другом.

Многозадачность превращается в проблему при традиционном планировании проекта по двум основным причинам. Во-первых, работы обычно закладывают в план задолго до их начала, а эффективно распределить работы заранее невозможно. Закрепление работы за конкретным исполнителем, а не за группой углубляет проблему. Во-вторых, многозадачность заставляет фокусироваться на высоком уровне загрузки всех исполнителей в проекте, а не на создании необходимого резерва, позволяющего справиться с неизбежной изменчивостью типичных задач проекта. Загрузка всех на 100 % приводит к такому же результату, как и загрузка скоростного шоссе на 100 %, – движение останавливается и никто не может стронуться с места.

Что такое компьютерная многозадачность?

Многозадачность – это делать несколько дел одновременно. Она часто поощряется среди офисных работников и студентов, т. к. считается, что многозадачность является более эффективной, чем сосредоточиться на одной задаче за один раз. Изначально этот термин появился в ИТ-индустрии, чтобы описать компьютер и один центральный процессор который выполняет сразу несколько задач. Такие компьютеры были способны выполнять только одну функцию за один раз, хотя иногда и очень быстро.

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

Компьютерная многозадачность – это процесс больше, чем одна программа выполняется на компьютере одновременно. В начале истории вычислительной техники, многозадачность, была почти немыслимой, и в течение десятилетий была низведена до высокопроизводительных мейнфреймов и недоступна для персональных компьютеров. Как передовая технология, многозадачность стала доступна и быстро превратилась в отраслевой стандарт для персональных компьютеров. По состоянию на 2017 год, даже такие устройства, как смартфоны часто способны на многозадачность, позволяя пользователям путешествовать по Интернету и слушать одновременно музыку, например.

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

Компьютеры с несколькими процессорами имеют два или более отдельных процессора, которые связаны друг с другом. Эти системы стали более распространёнными и более продвинутыми в начале 21-го века, они способны на настоящую многозадачность, хотя на практике, нет наблюдаемой разницы, кроме более высокой производительности, с которой эти системы работают по сравнению с однопроцессорными системами. Несколько процессоров позволяют множеству различных программ для их одновременного выполнения.

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

Истинная компьютерная многозадачность влияет на то, как люди живут, работают и используют свои компьютеры, и в некотором смысле это, конечно, верно. Многозадачность одновременно позволяет передавать музыку с Интернет-радио во время исследования и написания документов. Ограничения на способности человека работать в многозадачном режиме, в конечном итоге, ограничивают способы, с которыми физические лица могут использовать мощность современных компьютеров в многозадачном режиме. Люди имеют ограниченную способность сосредоточиться на нескольких задачах и деятельности, что делает для них трудным взаимодействовать с более чем одной программой одновременно.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector