Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

A computer system handling multiple applications wherein groups of I/O services are accessible through separate application programming interfaces. Each application has multiple application programming interfaces by which to access different families of I/O services, such as I/O devices.

InventorsHolly N. Knight, Carl D. Sutton, Wayne N. Meretsky, Alan B. Mimms
Original AssigneeApple Computer, Inc.
Primary Examiner: Rehana Perveen
Current U.S. Classification710/72; 707/999.104; 707/999.107; 719/328
International Classification: G06F 940; G06F 1314

View patent at USPTO
Search USPTO Assignment Database

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US4593352Mar 11, 1983Jun 3, 1986International Business Machines Corp.Method and device for exchanging information between terminals and a central control unit
US4727537Dec 24, 1985Feb 23, 1988American Telephone and Telegraph Company
AT&T Information Systems, Inc.
Flow control arrangement for the transmission of data packets to a communication network
US4908859Jan 22, 1988Mar 13, 1990M/A-COM Government Systems, Inc.
Cable/Home Communication Corp.
Receiver access interface to service components in television channel
US4982325Mar 18, 1988Jan 1, 1991AT&T Bell LaboratoriesApplications processor module for interfacing to a database system
US5129086Nov 29, 1988Jul 7, 1992International Business Machines CorporationSystem and method for intercommunicating between applications and a database manager
US5148527Nov 22, 1989Sep 15, 1992International Business Machines CorporationInterface for independently establishing a link and transmitting high level commands including logical addresses from dedicated microprocessor to shared intelligent memory
US5197143Oct 1, 1990Mar 23, 1993Digital Equipment CorporationDevice and method for distributing information in a computer system
US5430845Jun 17, 1992Jul 4, 1995Unisys CorporationPeripheral device interface for dynamically selecting boot disk device driver
US5491813Nov 18, 1994Feb 13, 1996International Business Machines CorporationDisplay subsystem architecture for binding device independent drivers together into a bound driver for controlling a particular display device
US5513365Sep 6, 1994Apr 30, 1996International Business Machines CorporationDisplay adapter interface layer
US5535416Jun 1, 1995Jul 9, 1996International Business Machines Corp.Method for allowing application program in computer system to access device directly in exclusive mode by bypassing operating system and blocking requests from other programs
US5537466Sep 23, 1994Jul 16, 1996British Telecommunications, plc.Intelligent communications networks
US5553245May 11, 1994Sep 3, 1996Macronix International Co., Ltd.Automatic configuration of multiple peripheral interface subsystems in a computer system
US5572675Apr 22, 1994Nov 5, 1996Alcatel N.V.Application program interface

Referenced by

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US6078951Nov 27, 1996Jun 20, 2000Intel CorporationMethod and apparatus for automating a software delivery system by locating, downloading, installing, and upgrading of viewer software
US6161152Jun 4, 1998Dec 12, 2000Intel CorporationSystem for providing asynchronous I/O operations by identifying and polling a portal from an application process using a table of entries corresponding to I/O operations
US6178464May 10, 1996Jan 23, 2001Apple Computer, Inc.System and method for canceling a computer request
US6216196May 14, 1999Apr 10, 2001Ariel CorporationSystem and method for multiple device drivers to arbitrate for a single device
US6370592Nov 4, 1997Apr 9, 2002Hewlett-Packard CompanyNetwork interface device which allows peripherals to utilize network transport services
US6408344Mar 4, 1999Jun 18, 2002Sharp Kabushiki KaishaMethod and apparatus for file transfer and computer readable recording medium recording a file transfer program
US6754734Dec 18, 2001Jun 22, 2004International Business Machines CorporationSystems, methods, and computer program products to improve performance of ported applications, such as a database
US6754736Jun 14, 2000Jun 22, 2004Fujitsu LimitedInformation processing apparatus, data inputting/outputting method, and program storage medium therefor
US6782539Jul 29, 1999Aug 24, 2004Sony United Kingdom LimitedData processing for video special effects system
US6877045Dec 18, 2001Apr 5, 2005International Business Machines CorporationSystems, methods, and computer program products to schedule I/O access to take advantage of disk parallel access volumes
US7003780Dec 11, 2000Feb 21, 2006International Business Machines CorporationMethod and an apparatus to extend the logic volume manager model to allow device management plug-ins
US7036126Dec 11, 2000Apr 25, 2006International Business Machines CorporationMethod and an apparatus for logical volume manager plug-ins
US7113937Dec 18, 2001Sep 26, 2006International Business Machines CorporationSystems, methods, and computer program products to improve performance of ported applications, such as a database, operating on UNIX system services for the OS/390
US7213247Jan 10, 2000May 1, 2007Wind River Systems, Inc.Protection domains for a computer operating system
US7310689Apr 14, 2004Dec 18, 2007International Business Machines CorporationBypassing disk I/O operations when porting a computer application from one operating system to a different operating system
US7351151Aug 19, 2002Apr 1, 2008Sierra Design GroupGaming board set and gaming kernel for game cabinets
US7451459May 5, 2003Nov 11, 2008Microsoft CorporationSystems, methods, and apparatus for indicating processor hierarchical topology
US7818758May 2, 2006Oct 19, 2010Mobitv, Inc.Efficient multi-protocol software architecture with shared resources for different applications
US8041848Aug 4, 2008Oct 18, 2011Apple Inc.Media processing method and device
US8174503May 17, 2008May 8, 2012David H. CainTouch-based authentication of a mobile device through user generated pattern creation

Claims

1. A computer system comprising:

a bus;
at least one memory coupled to the bus for storing data and programming instructions that include applications and an operating system; and
a processing unit coupled to the bus and running the operating system and applications by executing programming instructions, wherein an application has a first plurality of tailored distinct programming interfaces available to access a plurality of separate sets of computer system services provided through the operating system of the computer system via service requests.

2. The computer system defined in claim 3 wherein each of the first plurality of tailored distinct programming interfaces are tailored to a type of I/O service provided by each set of I/O services.

3. A computer system comprising:

a bus;
at least one memory coupled to the bus for storing data and programming instructions that include applications and an operating system, wherein the operating system comprises a plurality of servers, and each of the first plurality of programming interfaces transfer service requests to one of the plurality of servers, wherein each of the plurality of servers responds to service requests from clients of the separate sets of I/O services; and
a processing unit coupled to the bus and running the operating system and applications by executing programing instructions, wherein an application has a first plurality of tailored distinct programming interfaces available to access a plurality of separate sets of I/O services provided through the operating system via service requests.

4. The computer system defined in claim 3 wherein service requests are transferred as messages in a messaging system.

5. The computer system defined in claim 4 wherein each of the plurality of servers supports a message port.

6. The computer system defined in claim 3 wherein at least one of the plurality of servers is responsive to service requests from applications and from at least one other set of I/O services.

7. The computer system defined in claim 3 wherein the operating system further comprises a plurality of activation models, wherein each of the plurality of activation models is associated with one of the plurality of servers to provide a runtime environment for the set of I/O services to which access is provided by said one of the plurality of servers.

8. The computer system defined in claim 7 wherein at least one instance of a service is called by one of the plurality of servers for execution in an environment set forth by one of the plurality of activation models.

9. A computer system comprising:

a bus;
at least one memory coupled to the bus for storing data and programming instructions that comprise applications and an operating system;
a processing unit coupled to the bus and running the operating system and applications by executing programming instructions, wherein the operating system provides computer system services through a tailored distinct one of a plurality of program structures, each tailored distinct program structure comprising:
a first programming interface for receiving service requests for a set of computer system I/O services of a first type,
a first server coupled to receive service requests and to dispatch service requests to the computer system I/O services,
an activation model to define an operating environment in which a service request is to be serviced by the set of computer system I/O services, and
at least one specific instance of the set of computer system I/O services that operate within the activation model.

10. The computer system defined in claim 9 wherein the first programming interface is responsive to request from applications and from other program structures.

11. The computer system defined in claim 9 wherein the first programming interface comprises at least one library for converting functions into messages.

12. The computer system defined in claim 9 wherein the first server receives a message corresponding a service request from the first programming interface, maps the message into a function called by the client, and then calls the function.

13. The computer system defined in claim 9 wherein the message comprises a kernel message.

14. A computer system comprising:

a bus;
at least one memory coupled to the bus for storing data and programming instructions that comprise applications and an operating system;
a processing unit coupled to the bus and running the operating system and applications by executing programming instructions, wherein the operation system provides input/output (I/O) services through a tailored distinct one of plurality of program structures, each tailored distinct program structure comprising:
a first programming interface for receiving service requests for a set of I/O services of a first type,
a first server coupled to receive service requests and to dispatch service requests to the I/O services,
an activation model to define operating environment in which a service request is to be serviced by the set of I/O services, and
at least one specific instance of the set of I/0 services that operate within the activation model, wherein one of the said at least one specific instances comprises a service that accesses another program structure, and further wherein said one of said at least one specific instances communicates to said another program structure of a second type using a message created using a library sent to the server of said another program structure.

15. The computer system defined in claim 9 wherein two or more I/O services share code or data.

16. The computer system defined in claim 15 wherein said two or more I/O services are different types.

17. The computer system defined in claim 9 wherein the program structure further comprises a storage mechanism to maintain identification of available services to which access is provided via the first server.

18. A computer implemented method of accessing I/O services of a first type, said computer implemented method comprising the steps of:

generating a service request for a first type of I/O services;
a tailored distinct family server, operating in an operating system environment and dedicated to providing access to service requests for the first type of I/O service, receiving and responding to the service request based on an activation model specific to the first type of I/O services; and
a processor running an instance of the first type of I/O services that is interfaces to the file server to satisfy the service request.

19. The method defined in claim 18 wherein the service request is generated by an application.

20. The method defined in claim 18 wherein the service request is generated by an instance of an I/O service running in the operating system environment.