RU2010149255A - Экземпляры планировщика в процессе - Google Patents

Экземпляры планировщика в процессе Download PDF

Info

Publication number
RU2010149255A
RU2010149255A RU2010149255/08A RU2010149255A RU2010149255A RU 2010149255 A RU2010149255 A RU 2010149255A RU 2010149255/08 A RU2010149255/08 A RU 2010149255/08A RU 2010149255 A RU2010149255 A RU 2010149255A RU 2010149255 A RU2010149255 A RU 2010149255A
Authority
RU
Russia
Prior art keywords
scheduler
instance
tasks
task
processor
Prior art date
Application number
RU2010149255/08A
Other languages
English (en)
Other versions
RU2530345C2 (ru
Inventor
Пол РИНГСЕТ (US)
Пол РИНГСЕТ
Женевьев ФЕРНАНДЕС (US)
Женевьев ФЕРНАНДЕС
Никлас ГУСТАФССОН (US)
Никлас ГУСТАФССОН
Рик МОЛЛОЙ (US)
Рик МОЛЛОЙ
Рахул ПАТИЛ (US)
Рахул Патил
Филип ЛЬЮСИДО (US)
Филип ЛЬЮСИДО
Original Assignee
Майкрософт Корпорейшн (Us)
Майкрософт Корпорейшн
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
Application filed by Майкрософт Корпорейшн (Us), Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн (Us)
Publication of RU2010149255A publication Critical patent/RU2010149255A/ru
Application granted granted Critical
Publication of RU2530345C2 publication Critical patent/RU2530345C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

1. Машиночитаемый носитель (104) данных, хранящий исполняемые на компьютере команды, которые при их исполнении компьютерной системой (100) выполняют способ, содержащий этапы, на которых: ! создают первый экземпляр (22) планировщика с помощью команд, исполняемых компьютерной системой, чтобы заставить первый набор задач (36/40/42) процесса (12) исполняться компьютерной системой; и ! создают второй экземпляр (22) планировщика (22) с помощью команд, исполняемых компьютерной системой, чтобы заставить второй набор задач (36/40/42) процесса исполняться компьютерной системой. ! 2. Машиночитаемый носитель данных по п.1, в котором способ дополнительно содержит этапы, на которых: ! распределяют первому экземпляру планировщика первое множество виртуальных процессоров (32), чтобы представлять первое подмножество процессорных ресурсов компьютерной системы; и ! распределяют второму экземпляру планировщика второе множество виртуальных процессоров (32), чтобы представлять второе подмножество процессорных ресурсов компьютерной системы. ! 3. Машиночитаемый носитель данных по п.2, в котором способ дополнительно содержит этапы, на которых: ! сопоставляют первое множество виртуальных процессоров с первым множеством аппаратных потоков (16), чтобы заставить первое множество задач исполняться посредством первого множества аппаратных потоков; и ! сопоставляют второе множество виртуальных процессоров со вторым множеством аппаратных потоков (16), чтобы заставить второе множество задач исполняться посредством второго множества аппаратных потоков. ! 4. Машиночитаемый носитель данных по п.1, в котором создание второго экземпляра планировщика содержит э�

Claims (15)

1. Машиночитаемый носитель (104) данных, хранящий исполняемые на компьютере команды, которые при их исполнении компьютерной системой (100) выполняют способ, содержащий этапы, на которых:
создают первый экземпляр (22) планировщика с помощью команд, исполняемых компьютерной системой, чтобы заставить первый набор задач (36/40/42) процесса (12) исполняться компьютерной системой; и
создают второй экземпляр (22) планировщика (22) с помощью команд, исполняемых компьютерной системой, чтобы заставить второй набор задач (36/40/42) процесса исполняться компьютерной системой.
2. Машиночитаемый носитель данных по п.1, в котором способ дополнительно содержит этапы, на которых:
распределяют первому экземпляру планировщика первое множество виртуальных процессоров (32), чтобы представлять первое подмножество процессорных ресурсов компьютерной системы; и
распределяют второму экземпляру планировщика второе множество виртуальных процессоров (32), чтобы представлять второе подмножество процессорных ресурсов компьютерной системы.
3. Машиночитаемый носитель данных по п.2, в котором способ дополнительно содержит этапы, на которых:
сопоставляют первое множество виртуальных процессоров с первым множеством аппаратных потоков (16), чтобы заставить первое множество задач исполняться посредством первого множества аппаратных потоков; и
сопоставляют второе множество виртуальных процессоров со вторым множеством аппаратных потоков (16), чтобы заставить второе множество задач исполняться посредством второго множества аппаратных потоков.
4. Машиночитаемый носитель данных по п.1, в котором создание второго экземпляра планировщика содержит этапы, на которых:
перемещают контекст (34) исполнения, исполняющий одну задачу из первого множества задач, из первого экземпляра планировщика во второй экземпляр планировщика; и
исполняют одну задачу из первого множества задач как одну задачу из второго множества задач.
5. Машиночитаемый носитель данных по п.4, в котором создание второго экземпляра планировщика дополнительно содержит этап, на котором:
сохраняют данные (44), которые идентифицирует первый экземпляр планировщика, с контекстом исполнения до исполнения одной задачи из первого множества задач как одной задачи из второго множества задач.
6. Способ, содержащий этапы, на которых:
инициализируют первый и второй экземпляры (22) планировщика в процессе (12), причем первый и второй экземпляры планировщика имеют доступ к первому и второму подмножествам процессорных ресурсов из множества процессорных ресурсов соответственно, и к первому и второму множествам задач (36/40/42) из процесса соответственно;
планируют первую задачу из первого множества задач для исполнения посредством одного процессорного ресурса из первого подмножества процессорных ресурсов с помощью первого экземпляра планировщика; и
планируют одну задачу из второго множества задач для исполнения посредством одного процессорного ресурса из второго подмножества процессорных ресурсов с помощью второго экземпляра планировщика.
7. Способ по п.6, дополнительно содержащий этапы, на которых:
планируют первую задачу из первого множества задач для исполнения посредством одного процессорного ресурса из первого подмножества процессорных ресурсов посредством привязки одной задачи из первого множества задач к первому контексту (34) исполнения на одном виртуальном процессоре из первого множества виртуальных процессоров (32), распределенных первому экземпляру планировщика; и
планируют одну задачу из второго множества задач для исполнения посредством одного процессорного ресурса из второго подмножества процессорных ресурсов посредством привязки одной задачи из второго множества задач к первому контексту (34) исполнения на одном виртуальном процессоре из второго множества виртуальных процессоров (32), распределенных второму экземпляру планировщика;
причем первое и второе подмножества процессорных ресурсов включают в себя первое и второе множества виртуальных процессоров соответственно.
8. Способ по п.7, дополнительно содержащий этапы, на которых:
сопоставляют виртуальный процессор из первого множества виртуальных процессоров с первым аппаратным потоком (16) для исполнения первой задачи из первого множества задач; и
сопоставляют виртуальный процессор из второго множества виртуальных процессоров со вторым аппаратным потоком (16) для исполнения одной задачи из второго множества задач;
причем множество процессорных ресурсов включает в себя первый и второй аппаратные потоки.
9. Способ по п.6, дополнительно содержащий этапы, на которых:
инициализируют второй экземпляр планировщика в ответ на исполнение одной задачи из первого множества задач на первом контексте (34) исполнения на одном процессорном ресурсе из первого подмножества процессорных ресурсов в первом экземпляре планировщика; и
инициализируют второй экземпляр планировщика, чтобы он включал в себя первый контекст исполнения.
10. Способ по п.9, дополнительно содержащий этап, на котором:
сохраняют первые данные (44), которые идентифицирует первый экземпляр планировщика, с первым контекстом исполнения.
11. Способ по п.10, дополнительно содержащий этапы, на которых:
сохраняют вторые данные (44), которые идентифицируют первый экземпляр планировщика, со вторым контекстом (34) исполнения в первом экземпляре планировщика; и
сохраняют третьи данные (44), которые идентифицирует второй экземпляр планировщика, с первым контекстом исполнения.
12. Способ по п.11, дополнительно содержащий этап, на котором:
сохраняют первые данные и третьи данные как стек.
13. Способ по п.9, дополнительно содержащий этап, на котором:
возвращают первый контекст выполнения во втором экземпляре планировщика первому экземпляру планировщика.
14. Способ по п.9, дополнительно содержащий этап, на котором:
планируют вторую задачу из первого множества задач для исполнения посредством одного процессорного ресурса из первого подмножества процессорных ресурсов после инициализации второго экземпляра планировщика.
15. Способ по п.6, в котором процесс представляет собой одно из прикладной программы, библиотечной функции или службы операционной системы.
RU2010149255/08A 2008-06-02 2009-05-01 Экземпляры планировщика в процессе RU2530345C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/131,135 2008-06-02
US12/131,135 US8650570B2 (en) 2008-06-02 2008-06-02 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
PCT/US2009/042609 WO2009148738A2 (en) 2008-06-02 2009-05-01 Scheduler instances in a process

Publications (2)

Publication Number Publication Date
RU2010149255A true RU2010149255A (ru) 2012-06-10
RU2530345C2 RU2530345C2 (ru) 2014-10-10

Family

ID=41381482

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010149255/08A RU2530345C2 (ru) 2008-06-02 2009-05-01 Экземпляры планировщика в процессе

Country Status (9)

Country Link
US (1) US8650570B2 (ru)
EP (1) EP2300910B1 (ru)
JP (1) JP5597196B2 (ru)
KR (1) KR101555529B1 (ru)
CN (1) CN102047218B (ru)
BR (1) BRPI0910531A2 (ru)
CA (1) CA2722670C (ru)
RU (1) RU2530345C2 (ru)
WO (1) WO2009148738A2 (ru)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101644800B1 (ko) * 2010-01-07 2016-08-02 삼성전자주식회사 컴퓨팅 시스템 및 방법
US8392920B2 (en) * 2010-01-27 2013-03-05 Microsoft Corporation Parallel query engine with dynamic number of workers
KR101658035B1 (ko) * 2010-03-12 2016-10-04 삼성전자주식회사 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법
KR101859188B1 (ko) * 2011-09-26 2018-06-29 삼성전자주식회사 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법
US20130132962A1 (en) * 2011-11-22 2013-05-23 Microsoft Corporation Scheduler combinators
CN103136047B (zh) * 2011-11-30 2016-08-17 大唐联诚信息系统技术有限公司 一种多线程管理方法及架构
ES2439803B1 (es) * 2012-04-19 2014-10-29 Universitat Politècnica De Catalunya Procedimiento, sistema y pieza de código ejecutable para controlar el uso de recursos de hardware de un sistema informático
CN102693156A (zh) * 2012-05-07 2012-09-26 清华大学 一种基于可配置策略的进程调度方法
CN102685228A (zh) * 2012-05-10 2012-09-19 苏州阔地网络科技有限公司 一种云会议的消息处理方法及系统
JP6017260B2 (ja) * 2012-10-17 2016-10-26 ルネサスエレクトロニクス株式会社 マルチスレッドプロセッサ
US10108445B2 (en) * 2014-09-22 2018-10-23 The Boeing Company Parallelization in virtual machine operation
US9582298B2 (en) 2015-03-20 2017-02-28 Amazon Technologies, Inc. Executing commands within virtual machine instances
US10768984B2 (en) 2015-06-11 2020-09-08 Honeywell International Inc. Systems and methods for scheduling tasks using sliding time windows
CN106502787B (zh) * 2016-09-30 2019-11-26 华为技术有限公司 一种调度方法及装置
CN107741878A (zh) * 2016-11-01 2018-02-27 研祥智能科技股份有限公司 任务调度方法、装置及系统
US10552212B2 (en) * 2016-11-28 2020-02-04 Arm Limited Data processing
CN109426556B (zh) * 2017-08-31 2021-06-04 大唐移动通信设备有限公司 一种进程调度方法和装置
CN107451469A (zh) * 2017-09-14 2017-12-08 郑州云海信息技术有限公司 一种进程管理系统及方法
CN110968401A (zh) * 2018-09-28 2020-04-07 北京国双科技有限公司 基于Quartz的任务调度方法及装置
US11138213B2 (en) 2019-04-10 2021-10-05 Snowflake Inc. Internal resource provisioning in database systems

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5394547A (en) 1991-12-24 1995-02-28 International Business Machines Corporation Data processing system and method having selectable scheduler
JP2836468B2 (ja) * 1993-12-28 1998-12-14 日本電気株式会社 並列ジョブの協調スケジューリング方式
JPH0954699A (ja) 1995-08-11 1997-02-25 Fujitsu Ltd 計算機のプロセススケジューラ
US6269391B1 (en) 1997-02-24 2001-07-31 Novell, Inc. Multi-processor scheduling kernel
DE69808633T2 (de) 1997-07-25 2003-06-12 British Telecomm Ablaufsteuerung für ein softwaresystem
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6839748B1 (en) 2000-04-21 2005-01-04 Sun Microsystems, Inc. Synchronous task scheduler for corba gateway
US7234139B1 (en) * 2000-11-24 2007-06-19 Catharon Productions, Inc. Computer multi-tasking via virtual threading using an interpreter
US20020073129A1 (en) * 2000-12-04 2002-06-13 Yu-Chung Wang Integrated multi-component scheduler for operating systems
US6901405B1 (en) 2000-12-20 2005-05-31 Microsoft Corporation Method for persisting a schedule and database schema
GB0212176D0 (en) 2002-05-27 2002-07-03 Radioscape Ltd Stochasitc scheduling in CVM
US8165148B2 (en) 2003-01-13 2012-04-24 Qualcomm Incorporated System and method for rate assignment
US7251815B2 (en) * 2003-04-29 2007-07-31 International Business Machines Corporation Multiple virtual machines sharing processor and work queue in memory having program/dispatch functions for assigning and accessing work items while the virtual machine was not idle
US20050076339A1 (en) * 2003-10-03 2005-04-07 Nortel Networks Limited Method and apparatus for automated negotiation for resources on a switched underlay network
US7457886B1 (en) * 2004-02-03 2008-11-25 Apple Inc. System and method for input/output scheduling
US8271976B2 (en) 2004-06-30 2012-09-18 Microsoft Corporation Systems and methods for initializing multiple virtual processors within a single virtual machine
US7793293B2 (en) * 2004-11-01 2010-09-07 Hewlett-Packard Development Company, L.P. Per processor set scheduling
US7600101B2 (en) 2005-01-13 2009-10-06 Hewlett-Packard Development Company, L.P. Multithreaded hardware systems and methods
US7613904B2 (en) * 2005-02-04 2009-11-03 Mips Technologies, Inc. Interfacing external thread prioritizing policy enforcing logic with customer modifiable register to processor internal scheduler
FR2882169B1 (fr) 2005-02-14 2007-05-25 Cofluent Design Sarl Procede de simulation d'un systeme complexe incluant une hierarchie d'ordonnanceurs, produit programme d'ordinateur et moyen de stockage correspondants
US8245230B2 (en) * 2005-03-14 2012-08-14 Qnx Software Systems Limited Adaptive partitioning scheduler for multiprocessing system
US7802256B2 (en) 2005-06-27 2010-09-21 Microsoft Corporation Class scheduler for increasing the probability of processor access by time-sensitive processes
US20070083735A1 (en) * 2005-08-29 2007-04-12 Glew Andrew F Hierarchical processor
US20070074217A1 (en) 2005-09-26 2007-03-29 Ryan Rakvic Scheduling optimizations for user-level threads
US20070204268A1 (en) * 2006-02-27 2007-08-30 Red. Hat, Inc. Methods and systems for scheduling processes in a multi-core processor environment
US8656403B2 (en) * 2008-04-30 2014-02-18 International Business Machines Corporation Negotiation management in data processing systems

Also Published As

Publication number Publication date
US20090300637A1 (en) 2009-12-03
CA2722670A1 (en) 2009-12-10
RU2530345C2 (ru) 2014-10-10
BRPI0910531A2 (pt) 2015-09-29
EP2300910B1 (en) 2018-11-21
US8650570B2 (en) 2014-02-11
CN102047218B (zh) 2013-09-11
EP2300910A4 (en) 2012-10-10
KR101555529B1 (ko) 2015-10-06
JP5597196B2 (ja) 2014-10-01
CN102047218A (zh) 2011-05-04
EP2300910A2 (en) 2011-03-30
JP2011523142A (ja) 2011-08-04
WO2009148738A2 (en) 2009-12-10
KR20110025745A (ko) 2011-03-11
CA2722670C (en) 2016-07-05
WO2009148738A3 (en) 2010-02-18

Similar Documents

Publication Publication Date Title
RU2010149255A (ru) Экземпляры планировщика в процессе
US8495598B2 (en) Control flow graph operating system configuration
US8713571B2 (en) Asynchronous task execution
US9891949B2 (en) System and method for runtime scheduling of GPU tasks
US9658890B2 (en) Runtime agnostic representation of user code for execution with selected execution runtime
US10585653B2 (en) Declarative programming model with a native programming language
US20100257527A1 (en) Computer applications classifier
US20170192761A1 (en) Dynamic data and compute resource elasticity
JP2017528845A5 (ru)
CN105204913A (zh) 一种在Android操作系统上运行Linux应用程序的方法及系统
RU2012148583A (ru) Трансформация прерывистых спецификаторов команд в непрерывные спецификаторы команд
GB2524085A (en) Exception handling in microprocessor systems
US20130231912A1 (en) Method, system, and scheduler for simulating multiple processors in parallel
US11163677B2 (en) Dynamically allocated thread-local storage
US9003094B2 (en) Optimistic interrupt affinity for devices
RU2015145292A (ru) Управление доступом во время выполнения к интерфейсам прикладного программирования
US20140298346A1 (en) Management of task allocation in a multi-core processing system
US20130054861A1 (en) Pessimistic interrupt affinity for devices
Humane et al. Simulation of cloud infrastructure using CloudSim simulator: A practical approach for researchers
CN105550040A (zh) 基于kvm平台的虚拟机cpu资源预留算法
WO2015032311A1 (zh) 一种代码生成方法、编译器、调度方法、装置及调度系统
US9703905B2 (en) Method and system for simulating multiple processors in parallel and scheduler
RU2013118640A (ru) Аппаратно-вычилистельный комплекс виртуализации и управления ресурсами в среде облачных вычислений
Pufek et al. Achieving Efficient Structured Concurrency through Lightweight Fibers in Java Virtual Machine
Liu et al. A concurrent approach for improving the efficiency of Android CTS testing

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150410