EP1467282B1 - Operating systems - Google Patents

Operating systems Download PDF

Info

Publication number
EP1467282B1
EP1467282B1 EP03290894A EP03290894A EP1467282B1 EP 1467282 B1 EP1467282 B1 EP 1467282B1 EP 03290894 A EP03290894 A EP 03290894A EP 03290894 A EP03290894 A EP 03290894A EP 1467282 B1 EP1467282 B1 EP 1467282B1
Authority
EP
European Patent Office
Prior art keywords
operating system
operating systems
operating
computer
systems
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.)
Expired - Lifetime
Application number
EP03290894A
Other languages
German (de)
English (en)
French (fr)
Other versions
EP1467282A3 (en
EP1467282A2 (en
Inventor
Eric Lescouet
Vladimir Grouzdev
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.)
Red Bend Software SAS
Original Assignee
Jaluna SA
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 Jaluna SA filed Critical Jaluna SA
Priority to EP03290894A priority Critical patent/EP1467282B1/en
Priority to AT03290894T priority patent/ATE409904T1/de
Priority to DE60323811T priority patent/DE60323811D1/de
Priority to ES03290894T priority patent/ES2315469T3/es
Priority to US10/665,352 priority patent/US7434224B2/en
Priority to KR1020057019290A priority patent/KR20060023956A/ko
Priority to US10/552,608 priority patent/US8201170B2/en
Priority to CNA2008100986316A priority patent/CN101349976A/zh
Priority to EP04739080.2A priority patent/EP1616257B1/en
Priority to CNB2004800135732A priority patent/CN100392598C/zh
Priority to PCT/EP2004/003731 priority patent/WO2004090719A2/en
Priority to EP07016570A priority patent/EP1879108A1/en
Priority to JP2006505048A priority patent/JP2006522971A/ja
Priority to CA002521748A priority patent/CA2521748A1/en
Priority to US10/573,918 priority patent/US8612992B2/en
Publication of EP1467282A2 publication Critical patent/EP1467282A2/en
Publication of EP1467282A3 publication Critical patent/EP1467282A3/en
Application granted granted Critical
Publication of EP1467282B1 publication Critical patent/EP1467282B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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
    • 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
    • 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/4555Para-virtualisation, i.e. guest operating system has to be modified
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network

Definitions

  • This invention relates to operating systems. More particularly, this invention relates to systems, methods and computer programs for running multiple operating systems concurrently.
  • Applications programs interact with the computers on which they run through operating systems.
  • the applications program can be written in a portable fashion, so that it can execute on different computers with different hardware resources.
  • common operating systems such as Linux or Windows provide multi-tasking; in other words, they allow several program to operate concurrently. To do so, they provide scheduling; in other words, they share the usage of the resources of the computer between the different programs, allocating time to each in accordance with a scheduling algorithm.
  • Operating systems of the this kind are very widely used, but they generally make no provision for running real time applications, and they therefore are unsuitable for many control or communications tasks.
  • ChorusOS also know as Chorus
  • Chorus is available as open source software from: Sun Microsystems at http://www.experimentalstuff.com/Technologies/ChorusOS/index.html and Jaluna at http://www.jaluna.com/
  • emulator One approach which has been widely used is "emulation".
  • an emulator program is written, to run under the real time operating system, which interprets each instruction of a program written for a general purpose operating system, and performs a corresponding series of instructions under the real time operating system.
  • emulation places a heavier load on the computer, and results in slower performance.
  • Similar problems arise from the approach based on providing a virtual machine (e.g. a Java TM virtual machine).
  • Yodaiken describes a system in which a multi tasking real time operating system runs a general purpose operating system as one of its tasks, pre-empting it as necessary to perform real time tasks.
  • ADEOS provides a nanokernel which is intended, amongst other things, for running multiple operating systems although it appears only to have been implemented with Linux.
  • One proposed use of ADEOS was to allow ADEOS to distribute interrupts to RTAI (Realtime Application Interface for Linux) for which see: http://www.aero.polimi.it/ ⁇ rtai/applications/.
  • EP-A-1162536 and EP-A-1054322 describe multiple operating system control methods pertaining to the features of the preamble of the independent claims.
  • An object of the present invention is to provide an improved system, method and computer program for running multiple operating systems simultaneously, even when the systems are designed for different purposes.
  • the present invention aims to allow one of the operating systems (for example, a real time operating systems) to perform without disturbance, and the other (for example, a general purpose operating system) to perform as well as possible using the remaining resources of the computer.
  • the present invention provides a method according to claim 1.
  • the present invention provides a system according to claim 14 or claim 15.
  • the present invention provides a program product according to claim 12.
  • the present invention favours one of the operating systems (the "primary” or “critical” operating system) over another (the “secondary” or non-critical operating system); it gives the critical operating system preferential treatment, it allocates hardware preferentially to it, and it denies the secondary operating system or systems access which would interfere with that of the critical operating system.
  • the present invention uses the critical operating system drivers to access shared resources, even if the access is requested by the secondary operating system.
  • a computer system 100 to which the system is applicable comprises a central processing unit (CPU) 102, such as a Pentium 4 TM CPU available from Intel Corporation, or PowerPC CPU available from Motorola (the embodiment has been implemented on both), coupled via a system bus 104 (comprising control, data and address buses) to a read-only memory (ROM) chip 106; one or more banks of random access memory (RAM) clips (108); disk controller devices 110 (for example IDE or SCSI controllers, connected to a floppy disk drive, a hard disk drive, and additional removable media drives such as DVD drives); one or more input/output ports (112) (for example, one or more USB port controllers, and/or parallel port controllers for connection to printer and so on); an expansion bus 114 for bus connection to external or internal peripheral devices (for example the PCI bus); and other system chips 116 (for example, graphics and sound devices).
  • CPU central processing unit
  • ROM read-only memory
  • RAM random access memory
  • disk controller devices 110 for example IDE or SCSI controller
  • Examples of computers of this type are personal computers (PCs) and workstations.
  • PCs personal computers
  • workstations workstations.
  • PDAs PDAs
  • the computer 100 of Figure 1 runs resident programs comprising operating system kernel 202 (which provides the output routines allowing access by the CPU to the other devices shown in Figure 1 ); an operating system user interface or presentation layer 204 (such as X Windows); a middleware layer 206 (providing networking software and protocols such as, for instance, a TCP/IP stack) and applications 208a, 208b, which run by making calls to the API routines forming the operating system kernel 202.
  • operating system kernel 202 which provides the output routines allowing access by the CPU to the other devices shown in Figure 1
  • an operating system user interface or presentation layer 204 such as X Windows
  • middleware layer 206 providing networking software and protocols such as, for instance, a TCP/IP stack
  • applications 208a, 208b which run by making calls to the API routines forming the operating system kernel 202.
  • the operating system kernel has a number of tasks, in particular:
  • the kernel may be a so-called “monolithic kernel” as for Unix, in which case the device drivers form part of the kernel itself.
  • it may be a "microkernel” as for Chorus, in which case the device drivers are separate of the kernel.
  • a bootstrap program stored in ROM 106 accesses the disk controllers 110 to read the file handling part of the operating system from permanent storage on disk into RAM 108, then loads the remainder of the operating system into an area of RAM 108.
  • the operating system then reads any applications from the disk drives via the disk controllers 110, allocates space in RAM 108 for each, and stores each application in its allocated memory space.
  • the scheduler part of the operating system divides the use of the CPU between the different applications, allowing each a share of the time on the processor according to a scheduling policy. It also manages use of the memory resources, by "swapping out" infrequently used applications or data (i.e. removing them from RAM 108 to free up space, and storing them on disk).
  • API applications programming interface
  • each operating system 201, 202 to be used on the computer 100 is slightly re-written, and a new low-level program 400 (termed here the "hardware resource dispatcher", and sometimes known as a “nanokernel” although it is not the kernel of an operating system) is created.
  • the hardware resource dispatcher 400 is specific to the particular type of CPU 102, since it interacts with the processor.
  • the versions of the operating systems which are modified 201, 202 are also those which are specific to the hardware, for reasons which will become apparent.
  • the hardware resource dispatcher 400 is not itself an operating system. It does not interact with the applications programs at all, and has very limited functionality. Nor is it a virtual machine or emulator; it requires the operating systems to be modified in order to cooperate, even though it leaves most of the processing to the operating systems themselves, running their native code on the processor. It performs the following basic functions:
  • the operating systems are not treated equally by the embodiment. Instead, one of the operating systems is selected as the "critical" operating system (this will be the real time operating system), and the or each other operating system is treated as a "non critical” or “secondary” operating system (this will be the or each general purpose operating system such as Linux).
  • the hardware resource dispatcher When the hardware resource dispatcher is designed, it is provided with a data structure (e.g. a table) listing the available system resources (i.e. devices and memory), to enable as many system devices as possible to be statically allocated exclusively to one or other of the operating systems.
  • a data structure e.g. a table
  • system resources i.e. devices and memory
  • a parallel printer port might be statically allocated to the general purpose operating system 202, which will often run applications which will need to produce printer output.
  • an ISDN digital line adapter port may be permanently allocated to the real time operating system 201 for communications. This static allocation of devices wherever possible means that each operating system can use its existing drivers to access statically allocated devices without needing to call the hardware resource dispatcher. Thus, there is no loss in execution speed in accessing such devices (as there would be if it acted as a virtual machine or emulator).
  • the hardware resource dispatcher virtualises uses of the devices by the non-critical operating systems, and makes use of the drivers supplied with the critical operating system to perform the access.
  • the hardware resource dispatcher passes interrupts to the critical operating system interrupt handling routines, which either deal with the interrupt (if it was intended for the critical operating system) or pass it back through the hardware resource dispatcher for forwarding to a non critical operating system (if that was where it was destined).
  • the hardware resource dispatcher On boot, the hardware resource dispatcher is first loaded, and it then loads each of the operating systems in a predetermined sequence, starting with the critical operating system, then following with the or each secondary operating system in turn.
  • the critical operating system is allocated the resources it requires from the table, and has a fixed memory space to operate in.
  • each secondary operating system in turn is allocated the resources and memory space it requires from the available remaining resources.
  • the resources used by the operating systems are separated as much as physically possible, by allocating each its own memory space, and by providing a static allocation of devices exclusively to the operating systems; only devices for which sharing is essential are shared.
  • the hardware resource dispatcher scheduler allows the critical operating system to operate until it has concluded its tasks, and then passes control back to each non critical operating system in turn, until the next interrupt or event occurs.
  • the embodiment thus allows a multi operating system environment in which the operation of the critical operating system is virtually unchanged (since it uses its original drivers, and has first access to any interrupt and event handling).
  • the secondary operating systems are able to operate efficiently, within the remaining processor time, since in most cases they will be using their own native drivers, and will have exclusive access to many of the system devices.
  • the hardware resource dispatcher itself can be a small program, since it handles only limited functions, so that system resources are conserved.
  • the preferred embodiment is also economic to create and maintain, because it involves only limited changes to standard commercial operating systems which will already have been adapted to the particular computer 100. Further, since the changes to the operating systems are confined to architecture specific files handling matters such as interrupt handling, and configuration at initialising time, which interface with the particular type of computer 100, and which are unlikely to change as frequently as the rest of the operating system, there may be little or no work to do in adapting new versions of the same operating system to work in a multiple operating system fashion.
  • the computer 100 was an Intel 386 family processor (e.g. a Pentium processor) and a Motorola PowerPC 750 (Reduced Instruction Set Computer or "RISC") computer (step 302).
  • the critical operating system 201 was the C5 operating system (step 304) (the real time microkernel of Jaluna-1, an open-source version of the fifth generation of the ChorusOS system, available for open source, free download from http://www.jaluna.com).
  • the ChorusOS operating system kernel 201 is modified for operating in multiple operating system mode, which is treated in the same way as porting to a new platform (i.e. writing a new Board Support Package to allow execution on a new computer with the same CPU but different system devices).
  • the booting and initialisation sequences are modified to allow the real time operating system to be started by the hardware resource dispatcher, in its allocated memory space, rather than starting itself.
  • the hardware-probing stage of the initialisation sequence is modified, to prevent the critical operating system from accessing the hardware resources which are assigned to other secondary systems. It reads the static hardware allocation table from the hardware resource dispatcher to detect the devices available to it.
  • Trap calls are added to the critical operating system, to detect states and request some actions in response. For example, when the real time operating system 201 reaches an end point (and ceases to require processor resources) control can be passed back to the hardware resource dispatcher, issuing the "idle" trap, to start the secondary operating system.
  • Some drivers of the Board Support Package are specially adapted to assist the hardware resource dispatcher in virtualizing the shared devices for secondary operating systems.
  • Additional "virtual" drivers are added which, to the operating system, appear to provide access to an input/output (I/O) bus, allowing data to be written to the bus.
  • the virtual bus driver uses memory as a communications medium; it exports some private memory (for input data) and imports memory exported by other systems (for output data).
  • the operating system 201 or an application running on the operating system
  • the secondary operating system 202 was selected (step 308) as Linux, having a kernel version 2.4.18.
  • step 310 the secondary operating system kernel 202 is modified to allow it to function in a multiple operating system environment, which is treated as a new hardware architecture.
  • the boot and initialisation sequences are modified, to allow the secondary operating system to be started by the hardware resource dispatcher, and to prevent it from accessing the hardware resources assigned to the other systems, as specified in the hardware resource dispatcher table.
  • trap calls are added, to pass control to the hardware resource dispatcher.
  • Native drivers for shared system devices are replaced by new drivers dealing with devices which have been virtualized by the hardware resource dispatcher (interrupt controller, I/O bus bridges, the system timer and the real time clock). These drivers execute a call to virtual device handlers 416 of the hardware resource dispatcher in order to perform some operations on a respective device of the computer 100.
  • Each such virtual device handler 416 of the hardware resource dispatcher is paired with a "peer" driver routine in the critical operating system, which is arranged to directly interact with the system device.
  • a call to a virtual device handler is relayed up to a peer driver in the critical system for that virtualized device, in order to make real device access.
  • read and write drivers for the virtual I/O bus are provided, to allow inter-operating system communications.
  • the interrupt service routines of the secondary operating system are modified, to provide virtual interrupt service routines each of which responds to a respective virtual interrupt (in the form of a call issued by an interrupt handler routine 412 of the hardware resource dispatcher), and not to respond to real interrupts or events.
  • the secondary operating systems 202, ... are prevented from masking hardware interrupts and are therefore pre-emptable by the critical operating system 201; in other words, the secondary operating system response to a virtual interrupt can itself be interrupted by a real interrupt for the critical operating system 201.
  • This typically includes:
  • New virtual device drivers are added, for accessing the shared hardware devices (the I/O bus bridges, the system console, the system timer and the real time clock). These drivers execute a call to virtual device handlers 416 of the hardware resource dispatcher in order to write data to, or read data from, a respective device of the computer 100.
  • the Linux kernel 202 is modified in this embodiment by adding new virtual hardware resource dispatcher architecture sub trees (nk-i386 and nk-ppc for the 1-386 and PowerPC variants) with a small number of modified files. Unchanged files were reused in their existing form. The original sub-trees were retained, but not used.
  • step 312 the hardware resource dispatcher 400 is written.
  • the hardware resource dispatcher comprises code which provides routines for the following functions as (as shown in Figure 4 ):
  • it may also provide a system debugging framework.
  • the operating system switcher 408 is arranged to save the "context" - the current values of the set of state variables, such as register values - of the currently executing operating system; restore the stored context of another operating system; and call that other operating system to recommence execution where it left off.
  • the operating system switcher 408 comprises:
  • the switches may occur on a trap call or a real or virtual interrupt, as described below.
  • the scheduler 410 allocates each operating system some of the available processing time, by selecting which secondary operating system (if more than one is present) will be switched to next, after exiting another operating system. In this embodiment, each is selected based on fixed priority scheduling). Other embodiments allowing specification based on time sharing, or guaranteed minimum percentage of processor time, are also contemplated herein. In each case, however, the critical operating system is pre-empted only when in the idle state.
  • the critical operating system 201 may explicitly inform the scheduler 410 when it may be pre-empted, so as to allow all secondary operating systems some access to the CPU to perform tasks with higher priority then the tasks still running in critical system.
  • the interrupt service routines of the critical operating system cannot be pre-empted, so that the critical operating system can always respond to external events or timing signals from the realtime clock, maintaining realtime operation.
  • the hardware resource dispatcher is arranged to provide mechanisms to handle processor exceptions (e.g. CPU interrupts or co-processor interrupts) as follows:
  • trap call handler The operation of the trap call handler will become apparent from the following description. Its primary purpose is to allow the scheduler and switcher to change to another operating system when a first one halts (and hence does not require CPU resources). An additional role is to invoke hardware resource dispatcher services such as a system console for use in debugging as discussed in relation to later embodiments.
  • each operating system provides a device driver, forming a set of peer-level drivers for that device.
  • the realtime operating system provides the driver used to actually access the device, and the others provide virtual device drivers.
  • the shared device handler 416 of the hardware resource dispatcher provides a stored data structure for each device, for access by all peer device drivers of that device.
  • the device drivers update the data stored in the corresponding data structure with the details of the access.
  • the peer drivers use cross-interrupts (as discussed above) to signal an event to notify other peer drivers that that the data structure has just been updated.
  • the drivers which are for accessing interrupt controller devices use the virtualised exception mechanisms discussed above to handle hardware interrupts as follows:
  • the resource allocation table 404 stores descriptor data indicating the allocation of the resources on the bus (address spaces, interrupt lines and I/O ports) to indicate which operating system has which resources.
  • step 314 the code for the hardware resource dispatcher and operating systems is compiled as a distributable binary computer program product for supply with the computer 100.
  • a product which may be supplied in accordance with an aspect of the invention is a development environment product, comprising a computer program which enables the user to select different operating systems to be used, build and select different applications for each operating system, embed the application and operating systems into a deliverable product, and provide for booting of the operating system and launch of executable binaries of the applications.
  • This is based on, and similar to, the C5 development environment, available from www.jaluna.com.
  • the source code for the invention is made available via the Internet, for free and unrestricted access and use.
  • boot and initialisation processes are performed as follows.
  • a bootstrapping program (“trampoline”) 4022 stored in the ROM 106 is executed when power is first supplied, which starts a program 4024 which installs the rest of the hardware resource dispatcher program 400 into memory, and starts it, passing as an argument a data structure (as described below) describing the system image configuration.
  • the hardware resource dispatcher initialises a serial line which may be used for a system console. It then allocates memory space (an operating system environment) for each operating system in turn, starting with the critical operating system.
  • the hardware resource dispatcher therefore acts as a second level system kernel boot loader.
  • Each operating system kernel then goes through its own initialisation phase, selecting the resources to be exclusive to that operating system within those remaining in the resource allocation table 404, and starting its initial services and applications.
  • Figure 6 illustrates an example of a memory address allocation forming the system image.
  • a position within memory is allocated when the hardware resource dispatcher and operating systems are compiled. The set of these positions in memory defines the system image, shown in Figure 6 .
  • the system image comprises a first bank of memory 602 where the hardware resource dispatcher is located; a second bank of memory 604 where the real time operating system is located; a third bank of memory 606 where the secondary operating system is located; and, in this embodiment, a fourth bank of memory 608 where the RAM disk containing a root file system of the secondary operating system (Linux) is located.
  • Linux root file system of the secondary operating system
  • This system image is stored in persistent storage (e.g. read only memory for a typical real time device such as a mobile telephone or PBX).
  • persistent storage e.g. read only memory for a typical real time device such as a mobile telephone or PBX.
  • the remaining banks of memory are available to be allocated to each operating system as its environment, within which it can load and run applications.
  • each operating system Whilst being booted, each operating system then allocates a complementary piece of memory in order to meet the total size required by its own configuration. Once allocated to an operating system, banks of memory are managed using the physical memory management scheme of the operating system itself. All other memory is ignored by the operating system.
  • Each operating system is allocated separate virtual memory spaces, to make sure that operating systems cannot interfere with each other or with the hardware resource dispatcher.
  • the User address spaces (i.e. ranges) and Supervisor address space (i.e. range) of each of the operating systems is each allocated a different memory management unit (MMU) context identifier (ID), which allow the differentiation of different virtual memory spaces having overlapping addresses.
  • MMU memory management unit
  • ID memory management unit
  • the resource allocation table 404 indicates which devices are allocated uniquely to each operating system.
  • table 404 indicates which input/output resources (Direct Memory Access (DMA) devices, input/output ports, interrupts and so on) are allocated exclusively to such devices, thus allowing a direct use of these resources without any conflict.
  • DMA Direct Memory Access
  • many devices are duplicated, so it is possible to reduce potential conflicts substantially in this way.
  • the distribution is based on the operating system configuration scheme (for example, in the case of C5, the devices specified in the device tree). They are allocated to operating systems at boot time, and in order of booting, so that the critical operating system has first choice of the available devices in the table 404 and the secondary operating systems in turn receive their allocation in what remains. As each operating system initialised, it detects the presence of these devices and uses its native drivers for them without interaction from the hardware resource dispatcher.
  • the operating system configuration scheme for example, in the case of C5, the devices specified in the device tree.
  • the real time operating system is running one or more applications 207 (for example a UDP/IP stack - UDP/IP stands for Universal Datagram Protocol/Internet Protocol) and the secondary operating system is running several applications 208a, 208b (for example a word processor and a spreadsheet).
  • the real time operating system microkernel 201 and the secondary operating system kernel 202 communicate with the hardware resource dispatcher through the hardware resource dispatcher interface which comprises:
  • an interrupt or event will occur.
  • a packet may be received at a data port, causing an interrupt to allow it to be processed by the real time operating system executing the UDP/IP stack.
  • a user may manipulate a keyboard or mouse, causing an interrupt to operate the GUI of the second operating system 202 for interaction with the word processing application 208.
  • the system clock may indicate that a predetermined time has elapsed, and that an application should commence re-execution, or an operating system function should execute.
  • the critical operating system servicing routine then services the interrupt, as described below.
  • the hardware resource dispatcher interrupt handler 412 calls the operating system switcher 408 to switch to the critical operating system, and then the interrupt handler routine 412 to call an interrupt service routine (ISR) in the critical operating system 201. If the interrupt is intended for the critical operating system, either because it is from a device uniquely assigned to the critical operating system or because it is from a shared device and has a certain predetermined value, the critical operating system ISR takes the action necessary to handle the interrupt. If not, control is passed back to the hardware resource dispatcher.
  • ISR interrupt service routine
  • the system is executing a thread 702 of an application 207a running on the critical operating system 201.
  • a critical operating system interrupt service routine 704 performs interrupt servicing. On termination, control passes back to the thread 702 and any others executed by the scheduler of the critical operating system 201. When processing of all threads is complete, the critical operating system has finished executing, it schedules its "idle" thread. Accordingly the "idle" trap routine in the critical operating system issues an "idle" trap call to the hardware resource dispatcher 400. The hardware resource dispatcher then executes a routine which does the following:
  • the hardware resource dispatcher operating switcher 408 causes the secondary operating system to recommence execution where it left off, using the stored program counter value within the restored operating system context, in this case at the thread 712.
  • the hardware resource dispatcher passes control back to the next secondary operating system 202, as determined by the scheduler 410.
  • the hardware resource dispatcher When a hardware interrupt occurs, the hardware resource dispatcher starts the OS switcher, to save the secondary operating system context in the context storage area 708. It then switches to the primary operating system 201, restoring the values of state variables from the context storage area 706, and calls the interrupt service routine 704 of the primary operating system 201. After servicing the interrupt, the scheduler of the primary operating system 201 may pass control back from the ISR 704 to any thread 704 which was previously executing (or thread to be executed).
  • the primary operating system 201 passes control back to the hardware resource dispatcher, which switches from the primary operating system 201 (saving the state variables in the context storage 706) and switches to a selected secondary operating system 201 (retrieving the state variables from the context storage 708), in the manner discussed with reference to Figure 7 above.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Massaging Devices (AREA)
  • Eye Examination Apparatus (AREA)
  • Vehicle Body Suspensions (AREA)
EP03290894A 2003-04-09 2003-04-09 Operating systems Expired - Lifetime EP1467282B1 (en)

Priority Applications (15)

Application Number Priority Date Filing Date Title
EP03290894A EP1467282B1 (en) 2003-04-09 2003-04-09 Operating systems
AT03290894T ATE409904T1 (de) 2003-04-09 2003-04-09 Betriebssysteme
DE60323811T DE60323811D1 (de) 2003-04-09 2003-04-09 Betriebssysteme
ES03290894T ES2315469T3 (es) 2003-04-09 2003-04-09 Sistemas operativos.
US10/665,352 US7434224B2 (en) 2003-04-09 2003-09-22 Plural operating systems having interrupts for all operating systems processed by the highest priority operating system
CNB2004800135732A CN100392598C (zh) 2003-04-09 2004-04-07 操作系统
CNA2008100986316A CN101349976A (zh) 2003-04-09 2004-04-07 操作系统
EP04739080.2A EP1616257B1 (en) 2003-04-09 2004-04-07 Operating systems
KR1020057019290A KR20060023956A (ko) 2003-04-09 2004-04-07 운영체제
PCT/EP2004/003731 WO2004090719A2 (en) 2003-04-09 2004-04-07 Operating systems
EP07016570A EP1879108A1 (en) 2003-04-09 2004-04-07 Method and computer system for restarting an operating system without interrupting operation of other different operating systems running concurrently to said operating system
JP2006505048A JP2006522971A (ja) 2003-04-09 2004-04-07 オペレーティングシステム
CA002521748A CA2521748A1 (en) 2003-04-09 2004-04-07 Operating systems
US10/552,608 US8201170B2 (en) 2003-04-09 2004-04-07 Operating systems are executed on common program and interrupt service routine of low priority OS is modified to response to interrupts from common program only
US10/573,918 US8612992B2 (en) 2003-04-09 2004-10-01 Operating systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP03290894A EP1467282B1 (en) 2003-04-09 2003-04-09 Operating systems

Publications (3)

Publication Number Publication Date
EP1467282A2 EP1467282A2 (en) 2004-10-13
EP1467282A3 EP1467282A3 (en) 2004-12-22
EP1467282B1 true EP1467282B1 (en) 2008-10-01

Family

ID=32865085

Family Applications (2)

Application Number Title Priority Date Filing Date
EP03290894A Expired - Lifetime EP1467282B1 (en) 2003-04-09 2003-04-09 Operating systems
EP07016570A Withdrawn EP1879108A1 (en) 2003-04-09 2004-04-07 Method and computer system for restarting an operating system without interrupting operation of other different operating systems running concurrently to said operating system

Family Applications After (1)

Application Number Title Priority Date Filing Date
EP07016570A Withdrawn EP1879108A1 (en) 2003-04-09 2004-04-07 Method and computer system for restarting an operating system without interrupting operation of other different operating systems running concurrently to said operating system

Country Status (6)

Country Link
US (2) US7434224B2 (es)
EP (2) EP1467282B1 (es)
CN (2) CN101349976A (es)
AT (1) ATE409904T1 (es)
DE (1) DE60323811D1 (es)
ES (1) ES2315469T3 (es)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11385758B2 (en) 2008-10-09 2022-07-12 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004034184A2 (en) 2002-08-23 2004-04-22 Exit-Cube, Inc. Encrypting operating system
US7975117B2 (en) * 2003-03-24 2011-07-05 Microsoft Corporation Enforcing isolation among plural operating systems
EP1467282B1 (en) * 2003-04-09 2008-10-01 Jaluna SA Operating systems
US8612992B2 (en) * 2003-04-09 2013-12-17 Jaluna Sa Operating systems
US7647583B2 (en) * 2003-05-20 2010-01-12 Robert M Zeidman Method and apparatus for emulating a hardware/software system using a computer
JP3952992B2 (ja) * 2003-06-03 2007-08-01 ソニー株式会社 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
EP1503286B1 (en) * 2003-07-30 2014-09-03 Jaluna SA Multiple operating system networking
US9032404B2 (en) 2003-08-28 2015-05-12 Mips Technologies, Inc. Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor
EP1660993B1 (en) * 2003-08-28 2008-11-19 MIPS Technologies, Inc. Integrated mechanism for suspension and deallocation of computational threads of execution in a processor
US7836450B2 (en) 2003-08-28 2010-11-16 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7849297B2 (en) * 2003-08-28 2010-12-07 Mips Technologies, Inc. Software emulation of directed exceptions in a multithreading processor
US7870553B2 (en) 2003-08-28 2011-01-11 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
JP2007509387A (ja) * 2003-09-30 2007-04-12 ジャルナ エスアー オペレーティングシステム
DE10348113A1 (de) * 2003-10-16 2005-05-19 Kuka Roboter Gmbh Verfahren und Einrichtung zum Betreiben eines Sekundärbetriebssystems neben einem Primärbetriebssystem
US7587723B2 (en) * 2003-11-13 2009-09-08 International Business Machines Corporation Restarting a shared virtual resource
CN1658185A (zh) * 2004-02-18 2005-08-24 国际商业机器公司 相互独立地共存多个操作系统的计算机系统与其切换方法
US20050216895A1 (en) * 2004-03-23 2005-09-29 Tran Hieu T Method and apparatus for remote debugging of kernel and application software
US20050251806A1 (en) * 2004-05-10 2005-11-10 Auslander Marc A Enhancement of real-time operating system functionality using a hypervisor
JP4233492B2 (ja) * 2004-06-02 2009-03-04 富士通マイクロエレクトロニクス株式会社 アドレス変換装置
US7827558B2 (en) * 2004-06-30 2010-11-02 Devicevm, Inc. Mechanism for enabling a program to be executed while the execution of an operating system is suspended
US20060010446A1 (en) * 2004-07-06 2006-01-12 Desai Rajiv S Method and system for concurrent execution of multiple kernels
US7424601B2 (en) * 2004-07-07 2008-09-09 Yongyong Xu Methods and systems for running multiple operating systems in a single mobile device
GB0423094D0 (en) * 2004-10-18 2004-11-17 Ttp Communications Ltd Interrupt control
JP2006146758A (ja) * 2004-11-24 2006-06-08 Matsushita Electric Ind Co Ltd コンピュータシステム
FI119664B (fi) * 2004-12-08 2009-01-30 Open Invention Network Llc Menetelmä elektronisissa laitteissa oleviin tiedostoihin pääsemiseksi
US7793288B2 (en) * 2004-12-09 2010-09-07 International Business Machines Corporation Automatic resource management of a guest operating system using information in data set indicating minimum system requirement
US7748003B2 (en) * 2004-12-20 2010-06-29 International Business Machines Corporation Hard real-time response
TW200627277A (en) * 2005-01-24 2006-08-01 Lite On Technology Corp OS selection method and computer system utilizing same
US20060179326A1 (en) * 2005-02-10 2006-08-10 Kwok-Yan Leung Security device using multiple operating system for enforcing security domain
US8219823B2 (en) 2005-03-04 2012-07-10 Carter Ernst B System for and method of managing access to a system using combinations of user information
US7437546B2 (en) * 2005-08-03 2008-10-14 Intel Corporation Multiple, cooperating operating systems (OS) platform system and method
US7752436B2 (en) 2005-08-09 2010-07-06 Intel Corporation Exclusive access for secure audio program
TWI279678B (en) * 2005-09-07 2007-04-21 Mitac Technology Corp Method for fast switching between different operating systems in computer device with multiple operating systems
US20070104340A1 (en) * 2005-09-28 2007-05-10 Knowles Electronics, Llc System and Method for Manufacturing a Transducer Module
US7719132B2 (en) 2005-09-28 2010-05-18 L3 Communications Corporation Ruggedized mobile computing device
JP4597032B2 (ja) * 2005-10-24 2010-12-15 株式会社ソニー・コンピュータエンタテインメント コンピュータシステム、それにおける基本プログラムの起動方法、及びローダプログラム
FI20051114A0 (fi) * 2005-11-03 2005-11-03 Nokia Corp Automaattinen monen tietokoneen käynnistys
US9189291B2 (en) * 2005-12-12 2015-11-17 International Business Machines Corporation Sharing a kernel of an operating system among logical partitions
JP2007220086A (ja) * 2006-01-17 2007-08-30 Ntt Docomo Inc 入出力制御装置、入出力制御システム及び入出力制御方法
JP2007213494A (ja) 2006-02-13 2007-08-23 Ntt Docomo Inc 更新起動装置及び更新起動制御方法
US7950020B2 (en) * 2006-03-16 2011-05-24 Ntt Docomo, Inc. Secure operating system switching
US7814307B2 (en) * 2006-03-16 2010-10-12 Microsoft Corporation Fast booting a computing device to a specialized experience
US8042109B2 (en) * 2006-03-21 2011-10-18 Intel Corporation Framework for domain-specific run-time environment acceleration using virtualization technology
US9201703B2 (en) 2006-06-07 2015-12-01 International Business Machines Corporation Sharing kernel services among kernels
JP2008033392A (ja) * 2006-07-26 2008-02-14 Nec Corp 仮想計算機システム及びその動作方法
JP5028904B2 (ja) * 2006-08-10 2012-09-19 ソニー株式会社 電子機器、および起動方法
US7689820B2 (en) * 2006-09-27 2010-03-30 L3 Communications Corporation Rapid-boot computing device with dual operating systems
US8819483B2 (en) * 2006-09-27 2014-08-26 L-3 Communications Corporation Computing device with redundant, dissimilar operating systems
US8424013B1 (en) * 2006-09-29 2013-04-16 Emc Corporation Methods and systems for handling interrupts across software instances and context switching between instances having interrupt service routine registered to handle the interrupt
US8082431B2 (en) * 2006-09-29 2011-12-20 Intel Corporation System and method for increasing platform boot efficiency
US8707337B2 (en) * 2006-10-31 2014-04-22 Motorola Mobility Llc Dispatch API that permits midlets to initiate dispatch calls
US7689566B1 (en) * 2006-12-12 2010-03-30 Sun Microsystems, Inc. Method for defining non-native operating environments
JP2008152462A (ja) * 2006-12-15 2008-07-03 Ntt Docomo Inc 遠隔起動システム、遠隔起動サーバ及び通信端末
US8996864B2 (en) * 2006-12-22 2015-03-31 Virtuallogix Sa System for enabling multiple execution environments to share a device
JP2008305070A (ja) * 2007-06-06 2008-12-18 Hitachi Communication Technologies Ltd 情報処理装置および情報処理装置システム
US8269756B2 (en) * 2007-06-15 2012-09-18 The Boeing Company Controllable voltage device drivers and methods of operation therefor
US9454384B2 (en) * 2007-07-05 2016-09-27 Microsoft Technology Licensing, Llc Custom operating system via a web-service
US8146107B2 (en) * 2007-07-10 2012-03-27 Mitel Networks Corporation Virtual machine environment for interfacing a real time operating system environment with a native host operating system
TWI393114B (zh) * 2007-09-05 2013-04-11 Htc Corp 在作業系統切換時逐步調整螢幕亮度的方法
US8312476B2 (en) * 2007-09-05 2012-11-13 Htc Corporation Method for synchronizing information of dual operating systems
US7882274B2 (en) 2007-09-20 2011-02-01 Virtual Desktop Technologies, Inc. Computer system with multiple terminals
US20090158299A1 (en) * 2007-10-31 2009-06-18 Carter Ernst B System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed
US8230446B2 (en) * 2007-11-28 2012-07-24 International Business Machines Corporation Providing a computing system with real-time capabilities
DE102007062114A1 (de) * 2007-12-21 2009-07-23 Opensynergy Gmbh Kraftfahrzeug-Steuervorrichtung
EP2083525A1 (en) * 2008-01-28 2009-07-29 Merging Technologies S.A. System to process a plurality of audio sources
FR2927438B1 (fr) * 2008-02-08 2010-03-05 Commissariat Energie Atomique Methode de prechargement dans une hierarchie de memoires des configurations d'un systeme heterogene reconfigurable de traitement de l'information
US8364943B2 (en) * 2008-02-29 2013-01-29 Lenovo (Singapore) Pte. Ltd. S3 BIOS operating system switch
AU2009222627B2 (en) 2008-10-09 2011-07-21 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US11287939B2 (en) 2008-10-09 2022-03-29 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US20100180276A1 (en) * 2009-01-15 2010-07-15 Jiva Azeem S Application partitioning across a virtualized environment
US20100265938A1 (en) * 2009-04-16 2010-10-21 Mitel Networks Corporation Enhanced system operation by virtualization
US9372711B2 (en) 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
US9367331B2 (en) 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
US9389877B2 (en) 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
US9348633B2 (en) 2009-07-20 2016-05-24 Google Technology Holdings LLC Multi-environment operating system
KR101610828B1 (ko) * 2009-09-23 2016-04-08 삼성전자주식회사 멀티코어 프로세서의 인터럽트 온/오프 관리 장치와 방법
US9110568B2 (en) * 2009-10-13 2015-08-18 Google Inc. Browser tab management
GB0919253D0 (en) 2009-11-03 2009-12-16 Cullimore Ian Atto 1
KR20110072922A (ko) * 2009-12-23 2011-06-29 삼성전자주식회사 화상형성장치의 추가 확장기능을 실행하는 방법 및 이를 수행하는 화상형성장치
CN101782861A (zh) * 2009-12-24 2010-07-21 华为终端有限公司 在嵌入式系统中操作系统的管理方法及装置
US20110219373A1 (en) * 2010-03-02 2011-09-08 Electronics And Telecommunications Research Institute Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
US8433889B2 (en) 2010-04-28 2013-04-30 Acer Cloud Technology, Inc. Operating system context switching
US8819321B2 (en) 2010-06-03 2014-08-26 Dell Products L.P. Systems and methods for providing instant-on functionality on an embedded controller
US8983536B2 (en) 2010-10-22 2015-03-17 Google Technology Holdings LLC Resource management in a multi-operating environment
US9361251B2 (en) * 2010-10-22 2016-06-07 Mitsubishi Electric Corporation Interrupt signal accepting apparatus and computer apparatus managing operations of at least two operating systems
KR101727041B1 (ko) * 2010-10-29 2017-04-14 엘지전자 주식회사 이동 단말기 및 그 제어 방법
KR101761615B1 (ko) 2010-10-29 2017-08-04 엘지전자 주식회사 이동 단말기 및 그 제어 방법
US8875276B2 (en) 2011-09-02 2014-10-28 Iota Computing, Inc. Ultra-low power single-chip firewall security device, system and method
US9178981B2 (en) * 2010-12-22 2015-11-03 Lg Electronics Inc. Mobile terminal and method of sharing information therein
US9354900B2 (en) * 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
US20120278747A1 (en) * 2011-04-28 2012-11-01 Motorola Mobility, Inc. Method and apparatus for user interface in a system having two operating system environments
US8904216B2 (en) 2011-09-02 2014-12-02 Iota Computing, Inc. Massively multicore processor and operating system to manage strands in hardware
JP5729266B2 (ja) * 2011-11-15 2015-06-03 富士通株式会社 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
CN103136052A (zh) * 2011-11-25 2013-06-05 展讯通信(上海)有限公司 移动终端及安装有多个操作系统的移动终端的控制方法
US8544082B2 (en) * 2012-01-05 2013-09-24 Lenovo (Singapore) Pte. Ltd. Security reuse in hybrid information handling device environments
US9417753B2 (en) 2012-05-02 2016-08-16 Google Technology Holdings LLC Method and apparatus for providing contextual information between operating system environments
US9342325B2 (en) 2012-05-17 2016-05-17 Google Technology Holdings LLC Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device
CN102819497B (zh) * 2012-05-31 2015-09-30 华为技术有限公司 一种内存分配方法、装置及系统
CN103839017B (zh) * 2012-11-20 2019-07-26 联想(北京)有限公司 一种电子设备状态的切换方法及系统
CN103870295B (zh) * 2012-12-13 2017-03-29 联想(北京)有限公司 切换方法和电子设备
WO2014100279A1 (en) * 2012-12-18 2014-06-26 Dynavisor, Inc. Dynamic device virtualization
CN104050019A (zh) * 2013-03-15 2014-09-17 宇宙互联有限公司 具有操作系统共享控制功能的电子装置、系统及方法
US20140325041A1 (en) * 2013-04-27 2014-10-30 Tencent Technology (Shenzhen) Co., Ltd. Method, apparatus, server and system for adapting a client to a hardware environment
JP5996110B2 (ja) * 2013-06-07 2016-09-21 三菱電機株式会社 計算機システム及び制御方法
CN103744693B (zh) * 2013-12-13 2017-12-08 乐视致新电子科技(天津)有限公司 一种多系统切换方法及电子设备
CN104156270B (zh) * 2014-07-28 2018-02-06 浪潮(北京)电子信息产业有限公司 一种单机同时运行多操作系统的方法及系统
EP3180030B1 (en) 2014-08-12 2019-10-09 The Regents of The University of California Trehalose hydrogels for stabilization and delivery of proteins
US9928079B2 (en) * 2014-09-23 2018-03-27 Dialog Semiconductor (Uk) Limited Conditional processor auto boot with no boot loader when coupled with a nonvolatile memory
CN104572287B (zh) * 2015-01-30 2018-12-25 西安酷派软件科技有限公司 一种系统切换时保持应用状态的方法、装置及终端
CN105068897A (zh) * 2015-07-17 2015-11-18 东莞市健创电子有限公司 实现车载智能双系统的方法及其双系统和该双系统平台
CN105159819B (zh) * 2015-09-01 2018-03-13 汉柏科技有限公司 一种记录内核异常栈及调试信息的方法及系统
TR201608894A3 (tr) * 2016-06-27 2018-03-21 Tusas Tuerk Havacilik Ve Uzay Sanayii Anonim Sirketi Bir gerçek zamanlı çalışma yöntemi.
JP6615726B2 (ja) 2016-09-16 2019-12-04 株式会社東芝 情報処理装置、情報処理方法及びプログラム
CN106445702A (zh) * 2016-09-21 2017-02-22 乐视控股(北京)有限公司 多系统通信方法及终端
CN106681817B (zh) * 2016-12-27 2021-01-15 宇龙计算机通信科技(深圳)有限公司 一种终端控制方法以及终端
CN108829442B (zh) * 2017-05-04 2021-12-14 杭州海康威视数字技术股份有限公司 程序启动方法及装置
CN107436810A (zh) * 2017-07-03 2017-12-05 北京东土科技股份有限公司 一种计算机系统资源调度方法及装置
US10169030B1 (en) 2017-09-13 2019-01-01 International Business Machines Corporation Refreshing a software component without interruption
CN110134491B (zh) * 2018-02-09 2023-08-08 威纶科技股份有限公司 信息处理传输装置
CN112136110A (zh) * 2018-05-07 2020-12-25 三菱电机株式会社 信息处理装置、调整方法及调整程序
CN109032029B (zh) * 2018-08-14 2020-12-08 北京东土科技股份有限公司 工业服务器对外通信方法、系统、装置及工业服务器
EP3611642B1 (en) * 2018-08-17 2020-08-12 Omron Corporation Method for operating an industrial pc device and industrial pc device
CN115098402B (zh) * 2022-07-25 2023-01-06 摩尔线程智能科技(北京)有限责任公司 调试方法以及调试装置

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2580096B1 (es) * 1985-04-04 1988-08-19 Nec Corp
US4747040A (en) * 1985-10-09 1988-05-24 American Telephone & Telegraph Company Dual operating system computer
JP2629278B2 (ja) * 1988-06-30 1997-07-09 株式会社日立製作所 仮想計算機システム
DE3831048A1 (de) 1988-09-12 1990-03-15 Nixdorf Computer Ag Betriebsprogramm fuer eine datenverarbeitungsanlage
US5144692A (en) * 1989-05-17 1992-09-01 International Business Machines Corporation System for controlling access by first system to portion of main memory dedicated exclusively to second system to facilitate input/output processing via first system
US5355490A (en) * 1991-06-14 1994-10-11 Toshiba America Information Systems, Inc. System and method for saving the state for advanced microprocessor operating modes
US5596755A (en) * 1992-11-03 1997-01-21 Microsoft Corporation Mechanism for using common code to handle hardware interrupts in multiple processor modes
US5530858A (en) * 1993-04-01 1996-06-25 Intel Corporation Method and apparatus for background processing for PCMCIA card services
US5379432A (en) * 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system
US6684261B1 (en) * 1993-07-19 2004-01-27 Object Technology Licensing Corporation Object-oriented operating system
US6116768A (en) * 1993-11-30 2000-09-12 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator
US5884077A (en) * 1994-08-31 1999-03-16 Canon Kabushiki Kaisha Information processing system and method in which computer with high load borrows processor of computer with low load to execute process
US5903752A (en) 1994-10-13 1999-05-11 Intel Corporation Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US5721922A (en) 1994-10-13 1998-02-24 Intel Corporation Embedding a real-time multi-tasking kernel in a non-real-time operating system
US5740438A (en) * 1995-03-31 1998-04-14 International Business Machines Corporation Methods and system for network communications of multiple partitions
US5812823A (en) * 1996-01-02 1998-09-22 International Business Machines Corporation Method and system for performing an emulation context save and restore that is transparent to the operating system
US6535929B1 (en) * 1996-07-02 2003-03-18 Sun Microsystems, Inc. Universal communication mechanism for applications running in a multitasking environment
US5995745A (en) 1996-12-23 1999-11-30 Yodaiken; Victor J. Adding real-time support to general purpose operating systems
US6199096B1 (en) * 1997-03-14 2001-03-06 Efusion, Inc. Method and apparatus for synchronizing information browsing among multiple systems
US6269409B1 (en) * 1997-09-02 2001-07-31 Lsi Logic Corporation Method and apparatus for concurrent execution of operating systems
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
FI108478B (fi) * 1998-01-21 2002-01-31 Nokia Corp Sulautettu jõrjestelmõ
EP0944003A1 (en) * 1998-03-18 1999-09-22 SONY EUROPE GmbH Notification subsystem
US6134653A (en) * 1998-04-22 2000-10-17 Transwitch Corp. RISC processor architecture with high performance context switching in which one context can be loaded by a co-processor while another context is being accessed by an arithmetic logic unit
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
FR2793906B1 (fr) 1999-05-19 2001-08-10 Bull Sa Systeme et procede de gestion d'attributs dans un environnement oriente objet
JP3659062B2 (ja) * 1999-05-21 2005-06-15 株式会社日立製作所 計算機システム
US6760783B1 (en) * 1999-05-21 2004-07-06 Intel Corporation Virtual interrupt mechanism
JP2000347883A (ja) 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd 仮想計算機装置
US6920633B1 (en) * 2000-01-14 2005-07-19 Microsoft Corporation Cross-process common system resource data sharing
US7036106B1 (en) * 2000-02-17 2006-04-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6763327B1 (en) * 2000-02-17 2004-07-13 Tensilica, Inc. Abstraction of configurable processor functionality for operating systems portability
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
EP1162536A1 (en) * 2000-06-09 2001-12-12 Hitachi, Ltd. Multiple operating system control method
CN101284525A (zh) * 2000-06-20 2008-10-15 株式会社日立制作所 车辆行驶控制装置
US6868507B1 (en) * 2000-11-07 2005-03-15 Intel Corporation Operating system independent
US20020078339A1 (en) * 2000-12-15 2002-06-20 Shen Hung-Ju Booting system and booting method for an assistant operation system
US20020161961A1 (en) * 2001-01-17 2002-10-31 Ajile Systems, Inc. Multiple virtual machine environment management system
US7079531B2 (en) * 2001-03-28 2006-07-18 Siemens Communications, Inc. Method and apparatus for providing a software adaption layer in a telecommunications system
US6789156B1 (en) * 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
JP2003036174A (ja) * 2001-07-25 2003-02-07 Hitachi Ltd 車載端末装置
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7356677B1 (en) * 2001-10-19 2008-04-08 Flash Vos, Inc. Computer system capable of fast switching between multiple operating systems and applications
US6725289B1 (en) * 2002-04-17 2004-04-20 Vmware, Inc. Transparent address remapping for high-speed I/O
US6920587B2 (en) * 2002-04-25 2005-07-19 International Business Machines Corporation Handling multiple operating system capabilities in a logical partition data processing system
KR100421144B1 (ko) * 2002-05-24 2004-03-04 삼성전자주식회사 미디어 게이트웨이 콘트롤 프로토콜방식의 보이스 오버인터넷 프로토콜 호 서비스를 위한 헤드 엔드 장치
US7210144B2 (en) * 2002-08-02 2007-04-24 Microsoft Corporation Method for monitoring and emulating privileged instructions of programs in a virtual machine
US6782424B2 (en) * 2002-08-23 2004-08-24 Finite State Machine Labs, Inc. System, method and computer program product for monitoring and controlling network connections from a supervisory operating system
US8214531B2 (en) * 2002-10-24 2012-07-03 Emulex Design & Manufacturing Corporation Network configuration synchronization for hardware accelerated network protocol
US8612992B2 (en) * 2003-04-09 2013-12-17 Jaluna Sa Operating systems
EP1467282B1 (en) * 2003-04-09 2008-10-01 Jaluna SA Operating systems
EP1503286B1 (en) * 2003-07-30 2014-09-03 Jaluna SA Multiple operating system networking
JP2007509387A (ja) * 2003-09-30 2007-04-12 ジャルナ エスアー オペレーティングシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11385758B2 (en) 2008-10-09 2022-07-12 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module

Also Published As

Publication number Publication date
US20040205755A1 (en) 2004-10-14
EP1467282A3 (en) 2004-12-22
CN101349976A (zh) 2009-01-21
US20070022421A1 (en) 2007-01-25
CN100392598C (zh) 2008-06-04
CN1791862A (zh) 2006-06-21
EP1467282A2 (en) 2004-10-13
US7434224B2 (en) 2008-10-07
DE60323811D1 (de) 2008-11-13
ES2315469T3 (es) 2009-04-01
EP1879108A1 (en) 2008-01-16
US8201170B2 (en) 2012-06-12
ATE409904T1 (de) 2008-10-15

Similar Documents

Publication Publication Date Title
EP1467282B1 (en) Operating systems
EP2296089B1 (en) Operating systems
US8024742B2 (en) Common program for switching between operation systems is executed in context of the high priority operating system when invoked by the high priority OS
US8612992B2 (en) Operating systems
US6199181B1 (en) Method and system for maintaining restricted operating environments for application programs or operating systems
US7421689B2 (en) Processor-architecture for facilitating a virtual machine monitor
US6711605B2 (en) Multi OS configuration method and computer system
US8930684B2 (en) Adding a runtime service for firmware-based images for a device not known to an operating system
WO2006063274A1 (en) System and method to deprivilege components of a virtual machine monitor
JP2007507779A (ja) オペレーティングシステム
EP1616257B1 (en) Operating systems
EP1673697B1 (en) Operating systems
JP2001216172A (ja) マルチos構成方法
EP1673693B1 (en) Operating systems
US5790837A (en) Method and system for device virtualization based on an interrupt request in a dos-based environment

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

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

AK Designated contracting states

Kind code of ref document: A3

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK

17P Request for examination filed

Effective date: 20050615

AKX Designation fees paid

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REF Corresponds to:

Ref document number: 60323811

Country of ref document: DE

Date of ref document: 20081113

Kind code of ref document: P

RAP2 Party data changed (patent owner data changed or rights of a patent transferred)

Owner name: VIRTUALLOGIX SA

REG Reference to a national code

Ref country code: CH

Ref legal event code: NV

Representative=s name: KIRKER & CIE S.A.

REG Reference to a national code

Ref country code: SE

Ref legal event code: TRGR

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081001

REG Reference to a national code

Ref country code: ES

Ref legal event code: FG2A

Ref document number: 2315469

Country of ref document: ES

Kind code of ref document: T3

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081001

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20090101

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20090302

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081001

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081001

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081001

Ref country code: BE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081001

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: ES

Payment date: 20090508

Year of fee payment: 7

Ref country code: IE

Payment date: 20090420

Year of fee payment: 7

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

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

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081001

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: IT

Payment date: 20090421

Year of fee payment: 7

Ref country code: NL

Payment date: 20090405

Year of fee payment: 7

26N No opposition filed

Effective date: 20090702

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081001

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: CH

Payment date: 20090416

Year of fee payment: 7

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090430

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20090102

REG Reference to a national code

Ref country code: NL

Ref legal event code: V1

Effective date: 20101101

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20100409

Ref country code: NL

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20101101

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20100430

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20100430

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20100409

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090409

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20090402

REG Reference to a national code

Ref country code: ES

Ref legal event code: FD2A

Effective date: 20110711

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: ES

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20110629

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081001

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20081001

Ref country code: ES

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20100410

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 14

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 15

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 16

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20220323

Year of fee payment: 20

Ref country code: FI

Payment date: 20220318

Year of fee payment: 20

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: SE

Payment date: 20220322

Year of fee payment: 20

Ref country code: FR

Payment date: 20220322

Year of fee payment: 20

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20220322

Year of fee payment: 20

REG Reference to a national code

Ref country code: DE

Ref legal event code: R071

Ref document number: 60323811

Country of ref document: DE

REG Reference to a national code

Ref country code: GB

Ref legal event code: PE20

Expiry date: 20230408

REG Reference to a national code

Ref country code: SE

Ref legal event code: EUG

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION

Effective date: 20230408