RU2003118641A - Реализация компьютерной многозадачности через виртуальную организацию поточной обработки - Google Patents

Реализация компьютерной многозадачности через виртуальную организацию поточной обработки

Info

Publication number
RU2003118641A
RU2003118641A RU2003118641/09A RU2003118641A RU2003118641A RU 2003118641 A RU2003118641 A RU 2003118641A RU 2003118641/09 A RU2003118641/09 A RU 2003118641/09A RU 2003118641 A RU2003118641 A RU 2003118641A RU 2003118641 A RU2003118641 A RU 2003118641A
Authority
RU
Russia
Prior art keywords
virtual
threads
list
virtual threads
stream
Prior art date
Application number
RU2003118641/09A
Other languages
English (en)
Other versions
RU2286595C2 (ru
Inventor
Мэттью А. ФАЙНБЕРГ
Original Assignee
Катарон Продакшнз, Инк.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/721,695 external-priority patent/US7234139B1/en
Application filed by Катарон Продакшнз, Инк. filed Critical Катарон Продакшнз, Инк.
Publication of RU2003118641A publication Critical patent/RU2003118641A/ru
Application granted granted Critical
Publication of RU2286595C2 publication Critical patent/RU2286595C2/ru

Links

Claims (45)

1. Способ работы компьютера, содержащий этапы, в соответствии с которыми сохраняют в памяти компьютера множество команд псевдокода, причем по меньшей мере некоторые из команд псевдокода содержат множество команд в кодах машины, для каждого из множества задач или заданий, которые должны быть выполнены с помощью компьютера, автоматически создают соответствующий виртуальный поток данных контекста выполнения, включающий в себя (a) местоположение в памяти очередной из команд псевдокода, которые должны быть выполнены при выполнении соответствующей задачи или задания, и (b) значения любых локальных переменных, требуемых для выполнения соответствующей задачи или задания, при этом множество задач или задания, каждая из которых влечет за собой выполнение соответствующей одной из команд псевдокода, содержит множество команд на машинном языке, обрабатывают каждую из задач или заданий в соответствующей последовательности квантов времени или интервалов времени обработки под управлением соответствующего виртуального потока и при каждом контекстном переключении между различными виртуальными потоками предпринимают такое контекстное переключение только после завершения выполнения одной из команд псевдокода, выполняющейся в текущий момент времени.
2. Способ по п.1, по которому каждый из виртуальных потоков является частью соответствующего связанного списка виртуальных потоков, при этом каждый из виртуальных потоков дополнительно включает в себя указатель на следующий виртуальный поток в соответствующем связанном списке, дополнительно содержащий этап, в соответствии с которым для каждого контекстного переключения между различными виртуальными потоками обращаются к указателю выполняемого виртуального потока для того, чтобы определить идентификационные данные следующего виртуального потока, который должен выполняться.
3. Способ по п.2, по которому соответствующий связанный список является одним из множества связанных списков виртуальных потоков, при этом один из связанных списков представляет собой список неактивных виртуальных потоков, другой из связанных списков представляет собой список активных виртуальных потоков, следующий один из связанных списков представляет собой список поставленных в очередь виртуальных потоков, дополнительно содержащий этап, в соответствии с которым периодически перемещают по меньшей мере один виртуальный поток из списка поставленных в очередь виртуальных потоков в список активных виртуальных потоков.
4. Способ по п.3, по которому этап перемещения виртуального потока из списка поставленных в очередь виртуальных потоков в список активных виртуальных потоков включает в себя подэтапы, в соответствии с которыми устанавливают флаг для блокировки списка поставленных в очередь виртуальных потоков, затем изменяют указатели в (i) перемещенном виртуальном потоке, (ii), по меньшей мере в одном виртуальном потоке, который изначально находился в списке активных виртуальных потоков, и (iii) по меньшей мере в одном виртуальном потоке, который остается в списке поставленных в очередь виртуальных потоков, и после этого сбрасывают или разблокируют флаг для того, чтобы получить доступ к списку поставленных в очередь виртуальных потоков.
5. Способ по п.1, по которому каждый из виртуальных потоков дополнительно включает в себя флаг, дополнительно содержащий этапы, в соответствии с которыми устанавливают флаг выбранного одного из виртуальных потоков, затем изменяют данные в выбранном одном из виртуальных потоков и после этого сбрасывают или разблокируют флаг, чтобы разрешить доступ к выбранному одному из виртуальных потоков.
6. Способ по п.5, по которому установку флага выбранного одного из виртуальных потоков, изменение данных и сброс или разблокировку флага выбранного одного из виртуальных потоков выполняют в ответ на сообщение из другого одного из виртуальных потоков.
7. Способ по п.5, по которому каждый из виртуальных потоков является частью соответствующего связанного списка виртуальных потоков, при этом каждый из виртуальных потоков дополнительно включает в себя указатель на следующий виртуальный поток в соответствующем связанном списке, изменение данных включает в себя изменение указателя выбранного одного из виртуальных потоков.
8. Способ по п.1, по которому каждому из виртуальных потоков назначается очередь сообщения, дополнительно содержащий ввод сообщения в очередь сообщений выбранного одного из виртуальных потоков во время выполнения задачи или задания в соответствии с другим одним из виртуальных потоков.
9. Способ по п.8, по которому упомянутый выбранный один из виртуальных потоков и упомянутый другой один из виртуальных потоков соответствуют соответствующим задачам или заданиям, полученным из различных прикладных программ, посредством чего при вводе сообщения в очередь сообщений выбранного одного из виртуальных потоков осуществляется передача данных между различными прикладными программами.
10. Способ по п.8, по которому выбранный один из виртуальных потоков и другой один из виртуальных потоков являются промежуточными (прокси-) или интерфейсными потоками на различных компьютерах, при этом ввод сообщения в очередь сообщений включает в себя передачу упомянутого сообщения по линии связи между компьютерами.
11. Способ по п.1, по которому создание виртуальных потоков, обработка задач или заданий в соответствующей последовательности квантов времени или интервалов времени обработки и совершение контекстных переключений включают в себя работу компьютера согласно программе интерпретатора.
12. Способ по п.11, дополнительно содержащий этап выполнения множества экземпляров программы интерпретатора на компьютере, причем каждый экземпляр соответствует собственному потоку, при этом каждый собственный поток создает соответствующий набор виртуальных потоков данных контекста выполнения, обрабатывает каждое множество задач или заданий в соответствующей последовательности квантов времени или интервалов времени обработки под управлением соответствующего виртуального потока и в каждом контекстном переключении между различными виртуальными потоками предпринимает такое контекстное переключение только после завершения выполнения выполняемой в текущий момент времени одной из команд псевдокода.
13. Способ по п.12, дополнительно содержащий перемещение виртуального потока из первого собственного потока, имеющего загрузку выше среднего уровня, во второй собственный поток, имеющий загрузку ниже среднего уровня.
14. Способ по п.13, по которому перемещение виртуального потока включает в себя этапы, в соответствии с которыми определение средней загрузки во всех собственных потоках путем суммирования значений загрузки потока для собственных потоков и деления на число потоков и для каждого из собственных потоков сравнение соответствующего значения загрузки потока со средней загрузкой для определения относительной загрузки.
15. Способ по п.1, по которому виртуальные потоки включают в себя первый промежуточный поток для поддержания обмена со вторым промежуточным потоком на другом компьютере через линию связи компьютерной сети, обработку обмена с другим компьютером, включающую в себя использование стандартных сетевых протоколов под управлением первого промежуточного потока.
16. Способ по п.15, по которому каждому из виртуальных потоков, включающих в себя первый промежуточный поток, назначается соответствующая очередь сообщений, дополнительно содержащий ввод сообщения в очередь сообщений первого промежуточного потока для выполнения передачи данных в другой компьютер по линии связи компьютерной сети.
17. Способ по п.1, по которому выбранный один из виртуальных потоков находится в неактивном состоянии, дополнительно содержащий этапы, в соответствии с которыми формируют сообщение в ответ на ввод из источника, расположенного вне компьютера, вставляют сообщение в очередь сообщений для выбранного одного из виртуальных потоков, переводят выбранный один из виртуальных потоков из неактивного состояния в активное состояние и после этого вставляют сообщения в очередь сообщений и изменяют состояние выбранного одного из виртуальных потоков, осуществляют доступ к очереди сообщений для получения сообщения во время кванта времени или интервала времени обработки, назначенного выбранному одному из виртуальных потоков.
18. Способ по п.1, по которому каждый из виртуальных потоков дополнительно включает в себя приоритет потока, дополнительно содержащий автоматическое обращение к приоритетам потока в множестве виртуальных потоков для определения относительных приоритетов и изменения последовательности потоков в соответствии с определенными относительными приоритетами.
19. Способ по п.1, по которому задачи или задания, обработанные в соответствующей последовательности квантов времени или интервалов времени обработки под управлением соответствующих виртуальных потоков, включают в себя этапы в соответствии с которыми управляют объектами, которые отображаются на устройстве отображения компьютера, при этом каждый из объектов относится к отдельной задаче или заданию, назначенному соответствующему одному из виртуальных потоков, и контролируют срабатывание клавиш на клавиатуре компьютера, при этом каждая из клавиш относится к отдельной задаче или заданию, назначенному соответствующему одному из виртуальных потоков.
20. Способ по п.1, по которому кванты времени или интервалы времени обработки измеряют путем подсчета последовательно выполненных команд псевдокода, дополнительно содержит этап, в соответствии с которым для каждого из множества квантов времени или интервалов времени обработки завершают соответствующий квант времени или интервал времени обработки после подсчета предопределенного числа или последовательно выполненных команд псевдокода.
21. Многозадачный компьютер, содержащий память, устройство отображения, периферийное устройство ввода, по меньшей мере один процессор, оперативно подсоединенный к памяти, устройству отображения и внешнему устройству ввода, при этом процессор имеет компилятор для преобразования команд исходного кода, введенного оператором, в байт-коды или команды псевдокода, причем компилятор оперативно связан с памятью для обеспечения возможности хранения в ней байт-кода или команд псевдокода, и интерпретатор для выполнения байт-кода или команд псевдокода, при этом память хранит первый связанный список неактивных виртуальных потоков, второй связанный список активных виртуальных потоков и третий связанный список поставленных в очередь или ожидающих виртуальных потоков, причем каждый из потоков включает в себя контекст или данные состояния, флаг и указатель на следующий поток в соответствующем списке, интерпретатор оперативно подсоединен к периферийному устройству ввода для распознавания события, сформированного периферийным устройством ввода, при этом интерпретатор оперативно подсоединен к памяти (a) для перемещения по меньшей мере одного из неактивных виртуальных потоков из первого связанного списка в третий связанный список, (b) для перемещения поставленных в очередь или ожидающих виртуальных потоков из третьего связанного списка во второй связанный список, (c) для выполнения команд в соответствии с контекстом и данными состояния различных виртуальных потоков во втором связанном списке в последовательных квантах времени или интервалах времени обработки в соответствии с предопределенным списком приоритетов, при этом интерпретатор оперативно подсоединен к устройству отображения, в частности, для изменения объекта на устройстве отображения в ответ на команды, определенные соответствующим активным виртуальным потоком во втором связанном списке.
22. Компьютер по п.21, в котором память дополнительно хранит четвертый связанный список собственных потоков, интерпретатор представляет собой один из множества экземпляров общего интерпретатора, причем каждый из экземпляров общего интерпретатора соответствует соответствующему одному из собственных потоков, второй связанный список является одним из множества связанных списков активных потоков, при этом каждый из собственных потоков связан с помощью соответствующего указателя с соответствующим одним из связанных списков активных потоков, и третий связанный список является одним из множества связанных списков поставленных в очередь потоков, причем каждый из собственных потоков связан с помощью соответствующего указателя с соответствующим одним из связанных списков поставленных в очередь потоков.
23. Компьютер по п.22, в котором каждый активный поток включает в себя флаг для разрешения блокировки соответствующего потока с помощью одного собственного потока для предотвращения доступа к соответствующему потоку другими собственными потоками.
24. Способ по п.22, по которому интерпретатор включает в себя средство, выполняющее перемещение виртуального потока из первого собственного потока, имеющего загрузку выше среднего уровня, во второй собственный поток, имеющий загрузку ниже среднего уровня.
25. Компьютер по п.21, в котором список неактивных виртуальных потоков включает в себя множество потоков, назначенных соответствующим клавишам клавиатуры для обработки срабатываний соответствующих клавиш.
26. Компьютер по п.21, в котором список неактивных потоков включает в себя множество потоков, назначенных соответствующим объектам в изображении на устройстве отображения для обработки изменений во внешнем виде соответствующих объектов.
27. Компьютер по п.21, в котором интерпретатор включает в себя модуль контекстного переключения и счетчик команд, причем модуль контекстного переключения оперативно подсоединен к памяти и счетчику команд для выполнения контекстного переключения от выполняемого в текущий момент времени активного потока второго связанного списка на следующий активный поток во втором связанном списке после выполнения предопределенного числа команд байт-кода или псевдокода в соответствии с выполняемым в текущий момент времени активным потоком.
28. Компьютер по п.21, в котором каждый из виртуальных потоков включает в себя местоположение в памяти следующей команды для выполнения в соответствующем потоке, значения любых локальных переменных для соответствующего потока и приоритет выполнения для соответствующего потока.
29. Компьютер по п.21, в котором память хранит множество очередей сообщений, назначенных соответствующим из потоков.
30. Компьютер по п.21, в котором память хранит по меньшей мере один промежуточный или интерфейсный поток, имеющий контекст выполнения для поддержания связи с удаленным компьютером через линию связи, при этом промежуточный или интерфейсный поток содержит адрес памяти, указывающий программу сетевого протокола.
31. Многозадачный способ в компьютере, имеющем интерпретатор для выполнения последовательности команд байт-кода, каждая из которых состоит из многочисленных этапов машинных кодов, содержащий для каждой задачи из множества задач, которые должны выполняться на компьютере, используют интерпретатор для определения соответствующего виртуального потока, во время каждого кванта времени из ряда последовательных квантов времени выполняют команды байт-кода соответствующего текущего потока, выбранного из числа виртуальных потоков, и выполняют контекстное переключение с одного из виртуальных потоков на другой из виртуальных потоков только после выполнения одной из команд байт-кода.
32. Способ по п.31, по которому каждый из виртуальных потоков является частью соответствующего связанного списка виртуальных потоков, при этом каждый из виртуальных потоков дополнительно включает в себя указатель на следующий виртуальный поток в соответствующем связанном списке, дополнительно содержащий этап, в соответствии с которым для каждого контекстного переключения между различными виртуальными потоками обращаются к указателю выполняющегося в текущий момент времени виртуального потока для определения идентификационной информации следующего виртуального потока, который должен выполняться.
33. Способ по п.32, по которому соответствующий связанный список является одним из множества связанных списков виртуальных потоков, при этом один из связанных списков представляет собой список неактивных виртуальных потоков, другой из связанных списков представляет собой список активных виртуальных потоков, следующий один из связанных списков представляет собой список поставленных в очередь виртуальных потоков, дополнительно содержащий периодическое перемещение по меньшей мере одного виртуального потока из списка поставленных в очередь виртуальных потоков в список активных виртуальных потоков.
34. Способ по п.33, по которому перемещение виртуального потока из списка поставленных в очередь виртуальных потоков в список активных виртуальных потоков включает в себя этапы, в соответствии с которыми устанавливают флаг для блокировки списка поставленных в очередь виртуальных потоков, затем изменяют указатели в (i) перемещенном виртуальном потоке, (ii), по меньшей мере в одном виртуальном потоке сначала в списке активных виртуальных потоков и (iii) по меньшей мере в одном виртуальном потоке, оставшемся в списке поставленных в очередь виртуальных потоков, и после этого выполняют сброс или разблокировку флага для того, чтобы разрешить доступ к списку поставленных в очередь виртуальных потоков.
35. Способ по п.31, по которому каждый из виртуальных потоков дополнительно включает в себя флаг, дополнительно содержащий этапы, в соответствии с которыми устанавливают флаг выбранного одного из виртуальных потоков, затем изменяют данные в выбранном одном из виртуальных потоков и после этого выполняют сброс или разблокировку флага для того, чтобы разрешить доступ к выбранному одному из виртуальных потоков.
36. Способ по п.35, по которому установку флага выбранного одного из виртуальных потоков, изменение данных и сброс или разблокировку флага выбранного одного из виртуальных потоков выполняют в ответ на сообщение от другого одного из виртуальных потоков.
37. Способ по п.31, по которому каждому из виртуальных потоков назначается очередь сообщений, дополнительно содержащий ввод сообщения в очередь сообщения выбранного одного из виртуальных потоков во время выполнения задачи или задания в соответствии с другим одним из виртуальных потоков.
38. Способ по п.31, по которому виртуальные потоки включают в себя первый промежуточный поток для поддержания связи со вторым промежуточным потоком на другом компьютере через линию связи, дополнительно содержащий обработку команд байт-кода согласно первому промежуточному потоку для передачи сообщения во второй промежуточный поток по линии связи.
39. Способ по п.31, по которому каждый из виртуальных потоков дополнительно включает в себя приоритет потока, дополнительно содержащий автоматическое обращение к приоритетам потока в множестве виртуальных потоков для определения относительных приоритетов и изменение последовательности потоков в соответствии с определенными относительными приоритетами.
40. Способ по п.31, по которому кванты времени или интервалы времени обработки измеряют путем подсчета последовательно выполненных команд псевдокода, дополнительно содержащий для каждого множества квантов времени или интервалов времени обработки, завершение соответствующего кванта времени или интервала времени обработки после подсчета предопределенного числа последовательно выполненных команд псевдокода.
41. Многозадачный компьютер, содержащий память, хранящую состояние и контекстные данные многочисленных потоков или задач, интерпретатор для выполнения последовательности команд байт-кода, каждая из которых состоит из множества этапов машинных кодов, при этом интерпретатор запрограммирован на определение соответствующего виртуального потока для каждой задачи, которая должна выполняться с помощью компьютера, на выполнение команд байт-кода соответствующего текущего потока, выбранного из числа виртуальных потоков во время каждого кванта времени из ряда последовательных квантов времени, и на выполнение контекстного переключения с одного из виртуальных потоков на другой из виртуальных потоков только после выполнения одной из команд байт-кода.
42. Компьютер по п.41, в котором каждый из виртуальных потоков является частью соответствующего связанного списка виртуальных потоков, при этом каждый из виртуальных потоков дополнительно включает в себя указатель на следующий виртуальный поток в соответствующем связанном списке, причем интерпретатор дополнительно запрограммирован на обращение для каждого контекстного переключения между различными виртуальными потоками, к указателю выполняемого в текущий момент времени виртуального потока для определения идентификационной информации следующего виртуального потока, который должен выполняться.
43. Компьютер по п.42, в котором соответствующий связанный список представляет собой один из множества связанных списков виртуальных потоков, один из связанных списков представляет собой один список неактивных виртуальных потоков, другой из связанных списков представляет собой список активных виртуальных потоков, другой один из связанных списков представляет собой список поставленных в очередь виртуальных потоков, при этом интерпретатор дополнительно запрограммирован на периодическое перемещение по меньшей мере одного из виртуальных потоков из списка поставленных в очередь виртуальных потоков в список активных виртуальных потоков.
44. Компьютерный способ, содержащий этапы, в соответствии с которыми осуществляют запуск таймера компьютера для формирования последовательности квантов времени или интервалов времени обработки, компилируют входной пользовательский исходный код в команды байт-кода или псевдокода, каждая из которых соответствует множеству команд машинного кода, обеспечивают работу интерпретатора компьютера для назначения вычислительных задач соответствующим виртуальным потокам, назначают вычислительные задачи виртуальным потокам, включая идентификацию и сохранение состояния и контекстных данных для каждой из вычислительных задач, в каждом из квантов времени дополнительно обеспечивают работу интерпретатора для выполнения выбранных одних из команд байт-кода или псевдокода в соответствии с состоянием и контекстными данными текущего одного из виртуальных потоков, после выполнения каждой последующей одной из выбранных команд байт-кода или псевдокода и только после такого выполнения дополнительно обеспечивают работу интерпретатора для проверки того, истек ли предопределенный интервал, начиная с момента выполнения команд в соответствии с текущим одним из виртуальных потоков, и после определения истечения предопределенного интервала обеспечивают работу интерпретатора для выполнения контекстного переключения.
45. Способ по п.44, по которому задачи, назначенные соответствующим одним из виртуальных программных потоков, включают в себя этапы, в соответствии с которыми (a) управляют объектами, появляющимися в изображении на экране устройства отображения, (b) контролируют ввод оператора, (c) выполняют программу прикладных программ, (d) выполняют программы компьютерной поддержки, (e) осуществляют связь с удаленными компьютерами через компьютерную сеть и (f) вычисляют локальные переменные.
RU2003118641/09A 2000-11-24 2001-10-26 Реализация компьютерной многозадачности через виртуальную организацию поточной обработки RU2286595C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/721,695 2000-11-24
US09/721,695 US7234139B1 (en) 2000-11-24 2000-11-24 Computer multi-tasking via virtual threading using an interpreter

Publications (2)

Publication Number Publication Date
RU2003118641A true RU2003118641A (ru) 2004-12-10
RU2286595C2 RU2286595C2 (ru) 2006-10-27

Family

ID=24898939

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2003118641/09A RU2286595C2 (ru) 2000-11-24 2001-10-26 Реализация компьютерной многозадачности через виртуальную организацию поточной обработки

Country Status (11)

Country Link
US (1) US7234139B1 (ru)
EP (1) EP1364284A4 (ru)
JP (1) JP4213582B2 (ru)
CN (1) CN1316357C (ru)
AU (1) AU2001297946B2 (ru)
CA (1) CA2429966A1 (ru)
IL (2) IL156075A0 (ru)
MX (1) MXPA03004581A (ru)
NZ (1) NZ526626A (ru)
RU (1) RU2286595C2 (ru)
WO (1) WO2003007105A2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2450330C2 (ru) * 2006-06-19 2012-05-10 Дискипер Корпорейшн Аппаратно-реализуемый способ выполнения программ

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6824064B2 (en) 2000-12-06 2004-11-30 Mobile-Mind, Inc. Concurrent communication with multiple applications on a smart card
US7461148B1 (en) * 2001-02-16 2008-12-02 Swsoft Holdings, Ltd. Virtual private server with isolation of system components
US20050108711A1 (en) * 2003-11-13 2005-05-19 Infineon Technologies North America Corporation Machine instruction for enhanced control of multiple virtual processor systems
US9098340B2 (en) * 2003-12-08 2015-08-04 Teradata Us, Inc. Virtual regulator for a database system
US20050251804A1 (en) * 2004-05-04 2005-11-10 International Business Machines Corporation Method, data processing system, and computer program product for detecting shared resource usage violations
US7617497B1 (en) * 2004-08-30 2009-11-10 Sun Microsystems, Inc. Method and system for creating and using storage threads
US20060235927A1 (en) * 2005-04-19 2006-10-19 Bhakta Dharmesh N System and method for synchronizing distributed data streams for automating real-time navigation through presentation slides
US7730491B2 (en) * 2005-08-30 2010-06-01 Intel Corporation Fair scalable reader-writer mutual exclusion
RU2312388C2 (ru) * 2005-09-22 2007-12-10 Андрей Игоревич Ефимов Способ организации многопроцессорной эвм
JP4557949B2 (ja) * 2006-04-10 2010-10-06 富士通株式会社 資源ブローカリングプログラム、該プログラムを記録した記録媒体、資源ブローカリング装置、および資源ブローカリング方法
RU2320002C2 (ru) * 2006-04-18 2008-03-20 Общество с ограниченной ответственностью "Юникор микросистемы" Способ переключения контекста задач и процедур в процессоре
CN101098527B (zh) * 2006-06-27 2012-06-13 雅斯拓(北京)智能卡科技有限公司 同时处理个人令牌中的数据传输会话的线程控制器
US7975272B2 (en) 2006-12-30 2011-07-05 Intel Corporation Thread queuing method and apparatus
US8321849B2 (en) * 2007-01-26 2012-11-27 Nvidia Corporation Virtual architecture and instruction set for parallel thread computing
US8024731B1 (en) * 2007-04-25 2011-09-20 Apple Inc. Assigning priorities to threads of execution
US20080313647A1 (en) * 2007-06-18 2008-12-18 Microsoft Corporation Thread virtualization techniques
JPWO2009022371A1 (ja) 2007-08-16 2010-11-04 ネットクリアスシステムズ株式会社 タスク処理装置
US20090100435A1 (en) * 2007-10-11 2009-04-16 Microsoft Corporation Hierarchical reservation resource scheduling infrastructure
US8539485B2 (en) * 2007-11-20 2013-09-17 Freescale Semiconductor, Inc. Polling using reservation mechanism
WO2009101563A1 (en) * 2008-02-11 2009-08-20 Nxp B.V. Multiprocessing implementing a plurality of virtual processors
US8561072B2 (en) * 2008-05-16 2013-10-15 Microsoft Corporation Scheduling collections in a scheduler
US8650570B2 (en) * 2008-06-02 2014-02-11 Microsoft Corporation Method of assigning instructions in a process to a plurality of scheduler instances based on the instruction, in which each scheduler instance is allocated a set of negoitaited processor resources
US9417914B2 (en) * 2008-06-02 2016-08-16 Microsoft Technology Licensing, Llc Regaining control of a processing resource that executes an external execution context
US8312230B2 (en) 2008-06-06 2012-11-13 International Business Machines Corporation Dynamic control of partition memory affinity in a shared memory partition data processing system
US9027027B2 (en) * 2008-06-09 2015-05-05 Microsoft Technology Licensing, Llc Thread management based on device power state
US7921195B2 (en) * 2008-06-09 2011-04-05 International Business Machines Corporation Optimizing service processing based on business information, operational intelligence, and self-learning
JP5330384B2 (ja) * 2008-06-25 2013-10-30 パナソニック株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US8266394B2 (en) * 2008-07-14 2012-09-11 International Business Machines Corporation Methods for single-owner multi-consumer work queues for repeatable tasks
DE102009055752A1 (de) * 2009-11-25 2011-05-26 Robert Bosch Gmbh Verfahren zum Ermöglichen einer sequentiellen, nicht blockierenden Abarbeitung von Anweisungen in nebenläufigen Tasks in einer Steuereinrichtung
TWI486966B (zh) * 2010-02-04 2015-06-01 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與寫入管理方法
CN101976208B (zh) * 2010-10-25 2014-08-13 中兴通讯股份有限公司 信息投递的方法和装置
FR2969787B1 (fr) * 2010-12-24 2013-01-18 Morpho Protection des applets
US9218186B2 (en) * 2011-09-01 2015-12-22 International Business Machines Corporation Software compiler generated threaded environment
US9507638B2 (en) * 2011-11-08 2016-11-29 Nvidia Corporation Compute work distribution reference counters
FR2984554B1 (fr) * 2011-12-16 2016-08-12 Sagemcom Broadband Sas Bus logiciel
CN102567111B (zh) * 2011-12-23 2017-10-27 融创天下(上海)科技发展有限公司 一种异步过程调用的方法、系统和终端设备
US9110878B2 (en) * 2012-01-18 2015-08-18 International Business Machines Corporation Use of a warning track interruption facility by a program
US9104508B2 (en) * 2012-01-18 2015-08-11 International Business Machines Corporation Providing by one program to another program access to a warning track facility
US9274819B2 (en) * 2013-03-19 2016-03-01 Hewlett Packard Enterprise Development Lp Performing garbage collection using a virtual thread in operating system without kernel thread support
RU2598988C2 (ru) * 2013-08-07 2016-10-10 Фиизер Инк. Способы и системы для поиска прикладных программ
CN103731356B (zh) * 2013-12-09 2017-05-24 福建星网锐捷网络有限公司 报文处理方法及装置
CN103701709B (zh) * 2013-12-13 2015-07-01 北京京东尚科信息技术有限公司 一种流量控制方法及系统
FR3015067B1 (fr) * 2013-12-18 2017-03-17 Krono Safe Procede de composition et d'execution d'un plan de sequencement de taches temps-reel
US9645980B1 (en) 2014-03-19 2017-05-09 Google Inc. Verification of native applications for indexing
US9921848B2 (en) * 2014-03-27 2018-03-20 International Business Machines Corporation Address expansion and contraction in a multithreading computer system
US9354883B2 (en) * 2014-03-27 2016-05-31 International Business Machines Corporation Dynamic enablement of multithreading
US9772867B2 (en) * 2014-03-27 2017-09-26 International Business Machines Corporation Control area for managing multiple threads in a computer
US9524347B1 (en) 2014-04-01 2016-12-20 Google Inc. Automatically implementing an application in response to a search query
US9513961B1 (en) * 2014-04-02 2016-12-06 Google Inc. Monitoring application loading
US9348646B1 (en) * 2014-09-22 2016-05-24 Amazon Technologies, Inc. Reboot-initiated virtual machine instance migration
US9552223B2 (en) * 2014-09-30 2017-01-24 International Business Machines Corporation Post-return asynchronous code execution
US9367344B2 (en) * 2014-10-08 2016-06-14 Cisco Technology, Inc. Optimized assignments and/or generation virtual machine for reducer tasks
US9684546B2 (en) * 2014-12-16 2017-06-20 Microsoft Technology Licensing, Llc Job scheduling and monitoring in a distributed computing environment
CN104598563B (zh) * 2015-01-08 2018-09-04 北京京东尚科信息技术有限公司 高并发数据存储方法及装置
US10248463B2 (en) * 2015-02-13 2019-04-02 Honeywell International Inc. Apparatus and method for managing a plurality of threads in an operating system
JP6447217B2 (ja) * 2015-02-17 2019-01-09 富士通株式会社 実行情報通知プログラム、情報処理装置および情報処理システム
US10073714B2 (en) 2015-03-11 2018-09-11 Western Digital Technologies, Inc. Task queues
US9846589B2 (en) 2015-06-04 2017-12-19 Cisco Technology, Inc. Virtual machine placement optimization with generalized organizational scenarios
US10069949B2 (en) 2016-10-14 2018-09-04 Honeywell International Inc. System and method for enabling detection of messages having previously transited network devices in support of loop detection
US11150943B2 (en) * 2017-04-10 2021-10-19 Intel Corporation Enabling a single context hardware system to operate as a multi-context system
CN107678701A (zh) * 2017-06-12 2018-02-09 平安科技(深圳)有限公司 单证打印的装置、方法及计算机可读存储介质
US10459751B2 (en) * 2017-06-30 2019-10-29 ATI Technologies ULC. Varying firmware for virtualized device
US10810086B2 (en) 2017-10-19 2020-10-20 Honeywell International Inc. System and method for emulation of enhanced application module redundancy (EAM-R)
US10783026B2 (en) 2018-02-15 2020-09-22 Honeywell International Inc. Apparatus and method for detecting network problems on redundant token bus control network using traffic sensor
CN108446147B (zh) * 2018-03-23 2021-01-12 携程旅游网络技术(上海)有限公司 移动终端的多线程计算方法及系统
IL279479B2 (en) * 2018-07-02 2024-09-01 Drivenets Ltd A system that implements multi-process uses
US11210816B1 (en) * 2018-08-28 2021-12-28 Apple Inc. Transitional effects in real-time rendering applications
CN111324438B (zh) * 2020-02-18 2023-09-19 北京嘀嘀无限科技发展有限公司 请求的调度方法、装置、存储介质及电子设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4744048A (en) * 1985-10-09 1988-05-10 American Telephone And Telegraph Company Display context switching arrangement
US6226789B1 (en) 1996-01-29 2001-05-01 Compaq Computer Corporation Method and apparatus for data flow analysis
US6766515B1 (en) * 1997-02-18 2004-07-20 Silicon Graphics, Inc. Distributed scheduling of parallel jobs with no kernel-to-kernel communication
US6269391B1 (en) 1997-02-24 2001-07-31 Novell, Inc. Multi-processor scheduling kernel
US5907702A (en) * 1997-03-28 1999-05-25 International Business Machines Corporation Method and apparatus for decreasing thread switch latency in a multithread processor
US6240440B1 (en) 1997-06-30 2001-05-29 Sun Microsystems Incorporated Method and apparatus for implementing virtual threads
US6233599B1 (en) * 1997-07-10 2001-05-15 International Business Machines Corporation Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers
US6282701B1 (en) 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs
US6260150B1 (en) * 1998-03-10 2001-07-10 Agere Systems Guardian Corp. Foreground and background context controller setting processor to power saving mode when all contexts are inactive
US6141732A (en) 1998-03-24 2000-10-31 Novell, Inc. Burst-loading of instructions into processor cache by execution of linked jump instructions embedded in cache line size blocks
US6289446B1 (en) 1998-09-29 2001-09-11 Axis Ab Exception handling utilizing call instruction with context information

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2450330C2 (ru) * 2006-06-19 2012-05-10 Дискипер Корпорейшн Аппаратно-реализуемый способ выполнения программ

Similar Documents

Publication Publication Date Title
RU2003118641A (ru) Реализация компьютерной многозадачности через виртуальную организацию поточной обработки
RU2286595C2 (ru) Реализация компьютерной многозадачности через виртуальную организацию поточной обработки
US8006247B2 (en) Multi-tasking real-time operating system for microprocessors with limited memory
AU2001297946A1 (en) Computer multi-tasking via virtual threading
JP3863917B2 (ja) リアルタイム非同期ソフトウェア・アプリケーションにおいて階層呼び出し構造を実施する方法
US7962913B2 (en) Scheduling threads in a multiprocessor computer
US7831980B2 (en) Scheduling threads in a multi-processor computer
KR100221374B1 (ko) 이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 그의 방법과 저장장치
JP2005536791A (ja) 動的多重レベルタスク管理方法及び装置
CN102105871A (zh) 虚拟处理设备的中断控制
US20080244592A1 (en) Multitask processing device and method
CN100492298C (zh) 调度驱动程序为不产生中断的设备实现使用时间估计的协议的方法和装置
CN115453967A (zh) 一种PLCopen单轴运动控制功能块的调度执行方法
KR19980079668A (ko) 병렬 데이타 처리 시스템 및 그 제어 방법
AU2007200660B2 (en) Computer Multi-Tasking via Virtual Threading
Nosrati et al. Task scheduling algorithms introduction
US9223637B1 (en) Method and apparatus to advise spin and yield decisions
EP1406172A2 (en) System and method for task arbitration in multi-threaded simulations
Dix Exceptions and Interrupts in CSP
Sztrik et al. A Tool for Simulation of Markov Modulated Finite-Source Queueing Systems.
Minin Unified Processing of Events and Co-routines in Embedded Program
Sztrik Simulation of machine interference in randomly changing environments
Cataldi Guide to the AMIKaya Operating System Project
JP2000250777A (ja) 情報処理装置と情報処理方法、及び記憶媒体
CN115080155A (zh) 一种多线程控制方法、装置、设备和存储介质