<<

Europäisches Patentamt *EP001185930B1* (19) European Patent Office

Office européen des brevets (11) EP 1 185 930 B1

(12) EUROPEAN PATENT SPECIFICATION

(45) Date of publication and mention (51) Int Cl.7: G06F 9/46 of the grant of the patent: 03.09.2003 Bulletin 2003/36 (86) International application number: PCT/US00/08157 (21) Application number: 00937509.8 (87) International publication number: (22) Date of filing: 28.03.2000 WO 00/067124 (09.11.2000 Gazette 2000/45)

(54) NETWORK METHOD AND SYSTEM FOR REALTIME APPLICATIONS AND CORRESPONDING COMPUTER-READABLE STORAGE MEDIUM NETZWERKABLAUFSTEUERUNGVERFAHREN UND -SYSTEM FÜR ECHTZEITANWENDUNGEN SOWIE EIN ENTSPRECHENDES COMPUTERLESBARES SPEICHERMEDIUM METHODE ET SYSTEME D’ORDONNANCEMENT DE RESEAU POUR APPLICATIONS EN TEMPS REEL AINSI QUE LE SUPPORT D’ENREGISTREMENT CORRESPONDANT LISIBLE PAR ORDINATEUR

(84) Designated Contracting States: • TOKUDA H ET AL: "Real-Time Mach: towards a AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU predictable real-time system" USENIX MC NL PT SE WORKSHOP PROCEEDINGS. MACH, BURLINGTON, VT, USA, 4-5 OCT. 1990, [Online] (30) Priority: 30.04.1999 US 302592 pages 73-82, XP002152622 1990, Berkeley, CA, USA, USENIX, USA Retrieved from the Internet: (43) Date of publication of application: <URL:ftp://mach.cs.cmu.edu/doc/published/ 13.03.2002 Bulletin 2002/11 R TM.ps> [retrieved on 2000-11-10] • SMITH K A: "SCHEDULING IN REAL TIME FOR (73) Proprietor: Honeywell Inc. UNIX OPERATING SYSTEMS" COMPUTER Morristown, New Jersey 07962 (US) TECHNOLOGY REVIEW,US,WESTWORLD PRODUCTION CO. LOS ANGELES, vol. 9, no. 16, (72) Inventors: 1990, pages 16-17, XP000096004 ISSN: • KENCHAMMANA-HOSEKOTE, Deepak, R. 0278-9647 Sunnyvale, CA 94080 (US) • TOKUDA H ET AL: "IMPLEMENTATION OF A • VAIDYANATHAN, Nemmara, R. TIME-DRIVEN SCHEDULER FOR REAL-TIME Irvine, CA 92614 (US) OPERATING SYSTEMS" PROCEEDINGS OF THE • ALLALAGHATTA, Pavan REAL TIME SYSTEMS Roseville, MN 55113 (US) SYMPOSIUM,US,WASHINGTON, IEEE COMP. SOC. PRESS, vol. SYMP. 8, 1 December 1987 (74) Representative: Hucker, Charlotte Jane (1987-12-01), pages 271-280, XP000014293 Gill Jennings & Every • "DEADLINE MONOTONIC SERVER" IBM Broadgate House, TECHNICAL DISCLOSURE BULLETIN,US,IBM 7 Eldon Street CORP. NEW YORK, vol. 38, no. 9, 1 September London EC2M 7LH (GB) 1995 (1995-09-01), pages 563-565, XP000540367 ISSN: 0018-8689 (56) References cited: • EUN S ET AL: "NONPREEMPTIVE SCHEDULING EP-A- 0 554 615 FOR MULTIMEDIA COMMUNICATION IN LOCAL AREA NETWORKS" PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON NETWORK PROTOCOLS, 7 November 1995 (1995-11-07), XP000575153

Note: Within nine months from the publication of the mention of the grant of the European patent, any person may give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall be filed in a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention). EP 1 185 930 B1

Printed by Jouve, 75001 PARIS (FR) (Cont. next page) EP 1 185 930 B1

• "MECHANISM FOR PRIORITY TRAFFIC • SCHWAN K ET AL: "HIGH-PERFORMANCE HANDLING ON SINGLE-QUEUE NETWORK PRIMITIVES FOR ADAPTERS" IBM TECHNICAL DISCLOSURE ROBOTICS AND REAL-TIME CONTROL BULLETIN,US,IBM CORP. NEW YORK, vol. 37, SYSTEMS" ACM TRANSACTIONS ON no. 12, 1 December 1994 (1994-12-01), pages COMPUTER SYSTEMS,US,ASSOCIATION FOR 643-644, XP000487926 ISSN: 0018-8689 MACHINERY. NEW YORK, vol. 5, • STRAATHOF J. H. ET AL: "UNIX Scheduling for no. 3, 1 August 1987 (1987-08-01), pages Large Systems" USENIX TECHNICAL 189-231, XP000054316 ISSN: 0734-2071 CONFERENCE WINTER 1986, July 1986 (1986-07), pages 111-139, XP002152623 DENVER, CO, USA • WENDORF J W: "IMPLEMENTATION AND EVALUATION OF A TIME-DRIVEN SCHEDULING PROCESSOR" PROCEEDINGS OF THE REAL TIME SYSTEMS SYMPOSIUM,US,WASHINGTON, IEEE COMP. SOC. PRESS, vol. SYMP. 9, 6 December 1988 (1988-12-06), pages 172-180, XP000014037

2 1 EP 1 185 930 B1 2

Description as video, X-ray, and scanning electron microscopy to name a few. Spectral data refers to sensor data. Spec- FIELD OF THE INVENTION tral data is obtained from sources such as infrared, color, acoustic emission, ultrasound, microwave, laser, and [0001] The present invention relates generally to real 5 optical sensors and devices, for example. time applications and more specifically to a network [0006] A multimedia-based control system imposes scheduler for such applications. stringent requirements on a network. A key network re- quirement for multimedia-based control systems is that COPYRIGHT NOTICE/PERMISSION the underlying network must support real time tasks. 10 Performance criteria for a network in such a control sys- [0002] A portion of the disclosure of this patent docu- tem are very different than those of a typical information ment contains material which is subject to copyright pro- network. Some basic performance criteria for a control tection. The copyright owner has no objection to the fac- network are (1) the guarantee of critical traffic, (2) the simile reproduction by anyone of the patent document avoidance of priority inversion, and (3) the guarantee of or the patent disclosure as it appears in the Patent and 15 deadlines. Priority inversion occurs when a lower priority Trademark Office patent file or records, but otherwise task is allocated the resources before a higher priority reserves all copyright rights whatsoever. The following task. notice applies to the software and data as described be- [0007] When scheduling real time tasks in a network, low and in the drawings hereto: Copyright 1998, 1999 a priority or a deadline is associated with the task. For Honeywell, Inc., All Rights Reserved. 20 many real time tasks, failure to meet the deadline or fail- ure to avoid priority inversion is considered a system STATEMENT OF GOVERNMENT INTEREST fault. The priority or the deadline associated with a task is commonly specified globally at the user or application [0003] This invention was made with Government level. However, a kernel-level scheduling mechanism support under contract number F19628-94-C-0044 25 does not allow users or applications to exercise control awarded by Advanced Research Projects Agency (AR- over scheduling policies. As a result, user or application- PA)/CSTO. The Government has certain rights in the in- level scheduling policies fail when kernel-level schedul- vention. ing cannot enforce the same policy. [0008] For these and other reasons, there is a need BACKGROUND OF THE INVENTION 30 for a mechanism to guarantee correct scheduling order of real time tasks according to the user or application [0004] Real time systems comprise programs that specified priorities or deadlines. must execute relative to priorities or within strict con- [0009] Tokuda H et al; "real-time mach, towards a pre- straints on response time. Some examples of real-time dictable real-time system", Usenix Workshop Proceed- systems include industrial plant controllers, medical 35 ings Mach, Burlington, Vermont, USA, 4-5 October monitors, communications networks, and aircraft or 1990, pages 73 to 82 discloses a method of scheduling spacecraft flight control systems. One difficulty in de- the use of a resource on a computer system in which a signing real-time systems is in the strict requirement to scheduling constraint for a user-level thread is em- meet processing deadlines and not in the actual speed ployed. "Mechanism for priority traffic handling on sin- of processing. A real-time system need not be complex 40 gle-cue network adaptors"-IBM Technical Disclosure or high performance. Checking radioactivity levels in a Bulletin, no. 37, no. 12, December 1994, pages 643-644 nuclear power plant or checking a pulse rate on a med- discloses a computer-readable medium having a com- ical patient may require only simple processing. How- puter-executable instruction built thereon for executing ever, a failure to meet a processing deadline, such as a method of scheduling network packets. decreasing plant power or sounding a medical alarm. 45 [0010] A network scheduler for real time applications can be literally fatal. is described. According to the invention there is provid- [0005] One example of a real time system is a multi- ed a method of scheduling the use of a resource of a media system. Multimedia is increasingly recognized as computer system, the method comprising: an enabling technology with diverse applications from interactive training to medical diagnosis to control appli- 50 receiving a scheduling constraint for a user-level cations, for example. In the context of control applica- thread, wherein the scheduling constraint is speci- tions, the term multimedia implies a much broader fied by an application with which the user level scope than the traditional usage of the term that refers thread is associated; and to audio, video and text. In the context of control appli- managing the scheduling of a corresponding ker- cations, multimedia encompasses both the traditional 55 nel-level thread based on the scheduling constraint multimedia data as well as image data and spectral da- of the user-level thread. ta. Image data refers to still images, full-motion video, and graphics. Image data is obtained from sources such [0011] Another aspect of the invention is a computer-

3 3 EP 1 185 930 B1 4 ised system comprising: not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended an application program operating in a first schedul- claims. ing domain, wherein the application program spec- [0015] Introduction. A network scheduler according ifies real time scheduling requirements for a plural- 5 to the present invention is implemented with a multi- ity of network packets; threaded operating system having different priority do- an operating system operating in a second sched- mains for user-level threads and kernel-level threads. A uling domain; and kernel-level scheduling mechanism generally does not a scheduler for managing scheduling allow users to exercise control over scheduling policies. of the plurality of network packets in the second 10 Thus, user level scheduling policies may fail if the ker- scheduling domain according to the scheduling nel-level scheduling cannot enforce the same policy. constraints assigned in the first scheduling domain. The network scheduler solves these and other schedul- ing problems in a multithreaded operating system hav- [0012] The present invention is applicable to a variety ing different methods of scheduling threads within a us- of operating system platforms and middleware solutions 15 er-level domain and a kernel-level domain. For exam- for real time systems. The present invention allows user- ple, in some multithreaded operating systems a priority level defined attributes such as priorities and deadlines, based scheduling policy or a deadline based scheduling and desirably overcomes constraints resulting from ven- policy is used at the user level and a round-robin based dor specific operating system mechanisms that do not scheduling policy is used at the kernel level. In such an preserve such user specified attributed of real time be- 20 example, the network scheduler desirably prevents the havior. The primitives of the invention allow various kernel-level scheduling order from preempting the user- scheduling policies such as priority based or deadline level scheduling order. As a result, the network sched- based scheduling policies. uler, as further described below, guarantees correct [0013] Still other and further embodiments aspects scheduling order according to the user specified priori- and advantages of the invention will become apparent 25 ties or deadlines. by reference to the drawings and by reading the follow- [0016] The detailed description of this invention is di- ing detailed description. vided into three sections. The first section provides a system level overview of an example embodiment of the Fig. 1 is a block diagram illustrating a system level present invention. The second section describes meth- overview of an example embodiment of the inven- 30 ods of scheduling network communication packets ac- tion. cording to an example embodiment of the invention. The Fig. 2 is a flowchart of an example embodiment of third section describes a computing system in conjunc- a method of performing priority based scheduling. tion with which embodiments of the present invention Fig. 3 is a flowchart of an example embodiment of are implemented. a method performing deadline based scheduling. 35 [0017] System Overview. A system level overview of FIG. 4 is a diagram of a computerized system in an example embodiment of the invention is described conjunction with which example embodiments of by reference to Figure 1. The network scheduling sys- the invention may be implemented. tem 10, as shown in Figure 1, comprises one or more FIG. 5 is a diagram of an example embodiment of user-level sessions 12, a network scheduler 14, a kernel a computer system incorporating a network sched- 40 and device drivers 16 and communications hardware 18 uler block including one or more physical communication chan- FIG. 6 is a more detailed diagram of an example nels. embodiment of a computer system incorporating a [0018] The user-level sessions 12 have one or more network scheduler block. user-level threads. Each thread is a different stream of 45 control that can execute its instructions independently, DESCRIPTION OF THE EMBODIMENTS allowing a multithreaded process to perform numerous tasks concurrently. Each one of the user-level threads [0014] In the following detailed description of the em- is assigned a scheduling constraint based on the re- bodiments, reference is made to the accompanying quirements of the real time application with which the drawings that form a part hereof, and in which is shown 50 user-level thread is associated. In one embodiment, the by way of illustration specific embodiments in which the scheduling constraint is a priority. The priority is as- invention may be practiced. These embodiments are signed using any common priority based scheduling pol- described in sufficient detail to enable those skilled in icies. Two well known examples of priority based sched- the art to practice the invention, and it is to be under- uling policies are Rate Monotonic Analysis and Deadline stood that other embodiments may be utilized and that 55 Monotonic Analysis. In an alternate embodiment. the structural, logical and electrical changes may be made scheduling constraint is a deadline. A common example without departing from the scope of the present inven- of a deadline based scheduling policy is an Earliest tions. The following detailed description is, therefore, Deadline First policy.

4 5 EP 1 185 930 B1 6

[0019] The network scheduler 14 the use [0023] Methods of the Invention. Referring now to of a shared resource such as a physical communication FIGS. 2 and 3 a particular method performed by a proc- channel. The network scheduler 14 receives a schedul- essor in an exemplary embodiment is described by ref- ing constraint for a user-level thread and manages the erence to a series of flowcharts. The methods to be per- scheduling of the corresponding kernel-level thread 5 formed constitute computer programs made up of com- based on the scheduling constraint of the user-level puter-executable instructions. The methods shown in thread. The network scheduler ensures that kernel or FIGS. 2 and 3 are implemented in a machine readable device drivers 16 the network packets in a medium comprising machine readable instructions for manner that meets the scheduling constraint assigned causing a computer to perform the method. Such ma- by the user-level session 12. In one embodiment, the 10 chine readable medium may include software modules network scheduler uses instructions (referred to herein and computer programs. The type of computer pro- as primitives) to perform the following functions: hold a gramming languages used to write the code may vary queue of packets, release a queue of packets, check from procedural code type languages to object oriented the population of a queue, check a deadline of a packet languages. The files or objects need not have a one to at the head of a queue, and check the priority of a packet 15 one correspondence to the modules or method acts de- at the head of a queue. An example method of sched- scribed depending on the desires of the programmer. uling based on priorities is further described with respect Further, the method and apparatus may comprise com- to FIG. 2. An example of scheduling based on deadlines binations of software, hardware and firmware as is well is further described with respect to FIG. 3. known to those skilled in the art. Describing the methods [0020] The kernel 16 (or any comparable center of an 20 by reference to flowcharts enables one skilled in the art operating system) generally releases network commu- to develop such programs including such instructions to nication packets according to a predetermined scheme. carry out the methods on suitable computerized sys- One example of a common scheme for kernel level tems. scheduling is a round-robin scheme in which available [0024] FIG. 2 is a block diagram of an example em- communication packets are released in a cyclic manner. 25 bodiment of a method of performing priority based However, such a kernel-level scheduling policy may not scheduling. In one embodiment, the network scheduler enforce the scheduling constraints specified at the user- 14 of FIG. 1 acts as a proxy scheduler for the kernel by level session 12. The network scheduler 14 of the performing the method shown in FIG. 2. Using the meth- present invention solves this problem using the primi- od shown in FIG. 2, the network scheduler 14 uses a tives described above to enforce the user specified 30 HOLD, a RELEASE, a CHECK PRIORITY and a scheduling constraints at the kernel and device driver CHECK POPULATION primitive or the like to control the level. behavior of the kernel-level scheduler and to ensure that [0021] The device driver 16 maintains a queue of the user-level scheduling requirements are met. packets waiting to access the physical communication [0025] In the embodiment of a priority based sched- channel. The network scheduler 14 ensures that these 35 uling method 20 shown in FIG. 2, a network scheduler packets are released from the queue according to the checks for the arrival of a new packet for transmission user specified scheduling constraints. In one embodi- on a network connection (block 22). Upon the arrival of ment, the network scheduler 14 is used to schedule the a new packet, the network scheduler issues a HOLD use of one or more physical communication channels primitive to hold all of the network connection queues between network components in a circuit switched net- 40 (block 23). The HOLD primitive holds the connection work. queues while the priority of the packet is checked. The [0022] The process of determining which thread to al- network scheduler checks the priority assigned to the low to send packets over a network channel is referred arrived packet at the user level (block 24). If no priority to herein as scheduling. Scheduling for real time appli- is assigned to the arrived packet, the packet is assigned cations, such as multimedia applications, must be done 45 to a general queue. In addition to checking the priority within defined constraints or else the system may fail. of the arrived packet, the priority of the arrived packet In previous systems, the operating system controlled is compared to a priority level of a highest priority queue the scheduling of packets on the physical communica- (block 26.) If the priority of the arrived packet is less than tion channel, but in a system according to the present the priority of the queue (block 28), then the network invention the network scheduler is implemented in mid- 50 scheduler issues a CHECK POPULATION primitive to dleware and the network scheduler directly controls determine if the queue has packets pending (block 30.) scheduling of packets using methods which are further If the queue is populated with pending packets (block described below. The example embodiment described 32), a RELEASE primitive is issued by the network below is directed to the use of the network scheduler to scheduler to release the packet(s) in the queue (block schedule network communication packets. However, 55 34.) The network scheduler releases the queue at block one of skill in the art will recognize that the network 34 because the queue has a user specified priority that scheduler can be adapted to schedule the use of other is a higher priority than the user specified priority of the shared hardware or software resources. arrived packet. After the queue is released. the priority

5 7 EP 1 185 930 B1 8 level of the arrived packet is compared with the priority than the deadline of the next queue. Since the deadline level of the next highest level priority queue (block 26.) of the queue is later than the deadline of the arrived The actions in blocks 26, 28, 30, 32, and 34 are repeated packet (block 72), the arrived packet is inserted to an until the priority level of the packet is not less than the unassigned queue (block 76) and a new packet is priority level of the queue. 5 checked for (block 62). [0026] If the priority level of the arrived packet is not [0032] If no new packets have arrived (block 62), the less than the priority level of the queue, then the priority next held queue is checked in order deadlines beginning level of the arrived packet is equal to the priority level of with the earliest deadine (block 78). The network sched- the queue (block 36.) The network scheduler issues a uler issues a RELEASE primitive for the queue having HOLD primitive for the queue that has a priority level 10 the earliest deadline (block 80) and the network sched- equal to the arrived packets priority level (block 38.) The uler again checks for the arrival of a new packet (block arrived packet is assigned to the queue with the same 62). priority level (block 40) and then the network scheduler [0033] An example embodiment of a method of per- checks for the arrival of another new packet (block 22.) forming deadline based scheduling has been described [0027] If no new packets have arrived (block 22), then 15 by reference to FIG.3. One skilled in the art will recog- the queues are checked beginning with the highest pri- nize that a data structure maintains an ordered list of the ority level queue (block 42). The network scheduler is- queues (maintained in deadline order) for the example sues a RELEASE primitive for the queue (block 44). Af- embodiment listed in FIG.3. When a new packet is as- ter releasing the queue, the network scheduler checks signed to a queue or when a queue is released, the data for the arrival of a new packet (block 46.) If a new packet 20 structure is updated according to any means of check- has not arrived, the queue with the next highest level ing, updating or re-ordering such a data structure. priority is checked (block 42) and the actions in blocks [0034] Hardware and Operating Environment. FIG. 42, 44, and 46 are repeated until a new packet arrives. 4 is a diagram of a computerized system in conjunction [0028] An example embodiment of a method of per- with which example embodiments of the invention may forming priority based scheduling has been described 25 be implemented. Computer 90 includes a processor 92, by reference to FIG. 2. In an alternate embodiment, the random-access memory (RAM) 94, read-only memory network scheduler 14 of FIG. 1 acts as a proxy sched- (ROM) 96, and one or more storage devices 98, such uler for the kernel by performing the method shown in as a hard disk drive, a floppy disk drive (into which a FIG. 3. floppy disk can be inserted), an optical disk drive, a tape [0029] FIG. 3 is a block diagram of an example em- 30 cartridge drive and the like. RAM 94 and ROM 96 are bodiment of a method of performing deadline based collectively referred to as the memory of computer. The scheduling. Using the method shown in FIG. 3, the net- memory, hard drives, floppy disks, and the like, are work scheduler 14 uses the HOLD, RELEASE, CHECK types of computer-readable media. The computer-read- POPULATION and CHECK DEADLINE primitives to able media store instructions for execution by the proc- control the behavior of the kernel-level scheduler and to 35 essor 92. The instructions are provided to the processor ensure that the deadline based user-level scheduling re- 92 over a bus. The invention is not particularly limited to quirements are met. any type of computer 90. The construction and opera- [0030] The deadline based scheduling method 60 tion of such computers are well known within the art. shown in FIG. 3. checks for the arrival of a new packet [0035] In one embodiment, the network scheduler is for transmission on a network connection (block 62). Up- 40 incorporated into software executing on a computer, on the arrival of a new packet, the network scheduler such as the computer 90. As described above, the soft- issues a HOLD primitive to hold all of the network con- ware program guarantees correct scheduling order ac- nection queues (block 64). The HOLD primitive holds cording to the user specified priorities or deadlines. The the connection queues while the deadline of the arrived software program is developed using any high level lan- packet is checked. The network scheduler checks the 45 guage. In an example embodiment, the software is de- deadline assigned at the user level to the arrived packet veloped using the C++ . In one (block 66). embodiment, the software executes under an operating [0031] As well as checking the deadline of the arrived system such as Solaris 2.5 or the like and executes on packet, the deadline of the arrived packet is compared an industry-standard workstation such as a Sun to the deadline of the packet at the head of the queue 50 SPARCstation 20 or the like connected on a Fore Sys- with the earliest deadline (block 68). If the deadline of tems ATM (Asynchronous Transfer Mode) LAN. the queue is earlier than the deadline of the arrived [0036] Those skilled in the art will recognize, however, packet (block 72), the queue is released using the RE- that other comparable hardware and operating systems LEASE primitive (block 74). After releasing the queue, may be employed without diverting from the scope of the deadline of the arrived packet is compared to the 55 the present invention. For example, the network sched- deadline of the queue with the next earliest deadline uler may be employed with any operating system having (block 68). The actions in block 68, 72, and 74 are re- different scheduling domains at the user level and at the peated until the deadline of the arrived packet is earlier kernel level as well as different methods of priority im-

6 9 EP 1 185 930 B1 10 plementations and servicing of threads within the user ther comprises issuing one or more primitives to domain and the kernel domain. control scheduling of the kernel-level thread. [0037] FIG. 5 is a diagram of an example embodiment of a computer system incorporating a network scheduler 3. A computerised system (90) comprising: block according to a block based programming model. 5 The computer system of FIG. 5 comprises two comput- an application program operating in a first ers 110, 112, connected to a network 114. One or more scheduling domain, wherein the application distributed block based application programs 116 run on program specifies real time scheduling require- the computer. A network scheduler block 118 uses prim- ments for a plurality of network packets; itives, such as the primitives described earlier, to excer- 10 an operating system operating in a second cise control over operating system threads responsible scheduling domain; and for scheduling the release of network packets. As shown a middleware scheduler (14) for managing in FIG. 5, each computer 110, 112 (or processing ) scheduling of the plurality of network packets has a network scheduler block acting as a proxy sched- in the second scheduling domain according to uling mechanism between the boundaries of different 15 the scheduling constraints assigned in the first scheduling domains. The computer system of FIG. 5 ex- scheduling domain. ecutes a distributed multimedia control application for displaying images recorded by a video camera on a dis- 4. The computerized system of claim 3, wherein the play. real time scheduling requirements are based on [0038] FIG. 6 is a more detailed diagram of an exam- 20 deadlines. ple embodiment of a computer system incorporating a network scheduler block 118. In FIG. 6, the network 5. The computerised system of claim 3, wherein the scheduler block 118 acts as a proxy scheduler for pack- real time scheduling requirements are based on pri- ets on an ATM network 130. As shown in FIG. 6, one or orities. more distributed block based appliation programs 102 25 execute on a computer or processing node. Network 6. The computerised system of claim 3, wherein the communication packets associated with the application application program is a block based application programs 102 are held in one or more queues 104. The program. network scheduler block 118 preserves scheduling at- tributes specified by the application programs 102. In 30 7. A computer-readable medium having computer-ex- the example embodiment shown in FIG. 6, the network ecutable instructions stored thereon for executing a scheduler block 118 schedules packets for a switched method of scheduling network packets, the method virtual circuit 128 over the ATM network 130. comprising: [0039] It is to be understood that the above descrip- tion is intended to be illustrative, and not restrictive. 35 holding a plurality network connection queues; Many other embodiments will be apparent to those of checking a deadline of a first one of the queues; skill in the art upon reviewing the above description. The comparing the deadline of the first one of the scope of the invention should, therefore, be determined queues to a deadline assigned to a new net- with reference to the appended claims, along with the work packet at a user level; full scope of equivalents to which such claims are enti- 40 releasing the first one of the queues if the dead- tled. line of the first one of the queues is earlier than the deadline of the new ; and assigning the new packet to a second one of Claims the queues if the deadline of the first one of the 45 queues is later than the deadline of the new net- 1. A method (20) of scheduling the use of a resource work packet. of a computer system, the method comprising: 8. The computer-readable medium of claim 7, further receiving a scheduling constraint for a user-lev- comprising checking the first one of the queues to el thread, wherein the scheduling constraint is 50 determine if the first one of the queues is populated. specified by an application with which the user level thread is associated; and 9. A computer-readable medium having computer-ex- managing the scheduling of a corresponding ecutable instructions stored thereon for executing a kernel-level thread based on the scheduling method of scheduling network packets, the method constraint of the user-level thread. 55 comprising:

2. The method (20) of claim 1, wherein the act of man- holding a plurality network connections aging the scheduling of the kernel-level thread fur- queues;

7 11 EP 1 185 930 B1 12

checking a priority of a first one of the queues; 5. Computergesteuertes System nach Anspruch 3, comparing the priority assigned to first one of wobei die Echtzeitablaufsteuerungsanforderungen the queues to a priority of a new network packet auf Prioritäten beruhen. at a user level; releasing the first one of the queues if the pri- 5 6. Computergesteuertes System nach Anspruch 3, ority of the first one of the queues is greater wobei das Anwendungsprogramm ein auf Blöcken than the priority of the new network packet; and beruhendes Anwendungsprogramm ist. assigning the new packet to a second one of the queues if the priority of the first one of the 7. Computerlesbares Medium, worauf computeraus- queues is less than the deadline of the new net- 10 führbare Befehle zum Ausführen eines Verfahrens work packet. der Ablaufsteuerung von Netzwerkpaketen gespei- chert sind, wobei das Verfahren Folgendes um- 10. The computer-readable medium of claim 9 further fasst: comprising checking the first one of the queues to determine if the first one of the queues is populated. 15 Halten mehrerer Netzwerkverbindungswarte- schlangen; Überprüfen eines Termins einer ersten der Patentansprüche Warteschlangen; Vergleichen des Termins der ersten der Warte- 1. Verfahren (20) zur Ablaufsteuerung der Verwen- 20 schlangen mit einem Termin, der einem neuen dung eines Betriebsmittels eines Computersy- Netzwerkpaket auf einer Benutzerebene zuge- stems, wobei das Verfahren Folgendes umfasst: wiesen wurde; Freigeben der ersten der Warteschlangen, Erhalten einer Ablaufsteuerungsbeschränkung wenn der Termin der ersten der Warteschlan- für einen Benutzerebenenstrang, wobei die Ab- 25 gen früher als der Termin des neuen Netzwerk- laufsteuerungsbeschränkung durch eine An- pakets ist; und wendung spezifiziert wird, mit der der Benutze- Zuweisen des neuen Pakets zu einer zweiten rebenenstrang verknüpft ist; und Warteschlange, wenn der Terminder ersten der Verwalten der Ablaufsteuerung eines entspre- Warteschlangen später als der Termin des neu- chenden Kernebenenstrangs beruhend auf der 30 en Netzwerkpakets ist. Ablaufsteuerungsbeschränkung des Benutze- rebenenstrangs. 8. Computerlesbares Medium nach Anspruch 7, fer- ner umfassend das Überprüfen der ersten der War- 2. Verfahren (20) nach Anspruch 1, wobei die Hand- teschlangen, um zu bestimmen, ob die erste der lung des Verwaltens der Ablaufsteuerung des Ker- 35 Warteschlangen bevölkert ist. nebenenstrangs ferner das Ausgeben einer oder mehrerer Stammfunktionen zum Steuern der Ab- 9. Computerlesbares Medium, worauf computeraus- laufsteuerung des Kernebenenstrangs umfasst. führbare Befehle zum Ausführen eines Verfahrens der Ablaufsteuerung von Netzwerkpaketen gespei- 3. Computergesteuertes System (90) umfassend 40 chert sind, wobei das Verfahren Folgendes um- ein Anwendungsprogramm, das in einem ersten fasst: Ablaufsteuerungsbereich tätig ist, wobei das An- wendungsprogramm Echtzeitablaufsteuerungsan- Halten mehrerer Netzwerkverbindungswarte- forderungen für mehrere Netzwerkpakete be- schlangen; stimmt; 45 Überprüfen einer Priorität einer ersten der War- ein Betriebssystem, das in einem zweiten Ablauf- teschlangen; steuerungsbereich tätig ist; und Vergleichen der Priorität, die der ersten der eine Middleware-Ablaufsteuerung (14) zum Ver- Warteschlangen zugewiesen wurde, mit einer walten der Ablaufsteuerung der mehreren Netz- Priorität eines neuen Netzwerkpakets auf einer werkpakete im zweiten Ablaufsteuerungsbereich 50 Benutzerebene; gemäß den Ablaufsteuerungsbeschränkungen, die Freigeben der ersten der Warteschlangen, im ersten Ablaufsteuerungsbereich zugewiesen wenn die Priorität der ersten der Warteschlan- wurden. gen größer als die Priorität des neuen Netz- werkpakets ist; und 4. Computergesteuertes System nach Anspruch 3, 55 Zuweisen des neuen Pakets zu einer zweiten wobei die Echtzeitablaufsteuerungsanforderungen der Warteschlangen, wenn die Priorität der er- auf Terminen beruhen. sten der Warteschlangen geringer als die Prio- rität des neuen Netzwerkpakets ist.

8 13 EP 1 185 930 B1 14

10. Computerlesbares Medium nach Anspruch 9, fer- vue d'exécuter un procédé d'ordonnancement de ner umfassend das Überprüfen der ersten der War- paquets de réseau, le procédé comprenant : teschlangen, um zu bestimmen, ob die erste der Warteschlangen bevölkert ist. le maintien d'une pluralité de files d'attente de 5 connexion à un réseau ; la vérification d'un délai limite d'une première Revendications des files d'attente ; la comparaison du délai limite d'une première 1. Procédé (20) d'ordonnancement de l'utilisation des files d'attente à un délai limite assigné à un d'une ressource d'un système informatique, le pro- 10 nouveau paquet de réseau à un niveau cédé comprenant : utilisateur ; la libération de la première des files d'attente si la réception d'une contrainte d'ordonnance- le délai limite de la première des files d'attente ment pour une chaîne au niveau utilisateur, la est antérieur au délai limite du nouveau paquet contrainte d'ordonnancement étant spécifiée 15 de réseau ; et par une application à laquelle la chaîne au ni- l'assignation du nouveau paquet à une deuxiè- veau utilisateur est associée ; et me des files d'attente si le délai limite de la pre- la gestion de l'ordonnancement d'une chaîne mière des files d'attente est postérieur au délai au niveau noyau sur la base de la contrainte limite du nouveau paquet de réseau. d'ordonnancement de la chaîne du niveau uti- 20 lisateur. 8. Support lisible par ordinateur selon la revendication 7, comprenant en outre la vérification de la première 2. Procédé (20) selon la revendication 1, dans lequel des files d'attente afin de déterminer si la première la gestion de l'ordonnancement de la chaîne niveau des files d'attente est peuplée. noyau comprend en outre l'émission d'une ou de 25 plusieurs primitives en vue de commander l'ordon- 9. Support lisible par ordinateur sur lequel sont stoc- nancement de la chaîne au niveau noyau. kées des instructions exécutables par ordinateur en vue d'exécuter un procédé d'ordonnancement de 3. Système informatisé (90), comprenant : paquets de réseau, le procédé comprenant : 30 un programme d'application exécuté dans un le maintien d'une pluralité de files d'attente de premier domaine d'ordonnancement, le pro- connexion à un réseau ; gramme d'application spécifiant des conditions la vérification d'une priorité d'une première des d'ordonnancement en temps réel pour une plu- files d'attente ; ralité de paquets de réseau ; 35 la comparaison de la priorité assignée à une un système d'exploitation exécuté dans un première des files d'attente à une priorité d'un deuxième domaine d'ordonnancement ; et nouveau paquet de réseau à un niveau un intergiciel d'ordonnancement (14) pour gé- utilisateur ; la libération de la première des files rer l'ordonnancement de la pluralité de paquets d'attente si la priorité de la première des files de réseau dans le deuxième domaine d'ordon- 40 d'attente est plus importante que la priorité du nancement conformément aux contraintes nouveau paquet de réseau ; et d'ordonnancement assignées dans le premier l'assignation du nouveau paquet à une deuxiè- domaine d'ordonnancement. me des files d'attente si la priorité de la premiè- re des files d'attente est moindre que la priorité 4. Système informatisé selon la revendication 3, dans 45 du nouveau paquet de réseau. lequel les conditions d'ordonnancement en temps réel sont basées sur des délais limites. 10. Support lisible par ordinateur selon la revendication 9, comprenant en outre la vérification de la première 5. Système informatisé selon la revendication 3, dans des files d'attente afin de déterminer si la première lequel les conditions d'ordonnancement en temps 50 des files d'attente est peuplée. réel sont basées sur des priorités.

6. Système informatisé selon la revendication 3, dans lequel le programme d'application est un program- me d'application basé sur des blocs. 55

7. Support lisible par ordinateur sur lequel sont stoc- kées des instructions exécutables par ordinateur en

9 EP 1 185 930 B1

10 EP 1 185 930 B1

11 EP 1 185 930 B1

12 EP 1 185 930 B1

13 EP 1 185 930 B1

14 EP 1 185 930 B1

15