Составители:
Рубрика:
Глава 6.
Основы многозадачности
6.1. Многозадачность в Windows
Для современных операционных систем и для различных систем
программирования в современном мире поддержка разработки и реализа-
ция многозадачности стала необходимой. При этом на применяемые ре-
шения влияет значительное число факторов.
Конкретная реализация очень сильно зависит от того, какая вычис-
лительная система и какие аспекты работы этой системы рассматривают-
ся с точки зрения многозадачности. Так, например, в некоторых случаях
эффективным способом реализации многозадачности может быть ис-
пользование асинхронных операций ввода-вывода; в других случаях будет
целесообразным использование механизмов передачи сообщений; очень
часто применяется обмен данными через область совместно доступной
памяти. Поэтому знакомство следует начать с основных сведений о вы-
числительных системах.
Современные операционные системы, как правило, поддерживают
несколько различных механизмов многозадачности. Конкретный выбор в
конкретной системе зачастую оказывает значительное влияние на прави-
ла разработки приложений. Поэтому следующим шагом должно быть зна-
комство с поддержкой многозадачности операционными системами. Мы
рассмотрим в общих чертах реализацию многозадачности в Windows.
Однако, главным является не компьютер и не установленная на нем
операционная система – всё это делается только для того, чтобы обеспе-
чить эффективное выполнение приложений. Соответственно знакомство
с многозадачностью должно завершиться обсуждением средств, которые
операционная система предоставляет разработчикам приложений, и не-
которым приемам разработки приложений.
6.1.1. Основные понятия
Начиная знакомство с многозадачными системами, необходимо вы-
делить понятия мультипроцессирования и мультипрограммирования.
• Мультипроцессирование – использование нескольких процес-
соров для одновременного выполнения задач.
• Мультипрограммирование – одновременное выполнение
нескольких задач на одном или нескольких процессорах.
Основы многозадачности
183
1. первым использованием переменной Y является инструкция
stloc(starg)Y(назовем ее инструкцией инициализации перемен-
ной Y);
2. инструкция инициализации переменной Y непосредственно
следует за инструкцией ldc C (любая инструкция загрузки кон-
станты на стек вычислений). Впрочем, допускается наличие ме-
жду ними любого количества инструкций dup;
3. за исключением инструкции инициализации, переменная Y ис-
пользуется только в инструкциях ldloc(ldarg)Y.
Схема воспроизведения константы C, являющейся значением пере-
менной Y, показана на рисунке 5.5. При воспроизведении осуществляют-
ся два действия:
1. Инструкция инициализации переменной Y заменяется инструк-
цией pop.
2. Инструкции ldloc(ldarg)Yзаменяются инструкциями ldc C.
5.3.3.4. Удаление неиспользуемых переменных
Если некоторая переменная не используется в графе метода или
встречается только в инструкциях stloc(starg), то она удаляется. При
этом все инструкции stloc(starg), использующие эту переменную, заме-
няются инструкциями pop.
Рис. 5.5. Схема воспроизведения константы C, являющейся значени-
ем переменной Y
182
CIL и системное программирование в Microsoft .NET
ldc C
stloc Y
ldloc Y
ldc C
pop
ldc C
182 CIL и системное программирование в Microsoft .NET Основы многозадачности 183
1. первым использованием переменной Y является инструкция
stloc(starg) Y (назовем ее инструкцией инициализации перемен- Глава 6.
ной Y);
2. инструкция инициализации переменной Y непосредственно Основы многозадачности
следует за инструкцией ldc C (любая инструкция загрузки кон-
станты на стек вычислений). Впрочем, допускается наличие ме-
жду ними любого количества инструкций dup;
3. за исключением инструкции инициализации, переменная Y ис- 6.1. Многозадачность в Windows
пользуется только в инструкциях ldloc(ldarg) Y.
Схема воспроизведения константы C, являющейся значением пере- Для современных операционных систем и для различных систем
менной Y, показана на рисунке 5.5. При воспроизведении осуществляют- программирования в современном мире поддержка разработки и реализа-
ся два действия: ция многозадачности стала необходимой. При этом на применяемые ре-
1. Инструкция инициализации переменной Y заменяется инструк- шения влияет значительное число факторов.
цией pop. Конкретная реализация очень сильно зависит от того, какая вычис-
2. Инструкции ldloc(ldarg) Y заменяются инструкциями ldc C. лительная система и какие аспекты работы этой системы рассматривают-
ся с точки зрения многозадачности. Так, например, в некоторых случаях
5.3.3.4. Удаление неиспользуемых переменных эффективным способом реализации многозадачности может быть ис-
Если некоторая переменная не используется в графе метода или пользование асинхронных операций ввода-вывода; в других случаях будет
встречается только в инструкциях stloc(starg), то она удаляется. При целесообразным использование механизмов передачи сообщений; очень
этом все инструкции stloc(starg), использующие эту переменную, заме- часто применяется обмен данными через область совместно доступной
няются инструкциями pop. памяти. Поэтому знакомство следует начать с основных сведений о вы-
числительных системах.
Современные операционные системы, как правило, поддерживают
несколько различных механизмов многозадачности. Конкретный выбор в
ldc C ldc C конкретной системе зачастую оказывает значительное влияние на прави-
ла разработки приложений. Поэтому следующим шагом должно быть зна-
комство с поддержкой многозадачности операционными системами. Мы
stloc Y pop рассмотрим в общих чертах реализацию многозадачности в Windows.
Однако, главным является не компьютер и не установленная на нем
операционная система – всё это делается только для того, чтобы обеспе-
чить эффективное выполнение приложений. Соответственно знакомство
с многозадачностью должно завершиться обсуждением средств, которые
ldloc Y ldc C операционная система предоставляет разработчикам приложений, и не-
которым приемам разработки приложений.
6.1.1. Основные понятия
Рис. 5.5. Схема воспроизведения константы C, являющейся значени- Начиная знакомство с многозадачными системами, необходимо вы-
ем переменной Y делить понятия мультипроцессирования и мультипрограммирования.
• Мультипроцессирование – использование нескольких процес-
соров для одновременного выполнения задач.
• Мультипрограммирование – одновременное выполнение
нескольких задач на одном или нескольких процессорах.
Страницы
- « первая
- ‹ предыдущая
- …
- 96
- 97
- 98
- 99
- 100
- …
- следующая ›
- последняя »
