EP0948769A1 - Real time services in backwardly compatible operating systems - Google Patents

Real time services in backwardly compatible operating systems

Info

Publication number
EP0948769A1
EP0948769A1 EP97953454A EP97953454A EP0948769A1 EP 0948769 A1 EP0948769 A1 EP 0948769A1 EP 97953454 A EP97953454 A EP 97953454A EP 97953454 A EP97953454 A EP 97953454A EP 0948769 A1 EP0948769 A1 EP 0948769A1
Authority
EP
European Patent Office
Prior art keywords
operating system
computer
virtual
virtual machine
device driver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP97953454A
Other languages
German (de)
English (en)
French (fr)
Inventor
Richard Tarquini
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cirrus Logic Inc
Original Assignee
Cirrus Logic Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cirrus Logic Inc filed Critical Cirrus Logic Inc
Publication of EP0948769A1 publication Critical patent/EP0948769A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Definitions

  • This invention relates to multitasking computer systems and methods, and, more particularly, to techniques for ensuring adequate CPU resources to a real time application serviced by an operating system which is backwardly compatible to permit the execution of DOS applications.
  • Newly designed microprocessors may include enlarged memory addressing facilities and revised architecture which result in enhanced capabilities. When such microprocessors are used in new computer systems, they often produce computers which are functionally superior to their predecessors due to these enhanced capabilities. Despite any functional advantages a new computer may have over its predecessors, a computer employing an improved microprocessor may not be a commercial success.
  • Computer programs, sometimes referred to as "software,” are microprocessor specific. Therefore, when a computer employing a new microprocessor is introduced into the marketplace, there is generally little or no software which can run on it. Existing software, written for previous microprocessors, is likely incompatible with the new computer.
  • the microprocessor will emulate a prior microprocessor and run existing programs written for the prior microprocessor.
  • the microprocessor will make full use of its enhanced capabilities.
  • Such a design will enable manufacturers of computer systems using the microprocessor to advertise that the entire body of existing programs written for the prior microprocessor will run on their computer, thereby (in theory) stimulating computer sales to a point where software writers will begin to write programs designed to run in the new enhanced mode .
  • One such microprocessor is the Intel 80286, which ia manufactured by the Intel Corporation of Santa Clara, California.
  • the design and operation of the Intel 80286 is described in detail in a publication entitled "iAPX286 Programmer's Reference Manual Including the iAPX286 Numeric Supplement,” which is available from the Intel Corporation and is hereby incorporated by reference.
  • the Intel 80286 (hereinafter "80286") operates in two modes. In a first mode, called the "real mode," the 80286 emulates the architecture of Intel's previous 8086, 8088 microprocessor family, which is used in the IBM PC and compatible computers, for example.
  • computer which incorporate the 80286 microprocessor such as the IBM PC/AT, can run existing 8086 programs written for the IBM PC and compatible computers.
  • the 80286 architecture provides enlarged memory addressing capability, enhanced multitasking support features, and a sophisticated protection scheme.
  • Intel 80386 Another such microprocessor is the Intel 80386.
  • the design and operation of the Intel 80386 is described in detail in a publication entitled "iAPX386 Programmer's Reference Manual Including the iAPX386 Numeric Supplement", which is available from the Intel Corporation and is hereby incorporated by reference.
  • virtual 8086 the 80386 emulates the 8086 processor in a manner similar to the real mode.
  • real and virtual-8086 mode is that in virtual-8086 mode the 80386 provides memory-management, protection, and multitasking support.
  • the virtual-8086 mode allows 8086 programs to execute as a task on the 80386. Each task in virtual-8086 mode has the illusion that it is executing on a 8086.
  • a virtual machine monitor which is special operating-system software, coordinates the multitasking of several 8086 programs.
  • the VMM executes in protected mode. There are two standard techniques for transferring control from a task to a VMM so that another task can be started. First, the VMM configures to 80386 so that all interrupts, software and hardware, that are executed by an 8086 program cause control to be transferred to the VMM. Second, the VMM sets a timer interrupt. When interrupted after the specified interval, the A/MM receives control.
  • DOS disk operating system
  • MS-DOS Version 3.X offered by Microsoft Corporation of Redmond, Washington
  • DOS is not designed to support a multitasking environment.
  • problems can occur when DOS is interrupted. If DOS is randomly interrupted during the execution of a function, such as during execution of an interval timer, then the transfer to another task can cause the DOS data structures to be corrupted. Consequently, a A/MM will allow DOS to complete a function before another task is started. Upon exit from a DOS system call, the DOS data structures are in an appropriate state.
  • a timer interrupt of system calls of indefinite duration is insufficient because the A/MM does not know whether the DOS was in a state where the data structures were non-corruptible.
  • the breakpoint locations used for insertion of a virtual machine breakpoint by Hargrove are located in DOS system calls of indefinite duration, such calls to read a keyboard call. If no key is pressed, then the application will hold until a key is pressed. Hargrove provides no examples of placing virtual machine breakpoints at any other type of location.
  • Hargrove's technique requires that a copy of the selected routine be separately stored to recover portions of the code overwritten by the one byte virtual machine breakpoint instruction in the executable code. This is complicated and requires unnecessary process steps and storage.
  • the Windows95 operating system is an operating system of the type described above which is subject to CPU hogging by a DOS application running in a virtual machine environment .
  • IASPOX IBM Operating System
  • IASPOX operating system brings along with it significant overhead in regard to system memory and CPU usage and utilization. IASPOX must be purchased and installed separately on the host computer. IASPOX takes over the PC's scheduling of tasks and only runs windows applications/drivers when IASPOX applications are idle. IASPOX reprograms the real-time clock to approximately 900 microsecond granularity, incurring significant interrupt (15 ⁇ Sec per interrupt on 486/66Mhz in protected mode) overhead even if no IASPOX tasks are running. Rounded down to 1000 interrupts per/second or once every millisecond and the interrupt latency alone would consume 1.5% of CPU without executing any code.
  • IASPOX is not endorsed by Microsoft since it does not follow the VxD programming model and undermines the Window 95 kernel. Approximately 80% of the current IASPOX code is already in Windows95, leading to redundant interfaces and needless memory consumption. It also requires programmers to lean a new kernel and associated primitives, tools and development environment (15MB of disk space) .
  • IASPOX apparently runs as a super operating system with Windows95 operating as a task thereunder. In this way, IASPOX maintains control over access to the processor, regardless of the Windows95 state.
  • real time applications can be guaranteed CPU access regardless of the state of any applications, including DOS applications concurrently running.
  • nested execution/priority event mechanisms provided by a virtual machine manager are utilized to provide that access.
  • the invention is implemented as a process, called Real Time Services or RTS .
  • RTS is implemented as a Virtual Device Driver (VxD) which schedules a priority call back function to be run, regardless of which application or virtual machine is executing.
  • VxD Virtual Device Driver
  • the invention relates to methods and apparatus for scheduling a repetitive process in a computer by running a scheduling process which interacts with the operating system and at least one process or device to ensure CPU access regardless of the state of any application running on the computer.
  • Figure 1 is a representation of an exemplary prior art operating system useful for carrying on the invention.
  • Figure 2 is a block diagram of components of an exemplary device driver for the operating system shown in Figure 1.
  • FIG 3 is a block diagram illustrating how real time services (RTS) are implemented as a virtual device driver in accordance with the invention.
  • Figure 4 is a block diagram of a host based modem using real time services in accordance with the invention to ensure adequate CPU access from modem functions .
  • Figure 5 is a timing representation illustrating interprocess communications between RTS and the modem VxD and operating systems services supported by the virtual machine manager and a virtual device driver for a timing device (VTD) .
  • Figure 6 is a timing representation of interprocess communications used periodically to activate a modem's BACKGROUND function.
  • Figure 7 is a timing representation of interprocess communications used to act as a heartbeat for the modem.
  • Figure 8 is a timing representation of inter process communication used to permit an application to initiate a transfer at a time which will not interfere with other processes.
  • FIG. 1 is a representation of an exemplary prior art operating system useful for carrying out the invention.
  • the application layer 100 includes a variety of applications including 32 bit applications as well as 16 bit applications and DOS applications.
  • Shell 110 acts an interface to operating system core features.
  • the core is composed of three comments - a user area, a kernel area, and a graphical device interface.
  • the User component manages input from the keyboard, mouse, and other input devices and output to the user interface (windows, icons, menus, and so on) . It also manages interaction with sound driver, timer, and communications ports.
  • the Operating System described in Figure 1, preferably Windows95, uses an asynchronous input model for all input to the system and applications. As the various input devices generate interrupts, the interrupt handler converts these interrupts to messages and sends the messages to a raw input thread area, which in turn passes each message to the appropriate message queue. Although each 32 bit -based thread can have its own message queue, all 16 bit- based applications share a common message queue.
  • the Graphical Device Interface is the graphical system that manages what appears on the screen. It also provides graphics support for printers and other output devices. It draws graphic primitives, manipulates bitmaps, and interacts with device-independent graphic drivers, including those for display and printer output device drivers.
  • the Kernel provides base operating system functionality including file I/O services, virtual memory management and task scheduling. Exception handling is another service of the
  • Kernel also allocates virtual memory, resolves import references, and supports demand paging for the application.
  • the Kernel provides services to both 16-bit and 32-bit applications.
  • the central information database in the operating system is called the Registry. This hierarchical database both simplifies the operating system and makes it more adaptable.
  • a primary role of the Registry in the operating system is to serve as a central repository for hardware-specific information for use by the hardware detection and Plug and Play system components.
  • the operating system maintains information about hardware components and devices that have been identified through an enumeration process in the hierarchical structure of the Registry.
  • the system checks the existing configuration in the Registry to determine the hardware resources (for example, IRQs, I/O addressees, DMA channels, and so on) that re not being used, so the new device can be properly configured without conflicting with a device already installed in the system.
  • the Configuration Manager provides for all resources needed by each device on the computer
  • another component the Virtual Machine Manager
  • the Virtual Machine Manager creates and maintains the virtual machine environments in which applications and system processes run.
  • a virtual machine is an environment in memory that, from the application's perspective, looks as if it is a separate computer, complete with all of the resources Machine Manager provides each application with the system resources it needs.
  • the operating system has a single A/M called the
  • System A/M in which all system processes run.
  • all 32 bit-based and 16 bit-based applications run in this A/M.
  • Each MS-DOS-based application runs in its own AM.
  • the Process Scheduler is the component responsible for providing system resources to the applications and other processes you run, and for scheduling processes to allow multiple applications to run concurrently.
  • the Process Scheduler also schedules processes in a way that allows multiple applications and other processes to run concurrently.
  • the operating system uses two methods for concurrent process scheduling - cooperative multitasking and preemptive multitasking.
  • the operating system uses preemptive mul ti tasking for 32 bit-based applications. This means that the operating system takes control away from or gives control to another running task, depending on the needs of the system.
  • 32 bit-based applications do not need to yield to other running tasks to multitask properly.
  • 32 bit-based applications can take advantage of mul ti threading, a mechanism that the operating system provides to facilitate the ability to run applications concurrently.
  • a 32 bit -based application running in the system is called a process in terms of the operating system.
  • Each process consists of at least a single thread of execution that identifies the code path flow as it is run by the operating system.
  • a thread is a unit of code that can get a time slice from the operating system to run concurrently with other units of code, and must be associated with a process.
  • a 32 bit-based application can initiate multiple threads for a given process to enhance the application for the user by improving throughput, enhancing responsiveness, and aiding background processing. Because of the preemptive multitasking nature of the operating system, threads of execution allow code to be smoothly processed in the background.
  • the IFS Manager arbitrates access to file system devices, and other file system device components.
  • the operating system architecture includes a Configuration Manager, which orchestrates the configuration process . This process might involve many bus and device architectures coexisting on a single system, with more than one device type using the same bus architecture, yet with each device having a separate set of configuration requirements.
  • a bus is the mechanism that allows information to be transferred between the computer and the device.
  • a mouse and a keyboard can both use the same keyboard controller bus; a CD-ROM drive and a hard disk drive might both use the same SCSI bus.
  • Configuration Manager works with a number of subcomponents to identify each bus and each device on the system, and to identify the configuration settings for each device. Configuration Manager ensures that each device on the computer can use an IRQ, I/O port addresses, and other resources without conflict with other devices .
  • Configuration Manager also helps monitor the computer for changes in the number and type of devices present and manages the reconfiguration of the devices, as needed, when changes take place. As these events occur, Configuration Manager communicates the information to applications.
  • Configuration Manager calls on the bus enumerators to identify all the devices on their specific buses and their respective resource requirements .
  • the operating system provides improved support for hardware devices and peripherals including disk devices, display adapters, mice and other pointing devices, modems, fax machines, and printers.
  • a universal driver (210) includes most of the code necessary for devices in a particular class of devices (such as printers or modems) to communicate with the appropriate operating system components (such as the printing or communications subsystems) .
  • a mini-driver (220) is the relatively small and simple driver than contains any additional instructions needed by a specific device.
  • the universal driver for a particular category of devices also includes the code needed to operate devices designed to the most common standard for that category. (For example, the Unimodem driver works with all modems supporting AT commands . )
  • VxD is a 32-bit, protected-mode driver that manages a system resource, such as a hardware device or installed software, so that more than one application can use the resource at the same time.
  • VxD refers to a general virtual device driver - the x represents the type of device driver.
  • a virtual device driver for a display device is known as a VDD
  • a virtual device driver for a timer device is a VTD
  • a virtual device driver for a printer device is a VPD, and so forth.
  • VxDs were statically loaded and took up a lot of memory space.
  • the operating system being described dynamically loads VxDs - that is, only those that are needed at any given time are loaded into memory.
  • the new VxDs don't require all of their memory to be page-locked, thereby further increasing the available memory in the system.
  • VxDs support all hardware devices for a typical computer, including disk controllers, serial and parallel ports, keyboard and display devices, and so on. If the state of the hardware device can be disrupted by switching between multiple applications, the device must have a corresponding virtual device for each application which ensures that the device is in the correct state whenever an application continues .
  • FIG. 3 is a block diagram illustrating how real time services (RTS) are implemented as a virtual device driver in accordance with the invention. As shown in Figure 3, at the ring three level, the system virtual machine runs a plurality of 32 bit applications in a separate address space. However, 16 bit applications are run in a single address space. In addition, DOS applications run as separate virtual machines as indicated. The virtual machine manager subsystem is shown at ring zero.
  • RTS real time services
  • Real time services being implemented as a virtual device driver, has access to certain virtual memory managers subsystem capabilities necessary to ensure CPU access to real time services when that is needed. This is explained more hereinafter.
  • FIG. 4 is a block diagram of a host based modem using real time services in accordance with the invention to ensure adequate CPU access for modem functions.
  • the software architecture of the application being described is partitioned into a plurality of layers for convenience of description.
  • 32 bit applications such as Window application 401 and DOS applications, such as application 402 may be running simultaneously.
  • the virtual machine manager 413 is illustrated together with the configuration manager 412. These were discussed.
  • VCOMM block 411 is a communications device driver that provides the protected mode services that allow windows based applications and drivers to use ports and modems. To conserve system resources, communications drivers are loaded into memory only when in use by applications. Also, VCOMM uses Plug and Play services in the operating system to assist with configuration and installation of communications devices.
  • Real time services block 414 is shown partially within layer 410 and partially within layer 420.
  • the heavy line 480 is designed to symbolize the boundary between the operating system and the software for the host based modem of this particular example.
  • the boundary line is not meant to represent a fixed boundary but rather to indicate that from application to application, more or less of the code may be implemented either in the operating system side or the modem side of the software stack.
  • the fact that RTS crosses the boundary 480 is merely indicative of the fact that RTS serves as an interface to the virtual machine manager 413 for modem services.
  • 16 bit applications run in a single address space. They are cooperatively scheduled, rather than preemptively scheduled.
  • the 32 bit applications shown as operating in a single separate address space are preemptively scheduled and therefore get CPU attention when needed.
  • the 16 bit applications perform scheduling using a message board.
  • a modem has utilized a microcontroller and a data pump. It would be desirable to eliminate the micro controller and have the processing that would otherwise have been done by the microcontroller be done by the host.
  • the ACU background process or function is roughly analogous to a main routine and calls a plurality of subordinate routines sequentially.
  • the ACU background loop would run continuously and be handled by the microcontroller.
  • the microcontroller functionality being handled by the host, in a host based modem environment, one needs to ensure that sufficient CPU access and time exist to permit modem functions to reliably occur without, for example, dropping any connections or characters.
  • the windows interface layer 420 includes port driver interface 421, DOS COMM port virtualization 422 and plug and play interface 423. These modules permit the applications of layer 400 to access, through the operating system, the main code for the modem.
  • Each of the interfaces of the windows interface layer communicate with a universally synchronous receiver transmitter (UART) emulation module 431. This, too, permits each of the interface modules of the interface layer to have a standard interface to the code below.
  • the module layer, 440 includes a fax module 441, a data module 442 (V.42) a voice module (VCE) (443) and a DTE module 445. Modules 441 - 443 handle the data for the respective types of services.
  • ACU stands for Automatic Control Unit and serves to configure the modem.
  • ACU operates as a background process which repetitively calls all subordinate routines sequentially. If a particular module 442 has work to do, it will hold the background process while its work is completed before passing control to the next module listed in the loop. As discussed above, if the ACU module does not get activated frequently enough, characters or connections may be lost for the various services .
  • the DTE module 445 of layer 440 manages moves of I/O buffer information to the respective modules.
  • Module I/O layer 450 contains respective interfaces for the various types of service modules 441 - 443 together with a modem task 454.
  • Modem task 454 provides a standardized interface to the modules within its layer and above insulating them from the peculiarities of the data pump 472.
  • the interrupt layer includes a data transmit/receive module 461 which moves characters from the data pump through the PCI/0 interface 471 to the service I/O modules 451 - 453 and then to corresponding modules 441 and 443. It is particularly important that the interrupt layer timely service the data pump to ensure that no characters are lost as result of buffer overflow or the like.
  • Timer 462 helps do that. The timer is periodically activated by RTS 414 to ensure a sufficiently frequent heartbeat to the modem.
  • FIG. 5 is a timing representation illustrating interprocess communications between RTS and the modem VxD and operating system services supported by the virtual machine manager and a virtual device driver for a timing device (VTD) .
  • This particular drawing includes several services running simultaneously. To facilitate explanation of each of the types of services running, portions of this drawing will be extracted and displayed in subsequent figures. Three principal services are being illustrated simultaneously in Figure 5. The first is the background call back which activates the ACU in the modem in a timely fashion to ensure adequacy of modem functions. The second service is one designed to ensure a frequent heartbeat for the modem. The third service permits an application process to initiate a transfer at a time which will not interfere with other processes. These are shown respectively in Figures 6 - 8.
  • the process begins with a request from the modem device driver to RTS to register a background call back.
  • RTS invokes the set_global_timeout command to the virtual machine manager.
  • RTS also sends a VTD_begin_min_int Period to set the granularity of the timer.
  • the timer is set at a default of 54 milliseconds. However, it may be reduced, using this command, to as small as the granularity of a programmable interrupt timer (PIT) allows, such as an Intel 8253 timer.
  • PIT programmable interrupt timer
  • the modem VxD sets a background timeout interval . Typically, this is a hundred milliseconds or less.
  • the global timeout occurs and the VMM module notifies RTS.
  • RTS then sends a schedule_global_event command to the VMM and receives a global event scheduled response .
  • a background call to ACU is executed and another set global_timeout command is sent to the A/MM.
  • the last four interchanges between the RTS and the A/MM constitute a repetitive set which occur periodically, resulting in execution of the ACU background process periodically.
  • Figure 7 is a timing representation of interprocess communications used to act as a heartbeat for the modem.
  • the modem VxD registers a timer call back with RTS and sets the timer time out interval.
  • RTS sends a set_async_timer to the VMM and, when that timer times out, RTS is notified by A/MM and executes a timer call back which triggers a heartbeat or a decrement of the modem clock in the modem code.
  • RTS again sends a set_async_timer command to the A/MM.
  • FIG. 8 is a timing representation of interprocess communication used to permit an application in layer 400 to initiate a transfer at a time which will not interfere with other processes.
  • a windows application may request information about the "personality" of a modem. Such a call would be routed to RTS which would then invoke a SHELL CallAt
  • AppyTime When the A/MM detects that the personality exchange between the modem and the application can occur without damaging ongoing I/O or other processes, an application call back will be executed to the application and the exchange will occur.
  • a host based modem or other process or device can be implemented which is guaranteed to receive an adequate share of CPU attention regardless of the other applications or drivers running simultaneously.
  • this real time service as a virtual device driver, one has access to the services of the virtual machine manager in a way which permits fair and equal competition for CPU time regardless of the problems that would otherwise occur in the prior art .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
EP97953454A 1996-12-30 1997-12-24 Real time services in backwardly compatible operating systems Withdrawn EP0948769A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US77464896A 1996-12-30 1996-12-30
US774648 1996-12-30
PCT/US1997/023907 WO1998029807A1 (en) 1996-12-30 1997-12-24 Real time services in backwardly compatible operating systems

Publications (1)

Publication Number Publication Date
EP0948769A1 true EP0948769A1 (en) 1999-10-13

Family

ID=25101847

Family Applications (1)

Application Number Title Priority Date Filing Date
EP97953454A Withdrawn EP0948769A1 (en) 1996-12-30 1997-12-24 Real time services in backwardly compatible operating systems

Country Status (5)

Country Link
EP (1) EP0948769A1 (ja)
JP (1) JP2001507835A (ja)
KR (1) KR20000062377A (ja)
TW (1) TW405091B (ja)
WO (1) WO1998029807A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004500634A (ja) * 1999-12-10 2004-01-08 ハネウェル・インターナショナル・インコーポレーテッド アビオニクスソフトウエアアプリケーションのための2レイヤオペレーティングシステムおよび方法
US7103529B2 (en) * 2001-09-27 2006-09-05 Intel Corporation Method for providing system integrity and legacy environment emulation
US20070180061A1 (en) 2006-02-02 2007-08-02 International Business Machines Corporation Methods and apparatus for interactive specification of context-sensitive sevice level agreements; for provisioning of resources required during service delivery events regulated by service level agreements; and for monitoring compliance with service level agreements during service delivery events
US20110283277A1 (en) 2010-05-11 2011-11-17 International Business Machines Corporation Virtualization and dynamic resource allocation aware storage level reordering
CN103748556B (zh) * 2011-08-30 2018-02-02 惠普发展公司,有限责任合伙企业 与虚拟受信任运行时bios通信
US8832720B2 (en) * 2012-01-05 2014-09-09 Intel Corporation Multimedia driver architecture for reusability across operating systems and hardware platforms

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787305A (en) * 1995-04-25 1998-07-28 Pc-Tel, Inc. Host signal processing modem using a software simulation of a UART
US5721830A (en) * 1995-09-12 1998-02-24 Pc-Tel, Inc. Host signal processing communication system that compensates for missed execution of signal maintenance procedures

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO9829807A1 *

Also Published As

Publication number Publication date
KR20000062377A (ko) 2000-10-25
TW405091B (en) 2000-09-11
JP2001507835A (ja) 2001-06-12
WO1998029807A1 (en) 1998-07-09

Similar Documents

Publication Publication Date Title
US6230118B1 (en) DOS based application supports for a controllerless modem
US5706514A (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
US5696970A (en) Architecture for implementing PCMCIA card services under the windows operating system in enhanced mode
JP2986299B2 (ja) 周辺装置接続検出システム
US6314515B1 (en) Resetting multiple processors in a computer system
US7712104B2 (en) Multi OS configuration method and computer system
US5889988A (en) Debugger for debugging tasks in an operating system virtual device driver
US4747040A (en) Dual operating system computer
US5530858A (en) Method and apparatus for background processing for PCMCIA card services
EP2296089A2 (en) Operating systems
US6272618B1 (en) System and method for handling interrupts in a multi-processor computer
US8065441B2 (en) Method and apparatus for supporting universal serial bus devices in a virtualized environment
JP2002517034A (ja) エミュレーションコプロセッサ
US7051222B2 (en) Robust computer subsystem power management with or without explicit operating system support
AU640134B2 (en) Information processing system emulation apparatus and method
US7231512B2 (en) Technique for reconstituting a pre-boot firmware environment after launch of an operating system
US20030126349A1 (en) Method and apparatus for executing real-mode interrupts from within extended SMRAM handler
EP0543610A2 (en) Data processing system
US6907521B2 (en) Enabling video BIOS and display drivers to leverage system BIOS platform abstract
JPH1021094A (ja) リアルタイム制御方式
EP0948769A1 (en) Real time services in backwardly compatible operating systems
EP1410170B1 (en) Logical substitution of processor control in an emulated computing environment
EP1616257B1 (en) Operating systems
JPH06180668A (ja) コンピュータシステム
US7043565B1 (en) System and method for transferring data over an external transmission medium

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19990730

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): DE FR GB IE NL

17Q First examination report despatched

Effective date: 20000927

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20010208