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
Links
- 230000000875 corresponding Effects 0.000 claims 46
- 230000004044 response Effects 0.000 claims 5
- 230000002093 peripheral Effects 0.000 claims 3
- 230000000903 blocking Effects 0.000 claims 1
- 238000000034 method Methods 0.000 claims 1
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) вычисляют локальные переменные.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2450330C2 (ru) * | 2006-06-19 | 2012-05-10 | Дискипер Корпорейшн | Аппаратно-реализуемый способ выполнения программ |
Families Citing this family (68)
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)
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 |
-
2000
- 2000-11-24 US US09/721,695 patent/US7234139B1/en not_active Expired - Fee Related
-
2001
- 2001-10-26 WO PCT/US2001/051441 patent/WO2003007105A2/en active IP Right Grant
- 2001-10-26 EP EP01274262A patent/EP1364284A4/en not_active Withdrawn
- 2001-10-26 AU AU2001297946A patent/AU2001297946B2/en not_active Expired - Fee Related
- 2001-10-26 IL IL15607501A patent/IL156075A0/xx active IP Right Grant
- 2001-10-26 JP JP2003512804A patent/JP4213582B2/ja not_active Expired - Fee Related
- 2001-10-26 NZ NZ526626A patent/NZ526626A/xx unknown
- 2001-10-26 CA CA002429966A patent/CA2429966A1/en not_active Abandoned
- 2001-10-26 MX MXPA03004581A patent/MXPA03004581A/es active IP Right Grant
- 2001-10-26 CN CNB018218555A patent/CN1316357C/zh not_active Expired - Fee Related
- 2001-10-26 RU RU2003118641/09A patent/RU2286595C2/ru active
-
2003
- 2003-05-22 IL IL156075A patent/IL156075A/en not_active IP Right Cessation
Cited By (1)
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) | 一种多线程控制方法、装置、设备和存储介质 |