发明名称 Multi-tasking real-time kernel threads used in multi-threaded network processing
摘要 For multi-threaded network processing, a real-time task is scheduled in a network server by placing the task on a real-time task list, activating the task when an event occurs during operation of the network server, and executing the task when scanning the task list and finding that the task has been activated. For example, an application or kernel process sends to a real-time network thread manager a request to register a task specified by an address of a task service routine. The thread manager places the address in an entry on the task list and returns a cookie identifying the entry. Upon occurrence of the event, an interrupt routine sends to a task activation routine a request to activate the task specified by the cookie. At periodic intervals, if there are any activated tasks on the task list, then a real-time scheduler scans the task list.
申请公布号 US9411636(B1) 申请公布日期 2016.08.09
申请号 US201113177968 申请日期 2011.07.07
申请人 EMC Corporation 发明人 Ting Dennis P.;Hassey John A.;Frazier Robert E.;Jayanty Ramanamurthy;Nathanson Daphna
分类号 G06F9/46;G06F9/48 主分类号 G06F9/46
代理机构 代理人 Gupta Krishnendu;Reyes Jason A.;Bhayana Deepika
主权项 1. A method comprising a data processor of a network server executing computer instructions stored on non-transitory computer readable storage medium to perform the steps of: (a) an application or kernel process of the network server invoking a real-time network thread manager of the network server to place a real-time task on a real-time task list upon receiving a service request, the real-time network thread manager returning, to the application or kernel process, a cookie identifying the real-time task on the real-time task list, wherein the real-time network thread manager manages a service request table and a real-time thread dispatch table, wherein the service request table includes a set of service request entries for each real-time thread of a set of real-time threads, wherein the real-time thread dispatch table includes an entry for each real-time thread of the set of real-time threads, wherein the real-time task is added to the real-time list by registering the real-time task, wherein the real time task is registered by allocation of an entry for the service request in the service request table, assigning a CPU to the service request, and returning the cookie including an identifier of the assigned CPU, wherein the cookie is used for activating the real-time task, wherein a data processor of the network server includes a plurality of Central Processing Units (CPUs), wherein the plurality of CPUs include at least two CPUs, wherein a CPU of the plurality of CPUs included in the data processor is assigned to the service request, wherein each CPU of the plurality of CPUs is associated with a run queue and a real-time thread for executing real-time tasks assigned to the said CPU, wherein each CPU of the plurality of CPUs is associated with a real-time task list; (b) activating the real-time task on the real-time task list when an event occurs during operation of the network server by sending a task activation request including the cookie to a task activation routine, wherein the cookie identifies the real-time thread and CPU assigned to perform the real-time task; (c) a real-time scheduler of the network server scanning the real-time task list, and when scanning the real-time task list, the real-time scheduler finding that the real-time task on the real-time task list has been activated, and executing the real-time task on the real-time task list in response to finding that the real-time task on the real-time task list has been activated, wherein the real-time task is executed by a real-time thread associated with a CPU of the plurality of CPUs assigned for executing the real-time task, wherein the real-time thread of each CPU of the plurality of CPUs executes respective real-time task assigned to each CPU concurrently; and performing the steps (a), (b), and (c) for each CPU of the plurality of CPUs to schedule and execute real-time tasks associated with each CPU for multi-threaded processing of data transmitted in accordance with a network data transmission protocol.
地址 Hopkinton MA US