Составители:
Рубрика:
Глава 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
- …
- следующая ›
- последняя »