摘要:
A computer operating system that allows legacy applications to be run automatically with quality of service (QoS) guarantees matching required QoS performance levels. In accordance with the invention, files have QoS requirement attributes that can be set-by users. Additionally, users may interpose a requirement broker between a given legacy application and the operating system. The requirement broker may be in the form of a modified version of a library that is dynamically linked with applications at load time. The requirement broker intercepts certain system calls and automatically requests from the system QoS guarantees in accordance with the QoS requirement attributes of the accessed files, whether local or remote.
摘要:
A uniform application programming interface (API) provides efficient generation and control of resource reservations so as to ensure a desired quality of service (QoS) for applications running on an operating system of a computer system. The uniform API is based on a hierarchical file system which associates resource reservations with references to shared objects, rather than with the objects themselves. The uniform API permits the use of a variety of different proportional share schedulers for controlling access to physical resources, e.g., CPU, memory, disk, network interfaces, etc. of the computer system. The hierarchical file system includes a separate directory for each independently-scheduled physical resource of the computer system. A parent of the resource reservation in the hierarchical file system is either a root node of the file system or another reservation for the same resource. The resource reservation represents either an internal reservation, corresponding to a directory in the file system which is permitted to have child nodes associated therewith in the file system, or a queue, corresponding to a directory which is not permitted to have child nodes associated therewith. A given request for a resource reservation is processed by a proportional share scheduler associated with the resource, and identifies a queue having a predetermined portion of the resource allocated thereto. The invention also provides mechanisms for request tagging by the operating system, parental limitation of resources used by a child process, and “garbage collection” of resource reservations that are no longer needed.
摘要:
A new scheduling method and policy for shared (server) resources, such as the CPU or disk memory of a multiprogrammed data processor. The scheduling is referred to as Move-To-Rear List Scheduling and it provides a cumulative service guarantee and well as more traditional guarantees such as fairness (proportional sharing) and bounded delay. In typical operation, a list is maintained for a server of processes seeking service from the server. Processes are admitted to the list only when maximum capacity constraints are not violated, and once on the list, are served in a front-to-back order. After receiving service, or upon the occurrence of other events, the position of the process on the list may be changed.
摘要:
A method and system for servicing disk I/O requests from domains which have been guaranteed minimum quality of disk service maintains I/O requests for each domain are in separate queues. The queues are serviced by a disk scheduler which selects requests from the queues in accordance with a fair queuing scheduling algorithm that considers the estimated time required to service the request at the head of a queue with regard for the size of the input or output associated with the request, the proportion of disk bandwidth assigned to the particular domain, and the state of the other queues.
摘要:
Received packets are processed utilizing protocol processing stages in an operating system, in accordance with a technique referred to as signaled receiver processing (SRP). A given protocol processing stage uses a next stage submit (NSS) function to pass a packet to a subsequent protocol processing stage. Each protocol processing stage is associated with one or more sockets. Each socket is associated with the input function of a protocol processing stage, an unprocessed input queue (UIQ) that contains packets destined to the socket but not yet processed by the socket's input function, and a list of owner processes, which expect input from the socket. NSS uses a multi-stage early demultiplexing (MED) function, which determines a packet's next destination socket, based on the stage currently processing the packet and on information contained in the packet. If the amount of buffering used by a packet plus the amount of input buffering already used by the packet's destination socket exceeds a designated limit associated with that socket, NSS drops the packet. Otherwise, NSS enqueues the packet in that socket's UIQ and signals that socket's owner processes. The signal triggers a default action corresponding to performance of the required protocol processing by one of the destination socket's owner processes, but those processes may override the default action by, e.g., deferring the required protocol processing until execution of a subsequent receive call.
摘要:
A computer operating system in which transfer of control of executing threads between protection domains is implemented using specific portals dedicated to the particular transfer of control between two protection domains. The transfer of control may also include parameter manipulation. A server registers a portal specification with a portal manager, the portal specification defining the behavior of portals which transfer control to the server. Thereafter, when a client application desires service from the server, the client application requests instantiation of a portal which will transfer control of an execution thread from the client application protection domain to the server protection domain. Upon receipt of the request, the portal manager dynamically generates portal code and updates a portal table associated with the client application, thus instantiating the portal. When the client application desires to invoke the server, the client application issues a system call instruction which results in switching the processor to privileged mode, followed by a lookup to the portal table and a transfer of control to the portal code identified in the portal table. The execution of the portal code results in transfer of control of the execution thread to the protection domain of the server. Various parameter manipulation techniques are disclosed for improving the efficiency of the transfer of control.
摘要:
A multimedia on-demand server including a randomly accessible library of multimedia programs (such as movies stored on magnetic or optical disks), a limited amount of RAM to buffer and store selected portions of programs retrieved from the library, and an interface that switchably routes program material from the library and RAM buffers to an audience of viewers. The server employs a restricted retrieval strategy and a novel storage allocation scheme that enable different portions of one or more programs to be continuously retrieved and selectively routed to a large number of on-demand viewers, while at the same time minimizing the amount of the RAM required to effect this service. The on-demand server also responds to viewer-generated commands to control the viewing of a program. In a particular embodiment, these commands include video tape player-like operations such as fast-forward, rewind and pause.
摘要:
A method and apparatus are disclosed for providing enhanced pay per view in a video server. Specifically, the present invention periodically schedules a group of non pre-emptible tasks corresponding to videos in a video server having a predetermined number of processors, wherein each task begins at predetermined periods and has a set of sub-tasks separated by predetermined intervals. To schedule the group of tasks, the present invention divides the tasks into two groups according to whether they may be scheduled on a single processor. The present invention schedules each group separately. For the group of tasks not scheduleable on a single processor, the present invention determines a number of processors required to schedule such group and schedules such tasks to start at a predetermined time. For the group of tasks scheduleable on a single processor, the present invention determines whether such tasks are scheduleable on the available processors using an array of time slots. If the present invention determines that such group of tasks are not scheduleable on the available processors, then the present invention recursively partitions such group of tasks in subsets and re-performs the second determination of scheduleability. Recursive partitioning continues until the group of tasks is deemed scheduleable or no longer partitionable. In the latter case, the group of tasks is deemed not scheduleable.
摘要:
A method for managing a buffer pool containing a plurality of queues is based on consideration of both (a) when to drop a packet and (b) from which queue the packet should be dropped. According to the method a packet drop is signaled with the global average queue occupancy exceeds a maximum threshold and is signaled on a probabilistic basis when the global occupancy is between a minimum threshold and the maximum threshold. Each queue has a particular local threshold value associated with it and is considered to be “offending” when its buffer occupancy exceeds its local threshold. When a packet drop is signaled, one of the offending queues is selected using a hierarchical, unweighted round robin selection scheme which ensures that offending queues are selected in a fair manner. A packet is then dropped from the selected offending queue.
摘要:
In a server system having a predetermined total bandwidth providing data files to a plurality of clients in response to requests received from the clients, a method for providing admission control comprises the steps of allocating a plurality of channel partitions to a plurality of channel groups such that each channel group includes one or more of the channel partitions. The system then obtains a channel group number based on the length of the data file requested by one of the clients and transmits the requested data file when a channel group corresponding to the obtained channel group number contains a vacant channel partition.