Operating system for office machines
First Claim
1. A method for supporting real time processing in a graphical windowing operating system for an office machine, the graphical windowing operating system having a non-preemptive scheduler for scheduling windowing applications, a preemptive scheduler for preemptively scheduling the windowing applications and real time applications, a first messaging subsystem for processing messages for the windowing applications, and a second messaging subsystem for processing messages for the real time applications, the office machine having a processor and memory, the method comprising:
- separately controlling communication among the windowing applications with the first messaging subsystem, including posting messages and getting messages for each of the windowing applications in message queues allocated for the windowing applications;
controlling whether the windowing applications are in a blocked or ready state for scheduling in response to message calls to the first messaging subsystem from the windowing applications;
allocating message queues corresponding to the real time applications with the second messaging subsystem;
separately processing messages for the real time applications with the second messaging subsystem including posting and getting messages for each of the real time applications in the message queues allocated for the real time applications;
controlling whether the real time applications are in a blocked or ready state for scheduling in response to message calls to the second messaging subsystem from the real time applications;
allocating message queues for office machine foreground applications in the first messaging subsystem;
receiving message calls from office machine foreground applications in the second messaging subsystem to enable the office machine foreground applications to communicate with the real time applications;
determining whether any of the message calls received in the second messaging subsystem correspond to the message queues allocated for the windowing applications and the office machine foreground applications maintained by the first message subsystem;
making message calls on behalf of a first office machine foreground application in response to receiving a first message call in the second messaging subsystem that corresponds to one of the message queues allocated by the first messaging subsystem for either one of the windowing applications or one of the office machine foreground applications;
scheduling the windowing applications non-preemptively in a system process with the non-preemptive scheduler;
scheduling a first real time application and the system process preemptively by the following steps;
transferring control to the preemptive scheduler upon an interrupt generated by an interrupt module;
determining whether a currently running process can be preempted;
identifying whether the currently running process is in the system process;
determining whether the real time application is ready to be scheduled by the preemptive scheduler; and
if the currently running process is in the system process and the real time application is ready to be scheduled, then preempting the currently running process by performing a context switch between the currently running process and the first real time application.
1 Assignment
0 Petitions
Accused Products
Abstract
A multitasking, graphical windowing operating system for an office machine supporting real time processing, including a method for supporting real time processing in the operating system. The operating system includes a kernel having a non-preemptive scheduler for scheduling windowing applications and a preemptive scheduler for scheduling real time applications. The kernel includes a messaging subsystem for communication among process in the system including both the real time and windowing applications, and further includes an event semaphore maintained by the kernel to manage scheduling. The method includes grouping windowing applications together for scheduling purposes and scheduling windowing applications non-preemptively. The method further includes determining priority of real time applications and scheduling real time applications preemptively with the windowing applications based on priority.
125 Citations
13 Claims
-
1. A method for supporting real time processing in a graphical windowing operating system for an office machine, the graphical windowing operating system having a non-preemptive scheduler for scheduling windowing applications, a preemptive scheduler for preemptively scheduling the windowing applications and real time applications, a first messaging subsystem for processing messages for the windowing applications, and a second messaging subsystem for processing messages for the real time applications, the office machine having a processor and memory, the method comprising:
-
separately controlling communication among the windowing applications with the first messaging subsystem, including posting messages and getting messages for each of the windowing applications in message queues allocated for the windowing applications; controlling whether the windowing applications are in a blocked or ready state for scheduling in response to message calls to the first messaging subsystem from the windowing applications; allocating message queues corresponding to the real time applications with the second messaging subsystem; separately processing messages for the real time applications with the second messaging subsystem including posting and getting messages for each of the real time applications in the message queues allocated for the real time applications; controlling whether the real time applications are in a blocked or ready state for scheduling in response to message calls to the second messaging subsystem from the real time applications; allocating message queues for office machine foreground applications in the first messaging subsystem; receiving message calls from office machine foreground applications in the second messaging subsystem to enable the office machine foreground applications to communicate with the real time applications; determining whether any of the message calls received in the second messaging subsystem correspond to the message queues allocated for the windowing applications and the office machine foreground applications maintained by the first message subsystem; making message calls on behalf of a first office machine foreground application in response to receiving a first message call in the second messaging subsystem that corresponds to one of the message queues allocated by the first messaging subsystem for either one of the windowing applications or one of the office machine foreground applications; scheduling the windowing applications non-preemptively in a system process with the non-preemptive scheduler; scheduling a first real time application and the system process preemptively by the following steps; transferring control to the preemptive scheduler upon an interrupt generated by an interrupt module; determining whether a currently running process can be preempted; identifying whether the currently running process is in the system process; determining whether the real time application is ready to be scheduled by the preemptive scheduler; and if the currently running process is in the system process and the real time application is ready to be scheduled, then preempting the currently running process by performing a context switch between the currently running process and the first real time application. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for supporting real time processing in a graphical windowing operating system for an office machine, wherein the office machine is selected from the group consisting of a fax machine, a scanner, a printer, and a copier, the graphical windowing operating system having a scheduler, and a first and a second messaging subsystem, the office machine having a processor and memory, the method comprising:
-
separately controlling communication among windowing processes with the first messaging subsystem, including posting messages and getting messages for each of the windowing processes in message queues allocated for the windowing processes; controlling whether the windowing processes are in a blocked or ready state for scheduling in response to message calls to the first messaging subsystem from the windowing processes; allocating message queues corresponding to real time processes with the second messaging subsystem; separately processing messages for the real time processes with the second messaging subsystem including posting and getting messages for each of the real time processes in the message queues allocated for the real time processes so that the real time processes can operate independently of the windowing processes; controlling whether the real time applications are in a blocked or ready state for scheduling in response to message calls to the second messaging subsystem from the real time processes; allocating message queues for office machine foreground applications in the first messaging subsystem; receiving message calls from office machine foreground applications in the second messaging subsystem to enable the office machine foreground applications to communicate with the real time applications; determining whether any of the message calls received in the second messaging subsystem correspond to the message queues allocated for the windowing applications and the office machine foreground applications maintained by the first message subsystem; making message calls on behalf of a first office machine foreground application in response to receiving a first message call in the second messaging subsystem that corresponds to one of the message queues allocated by the first messaging subsystem for either one of the windowing applications or one of the office machine foreground applications; transferring control to the scheduler at an interrupt generated by an interrupt module; scheduling a first real time process at the interrupt by the following steps; determining whether the first real time process is ready; determining whether a currently executing process can be preempted; and if the currently executing process can be preempted and the first real time process is ready, then preempting the currently executing process by executing a context switch between the currently executing process and the first real time process ready to be scheduled. - View Dependent Claims (9, 10, 11, 12)
-
-
13. An operating system for an office machine comprising:
-
a first messaging subsystem operable to allocate and maintain message queues for windowing processes and office machine foreground processes, operable to post and get messages from the message queues to allow the windowing processes and the office machine foreground processes to communicate with each other; a second messaging subsystem in communication with the office machine foreground processes and office machine background processes, the second messaging subsystem operable to allocate and separately maintain message queues for the office machine background processes so that the office machine background processes can operate independently from the windowing processes, and operable to post and get messages for the office machine background processes to allow the office machine foreground and background processes to communicate with each other, the second messaging subsystem in communication with the first messaging subsystem for making message calls to the first messaging subsystem on behalf of the office machine foreground processes in response to receiving a message call in the second messaging subsystem that corresponds to one of the message queues allocated for the windowing processes by the first messaging subsystem to enable the windowing processes and the office machine foreground processes to communicate with each other; a non-preemptive scheduler in communication with the first messaging subsystem for non-preemptively scheduling the windowing processes and the office machine foreground processes in a system process; a preemptive scheduler in communication with the first and second messaging subsystems for preemptively scheduling the office machine background processes and the system process, the preemptive scheduler operable to determine priority of the office machine background processes, and operable to preemptively schedule the office machine background processes based on the priority of the office machine background processes; and an interrupt module in communication with the preemptive scheduler for issuing interrupts to cause the preemptive scheduler to schedule the office machine background processes.
-
Specification