Scheduling in a communication server
Abstract
A method of operating a communication server in handling data from a plurality of channels, which includes receiving data of a plurality of channels, by the communication server, determining, for the channels, target times by which the channels should be handled in order to avoid starvation of the channel, estimating handling times required for processing sessions of the channel and repeatedly selecting, by a scheduler of the communication server, a channel whose data is to be handled responsive to the determined target times and the estimated handling times. In addition, a processor of the communication server is scheduled to perform, without interruption for handling of data of other channels, a processing session on the selected channel, in which the received data is prepared for transmission and placed in an output buffer and at least one driver of the communication server transmits the data prepared for transmission independently of the processor of the communication server.
Claims
exact text as granted — not AI-modified1 . A method of operating a communication server in handling data from a plurality of channels, comprising:
receiving data of a plurality of channels, by the communication server; determining, for the channels, target times by which the channels should be handled in order to avoid starvation of the channel; estimating handling times required for processing sessions of the channel; repeatedly selecting, by a scheduler of the communication server, a channel whose data is to be handled responsive to the determined target times and the estimated handling times; scheduling a processor of the communication server to perform, without interruption for handling of data of other channels, a processing session on the selected channel, in which the received data is prepared for transmission and placed in an output buffer; and transmitting the data prepared for transmission by at least one driver of the communication server, which driver operates independently of the processor of the communication server.
2 . A method according to claim 1 , wherein the target times include a safety margin.
3 . A method according to claim 1 , wherein the plurality of channels include at least two channels requiring processing sessions at different rates.
4 . A method according to claim 1 , wherein the plurality of channels include at least three channels requiring processing sessions at different rates.
5 . A method according to claim 1 , wherein scheduling the processor to handle the data comprises allowing the processor to utilize up to a predetermined amount of processing time for each channel.
6 . A method according to claim 1 , wherein the processor does not run an operating system which performs preemption.
7 . A method according to claim 1 , wherein each of the channels has a cycle time such that it must receive a processing session in each cycle and wherein scheduling the processor comprises having the processor wait without handling data from any of the channels if all the channels were scheduled for handling during their respective current cycles.
8 . A method according to claim 1 , wherein scheduling the processor comprises scheduling the processor to handle data of a first channel at least twice before handling data from a second channel.
9 . A communication server, comprising:
one or more output buffers; at least one driver adapted to transmit signals from the one or more output buffers on a plurality of channels, according to a predetermined timing scheme independent of the placement of data in the one or more output buffers; a processor adapted to repeatedly perform, for each of the channels, processing sessions of tasks of a communication server, in which data is placed in specific positions in the one or more output buffers, for transmission by the at least one driver; and a scheduler adapted to schedule the processor to handle each of the channels, the scheduler being adapted to schedule the processor to handle at least some of the channels after the driver has transmitted data processed in an immediately previous processing session of the channel.
10 . A communication server according to claim 9 , wherein the specific positions in which the data is placed determine a period in which the placed data is transmitted by the at least one driver, and wherein the processor is adapted to place the data of processing sessions of at least two of the plurality of channels in positions in the one or more output buffers such that the transmission periods of the data are only partially overlapping.
11 . A server according to claim 10 , wherein the processor is adapted to place the data of processing sessions of at least one of the channels in positions such that the transmission period of the data partially overlaps transmission of data from sessions of all the other channels.
12 . A server according to claim 9 , wherein the one or more output buffers comprise a buffer for each of the plurality of channels.
13 . A server according to claim 9 , wherein the at least one driver is adapted to receive signals from the plurality of channels and to place the received signals in one or more input buffers, and the processor is adapted to retrieve data for processing sessions of at least two of the plurality of channels from different positions such that the reception periods of the data are partially overlapping.
14 . A connection handling server, comprising:
one or more output buffers; at least one driver adapted to transmit signals from the one or more output buffers on a plurality of channels; a processor adapted to repeatedly perform, for each of the channels, at a respective channel cycle, processing sessions in which data for transmission is placed in the one or more output buffers; and a scheduler adapted to determine occurrence of a starvation state in which the at least one driver began to transmit data from a portion of the buffer before the processor placed data in the buffer portion.
15 . A server according to claim 14 , wherein the scheduler is adapted to skip or limit one or more processing sessions of one or more of the channels responsive to the determination of the occurrence of a starvation state.
16 . A server according to claim 15 , wherein the scheduler skips or limits one or more processing sessions of one or more channels which were affected by the starvation state.
17 . A server according to claim 15 , wherein the scheduler skips or limits one or more processing sessions of one or more channels which were not affected by the starvation state.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.