TWI515655B - 在常式內切換執行緒之方法、系統及電腦可讀取記憶體 - Google Patents
在常式內切換執行緒之方法、系統及電腦可讀取記憶體 Download PDFInfo
- Publication number
- TWI515655B TWI515655B TW103108713A TW103108713A TWI515655B TW I515655 B TWI515655 B TW I515655B TW 103108713 A TW103108713 A TW 103108713A TW 103108713 A TW103108713 A TW 103108713A TW I515655 B TWI515655 B TW I515655B
- Authority
- TW
- Taiwan
- Prior art keywords
- thread
- routine
- continuation
- switching
- return
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
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)
- Executing Machine-Instructions (AREA)
- User Interface Of Digital Computer (AREA)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/977,593 US8589925B2 (en) | 2007-10-25 | 2007-10-25 | Techniques for switching threads within routines |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201426546A TW201426546A (zh) | 2014-07-01 |
| TWI515655B true TWI515655B (zh) | 2016-01-01 |
Family
ID=40580367
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW103108713A TWI515655B (zh) | 2007-10-25 | 2008-09-26 | 在常式內切換執行緒之方法、系統及電腦可讀取記憶體 |
| TW097137253A TWI446262B (zh) | 2007-10-25 | 2008-09-26 | 在常式內切換執行緒之技術 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW097137253A TWI446262B (zh) | 2007-10-25 | 2008-09-26 | 在常式內切換執行緒之技術 |
Country Status (5)
| Country | Link |
|---|---|
| US (3) | US8589925B2 (enExample) |
| EP (1) | EP2217998B1 (enExample) |
| JP (1) | JP5315354B2 (enExample) |
| TW (2) | TWI515655B (enExample) |
| WO (1) | WO2009055494A2 (enExample) |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8589925B2 (en) | 2007-10-25 | 2013-11-19 | Microsoft Corporation | Techniques for switching threads within routines |
| US8732211B2 (en) | 2011-01-28 | 2014-05-20 | International Business Machines Corporation | Method, computer system, and physical computer storage medium for organizing data into data structures |
| KR102251932B1 (ko) * | 2013-04-23 | 2021-05-13 | 아브 이니티오 테크놀로지 엘엘시 | 컴퓨팅 시스템에 의해 수행되는 태스크 제어 |
| KR20150019349A (ko) * | 2013-08-13 | 2015-02-25 | 삼성전자주식회사 | 다중 쓰레드 실행 프로세서 및 이의 동작 방법 |
| WO2016036822A1 (en) | 2014-09-02 | 2016-03-10 | Ab Initio Technology Llc | Managing execution state of components in a graph-based program specification for controlling their associated tasks |
| US9760406B2 (en) | 2014-09-02 | 2017-09-12 | Ab Initio Technology Llc | Controlling data processing tasks |
| KR20170046777A (ko) * | 2014-09-02 | 2017-05-02 | 아브 이니티오 테크놀로지 엘엘시 | 데이터 처리 태스크의 제어 |
| US9933918B2 (en) | 2014-09-02 | 2018-04-03 | Ab Initio Technology Llc | Specifying control and data connections in graph-based programs |
| AU2015312012B2 (en) | 2014-09-02 | 2020-02-27 | Ab Initio Technology Llc | Compiling graph-based program specifications |
| US9552223B2 (en) * | 2014-09-30 | 2017-01-24 | International Business Machines Corporation | Post-return asynchronous code execution |
| CN105447138A (zh) * | 2015-11-20 | 2016-03-30 | 北京京东尚科信息技术有限公司 | 用于服务器的方法及系统 |
| US10761714B2 (en) * | 2015-11-23 | 2020-09-01 | Google Llc | Recognizing gestures and updating display by coordinator |
| CN108089919B (zh) * | 2017-12-21 | 2021-01-15 | 北京云杉世纪网络科技有限公司 | 一种并发处理api请求的方法及系统 |
| US11789741B2 (en) * | 2018-03-08 | 2023-10-17 | Sap Se | Determining an optimum quantity of interleaved instruction streams of defined coroutines |
| CN109257411B (zh) * | 2018-07-31 | 2021-12-24 | 平安科技(深圳)有限公司 | 一种业务处理方法、调用管理系统和计算机设备 |
| CN110247984B (zh) * | 2019-06-27 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置及存储介质 |
| CN112799819A (zh) * | 2021-02-04 | 2021-05-14 | 深圳市大富网络技术有限公司 | 一种程序运行的控制方法、装置及计算机存储介质 |
| US12288085B2 (en) * | 2021-05-19 | 2025-04-29 | Mobileye Vision Technologies Ltd. | On the fly configuration of a processing circuit |
| CN113608843B (zh) * | 2021-07-08 | 2023-08-25 | 广东开放大学(广东理工职业学院) | 协程实现方法和系统 |
| CN114584500B (zh) * | 2022-02-25 | 2024-03-22 | 网易(杭州)网络有限公司 | 异步通信的测试方法、装置及电子设备 |
Family Cites Families (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE69024753T2 (de) * | 1989-10-31 | 1996-05-30 | Hewlett Packard Co | Tragbarer, Ressourcen teilender Datei-Server, der gemeinsame Routines benutzt |
| JPH03173938A (ja) | 1989-11-30 | 1991-07-29 | Pioneer Electron Corp | トラッキングサーボ装置 |
| JP2535631B2 (ja) * | 1989-12-01 | 1996-09-18 | 富士通株式会社 | コル―チン呼び出し制御方式 |
| US5261097A (en) * | 1991-03-11 | 1993-11-09 | Digital Equipment Corporation | Computer system and method for executing command scripts using multiple synchronized threads |
| US6598068B1 (en) * | 1996-01-04 | 2003-07-22 | Sun Microsystems, Inc. | Method and apparatus for automatically managing concurrent access to a shared resource in a multi-threaded programming environment |
| US6480818B1 (en) * | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
| US6449614B1 (en) | 1999-03-25 | 2002-09-10 | International Business Machines Corporation | Interface system and method for asynchronously updating a share resource with locking facility |
| US7043725B1 (en) * | 1999-07-09 | 2006-05-09 | Hewlett-Packard Development Company, L.P. | Two tier arrangement for threads support in a virtual machine |
| AU7606301A (en) | 2000-09-29 | 2002-04-11 | International Business Machines Corporation | Context based view design to support client side multi-threading |
| US6954933B2 (en) * | 2000-10-30 | 2005-10-11 | Microsoft Corporation | Method and apparatus for providing and integrating high-performance message queues in a user interface environment |
| US6904597B2 (en) | 2001-03-30 | 2005-06-07 | Intel Corporation | Inter-thread communications between different components using double buffer |
| US7007244B2 (en) | 2001-04-20 | 2006-02-28 | Microsoft Corporation | Method and system for displaying categorized information on a user interface |
| US7103887B2 (en) * | 2001-06-27 | 2006-09-05 | Sun Microsystems, Inc. | Load-balancing queues employing LIFO/FIFO work stealing |
| US7159215B2 (en) * | 2001-06-27 | 2007-01-02 | Sun Microsystems, Inc. | Termination detection for shared-memory parallel programs |
| US20030041139A1 (en) | 2001-08-14 | 2003-02-27 | Smartpipes, Incorporated | Event management for a remote network policy management system |
| US7086049B2 (en) * | 2002-02-26 | 2006-08-01 | International Business Machines Corporation | Background code update for embedded systems |
| US7587721B2 (en) * | 2004-05-20 | 2009-09-08 | Sap Ag | Sharing objects in runtime systems |
| JP4520788B2 (ja) * | 2004-07-29 | 2010-08-11 | 富士通株式会社 | マルチスレッドプロセッサ |
| US20060048106A1 (en) * | 2004-08-27 | 2006-03-02 | International Business Machines Corporation | Link-time profile-based method for reducing run-time image of executables |
| US8568225B2 (en) | 2004-09-16 | 2013-10-29 | Bally Gaming, Inc. | User interface system and method for creating and verifying signed content |
| US7685574B2 (en) * | 2004-09-29 | 2010-03-23 | Microsoft Corporation | Constrained execution regions |
| US7603673B2 (en) * | 2004-10-28 | 2009-10-13 | Intel Corporation | Method and system for reducing context switch times |
| US7610579B2 (en) * | 2004-12-10 | 2009-10-27 | Microsoft Corporation | Critical finalizers |
| US7467272B2 (en) * | 2004-12-16 | 2008-12-16 | International Business Machines Corporation | Write protection of subroutine return addresses |
| US7784051B2 (en) * | 2005-11-18 | 2010-08-24 | Sap Ag | Cooperative scheduling using coroutines and threads |
| US20080168247A1 (en) * | 2007-01-05 | 2008-07-10 | Seagate Technology Llc | Method and apparatus for controlling access to a data storage device |
| US8589925B2 (en) | 2007-10-25 | 2013-11-19 | Microsoft Corporation | Techniques for switching threads within routines |
-
2007
- 2007-10-25 US US11/977,593 patent/US8589925B2/en active Active
-
2008
- 2008-09-26 TW TW103108713A patent/TWI515655B/zh not_active IP Right Cessation
- 2008-09-26 TW TW097137253A patent/TWI446262B/zh not_active IP Right Cessation
- 2008-10-22 EP EP08842012.0A patent/EP2217998B1/en not_active Not-in-force
- 2008-10-22 JP JP2010531211A patent/JP5315354B2/ja active Active
- 2008-10-22 WO PCT/US2008/080825 patent/WO2009055494A2/en not_active Ceased
-
2013
- 2013-10-21 US US14/059,278 patent/US10007551B2/en active Active
-
2018
- 2018-06-26 US US16/018,427 patent/US10698726B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP5315354B2 (ja) | 2013-10-16 |
| TW201426546A (zh) | 2014-07-01 |
| TWI446262B (zh) | 2014-07-21 |
| US20190138347A1 (en) | 2019-05-09 |
| WO2009055494A2 (en) | 2009-04-30 |
| EP2217998B1 (en) | 2017-02-22 |
| EP2217998A4 (en) | 2014-07-23 |
| US20090113436A1 (en) | 2009-04-30 |
| WO2009055494A3 (en) | 2009-07-02 |
| JP2011501323A (ja) | 2011-01-06 |
| TW200921509A (en) | 2009-05-16 |
| EP2217998A2 (en) | 2010-08-18 |
| US10698726B2 (en) | 2020-06-30 |
| US20140047446A1 (en) | 2014-02-13 |
| US10007551B2 (en) | 2018-06-26 |
| US8589925B2 (en) | 2013-11-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI515655B (zh) | 在常式內切換執行緒之方法、系統及電腦可讀取記憶體 | |
| US10769047B2 (en) | Stepping and application state viewing between points | |
| US8423969B2 (en) | Inheritance breakpoints for use in debugging object-oriented computer programs | |
| US8418148B2 (en) | Thread execution analyzer | |
| US5961610A (en) | Systems, methods and apparatus for generating and controlling display of medical images | |
| US5950002A (en) | Learn mode script generation in a medical imaging system | |
| US8135572B2 (en) | Integrated debugger simulator | |
| US7457989B2 (en) | System and method for selecting test case execution behaviors for reproducible test automation | |
| KR20070039877A (ko) | 콘텐츠를 생성하기 위한 자동 이미지 캡처 | |
| US8650551B2 (en) | Transactional debugger for a transactional memory system and detecting conflicts | |
| CN112667315A (zh) | 游戏引擎编辑器启动方法、装置、电子设备和存储介质 | |
| CN110837467A (zh) | 软件测试方法、装置以及系统 | |
| US7865883B1 (en) | Parallel and asynchronous debugger and debugging method for multi-threaded programs | |
| KR20000018932A (ko) | 게임 개발 시스템 및 그 방법 | |
| JP5374965B2 (ja) | シミュレーション制御プログラム、シミュレーション制御装置、およびシミュレーション制御方法 | |
| CN118152277B (zh) | 一种Bootloader刷写方法、装置、设备及介质 | |
| CN107665115B (zh) | 一种软件开发平台及方法 | |
| CN112506592B (zh) | 页面加载时长的确定方法、装置、设备和存储介质 | |
| US20250068551A1 (en) | Configurable identification mechanism of debug parameters in multi-process or multi-threaded debugging | |
| JP2001134464A (ja) | 情報処理方法および装置 | |
| CN120849259A (zh) | 应用测试方法、装置、电子设备和计算机可读存储介质 | |
| JP2010061198A (ja) | 検証支援プログラム、検証支援装置、および検証支援方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |