IP Library Granted Patent US 7,457,886
Granted Patent B1
US 7,457,886 · App. 10/867,622 · Granted Nov 25, 2008

System and method for input/output scheduling

Assignee: Apple Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,457,886
App. No.
10/867,622
Granted
Nov 25, 2008
Kind
B1
Abstract

A system and method for Input/Output scheduling are described herein. In one embodiment, the method includes installing a plurality of Input/Output (I/O) schedulers to schedule I/O requests for a plurality of I/O devices, wherein each of the I/O schedulers schedules I/O requests according to a different scheduling method. The method also includes scheduling one of the I/O requests with at least one of the plurality of I/O schedulers. The method also includes determining that a second I/O scheduler replaces an I/O scheduler of the plurality of I/O schedulers, installing the second I/O scheduler, and scheduling one of the I/O requests with the second scheduler.

Claims (65)

1. A method comprising:

installing a plurality of Input/Output (I/O) schedulers to schedule I/O requests for a plurality of I/O devices, wherein the I/O schedulers are installed in an operating system;

scheduling at least one of the I/O requests with a selected I/O scheduler of the plurality of I/O schedulers, and transmitting I/O requests to the selected scheduler;

determining that a replacement I/O scheduler will replace selected I/O scheduler;

terminating transmitting of I/O requests to the selected scheduler;

retrieving all I/O requests from at least one queue of the selected I/O scheduler;

storing the retrieved I/O requests in a temporary queue;

replacing the selected I/O scheduler with the replacement I/O scheduler, wherein the replacing occurs during execution of the operating system;

retrieving I/O requests from the temporary queue; and

scheduling one of the retrieved I/O requests with the replacement scheduler.

2. The method of claim 1 , wherein each of the I/O schedulers schedules I/O requests according to a different scheduling method.

3. The method of claim 1 , wherein the determining is performed in response to at least one of an application program request for the replacement scheduler and a control program request for the replacement scheduler.

4. The method of claim 1 , wherein one of the I/O schedulers of the first set schedules I/O requests according to at least one of the first-in first-out scheduling method, the round robin scheduling method, and the real-time scheduling method.

5. A method comprising:

receiving an Input/Output (I/O) scheduler selection from an application program, wherein the I/O scheduler selection indicates a replacement I/O scheduler for selecting by an operating system from a set of uninstalled I/O schedulers, wherein the replacement I/O scheduler will schedule I/O requests for service by one of a plurality of I/O devices;

selecting an installed I/O scheduler from a set of installed I/O schedulers;

retrieving all I/O requests from the queue of the installed I/O scheduler, and temporarily storing the retrieved I/O requests;

terminating the installed I/O scheduler;

implementing a replacement I/O scheduler in place of the terminated I/O scheduler;

transmitting the stored I/O requests to the replacement I/O scheduler; and

executing the I/O requests by at least one of the plurality of I/O devices.

6. The method of claim 5 , wherein the replacement I/O scheduler includes a disk-scheduling method.

7. The method of claim 5 , wherein the application program is a Web browser.

8. A machine-readable storage medium that provides instructions, which when executed by a machine, cause the machine to perform operations comprising:

installing a plurality of Input/Output (I/O) schedulers to schedule I/O requests for a plurality of I/O devices, wherein the I/O schedulers are installed in an operating system;

scheduling at least one of the I/O requests with a selected I/O scheduler of the plurality of I/O schedulers, and transmitting I/O requests to the selected scheduler;

determining that a second I/O scheduler will replace the selected I/O scheduler;

terminating transmitting of I/O requests to the selected scheduler;

retrieving all I/O requests from at least one queue of the selected I/O scheduler;

storing the retrieved I/O requests in a temporary queue;

replacing the selected I/O scheduler with the second I/O scheduler, wherein the replacing occurs during execution of the operating system;

retrieving I/O requests from the temporary queue; and

scheduling one of the retrieved I/O requests with the replacement scheduler.

9. The machine-readable storage medium of claim 8 , wherein each of the I/O schedulers schedule I/O requests according to a different scheduling method.

10. The machine-readable storage medium of claim 8 , wherein the determining is performed in response to at least one of an application program request for the replacement scheduler and a control program request for the replacement scheduler.

11. The machine-readable storage medium of claim 8 , wherein one of the I/O schedulers of the first set schedules I/O requests according to at least one of the first-in first-out scheduling method and a real real-time scheduling method.

12. A machine-readable storage medium that provides instructions, which when executed by a machine, cause the machine to perform operations comprising:

receiving an Input/Output (I/O) scheduler selection from an application program, wherein the I/O scheduler selection indicates a replacement I/O scheduler for selecting by an operating system from a set of uninstalled I/O schedulers, wherein the replacement I/O scheduler will schedule I/O requests for service by one of a plurality of I/O devices;

selecting an installed I/O scheduler from a set of installed I/O schedulers;

retrieving all I/O requests from the queue of the installed I/O scheduler, and temporarily storing the retrieved I/O requests;

terminating the installed I/O scheduler;

implementing a replacement I/O scheduler in place of the terminated I/O scheduler;

transmitting the stored I/O requests to the replacement I/O scheduler; and

executing the I/O requests by at least one of the plurality of I/O devices.

13. The machine-readable storage medium of claim 12 , wherein the first I/O scheduler includes a disk-scheduling method.

14. The machine-readable storage medium of claim 12 , wherein the application program is a Web browser.

15. The apparatus of claim 12 , wherein each I/O scheduler of the second set utilizes a different scheduling method.

16. The apparatus of claim 12 , wherein the plurality of I/O devices are selected from a set consisting essentially of at least two of a disk drive, a CD-ROM drive, a random access memory device, a display, a universal serial bus device, and an IEEE 1394 compliant device.

17. The apparatus of claim 12 , wherein the I/O request source includes one of an application program and control program.

18. The apparatus of claim 12 , wherein one of the plurality of I/O schedulers utilizes real-time scheduling methods.

19. A computing system comprising:

one or more processors;

at least one I/O device;

a I/O manager operable to manage a plurality of I/O schedulers that schedule requests communicated between the one or more processors and the I/O device, the I/O manager operable to dynamically replace a first I/O scheduler with a second I/O scheduler to handle one or more requests from a request source for servicing by the at least one I/O device, wherein the first and the second I/O schedulers employ different scheduling techniques;

a machine-readable storage medium that provides instructions, which when executed by a machine, cause the machine to perform operations comprising:

receiving an Input/Output (I/O) scheduler selection from an application program, wherein the I/O scheduler selection indicates a replacement I/O scheduler for selecting by an operating system from a set of uninstalled I/O schedulers, wherein the replacement I/O scheduler will schedule I/O requests for service by one of a plurality of I/O devices;

selecting an installed I/O scheduler from a set of installed I/O schedulers;

retrieving all I/O requests from the queue of the installed I/O scheduler, and temporarily storing the retrieved I/O requests;

terminating the installed I/O scheduler;

implementing a replacement I/O scheduler in place of the terminated I/O scheduler;

transmitting the stored I/O requests to the replacement I/O scheduler; and

executing the I/O requests by the I/O device.

20. The computing system of claim 19 , wherein the I/O manager is operable to dynamically replace comprises the manager operable to replace an I/O scheduler while avoiding rebooting the apparatus.

21. The computing system of claim 19 , wherein the I/O device is selected from a set consisting essentially of a peripheral I/O device and an integrated I/O device.

22. The computing system of claim 19 further comprising one or more interfaces coupled with the one or more processors, wherein the one or more interfaces are selected from a set consisting essentially of a universal serial bus interface, a serial bus interface, a peripheral component interface, and a digital interface substantially compliant with the IEEE 1394 standard.

Assignments (1)
CHANGE OF NAME Recorded Aug 3, 2015
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 036240/0322 →
Continuity (1)
Continuation 1077085600 · Feb 3, 2004