Browse Prior Art Database

Executing a Preemptive, Priority-Based Dispatcher in a Multitasking Environment

IP.com Disclosure Number: IPCOM000040002D
Original Publication Date: 1987-Sep-01
Included in the Prior Art Database: 2005-Feb-01
Document File: 1 page(s) / 12K

Publishing Venue

IBM

Related People

Bartek, BA: AUTHOR [+3]

Abstract

A method is described for allowing a preemptive, priority-based dispatcher to execute in a multitasking environment. A multitasking operating system allows multiple applications to run concurrently at different priorities. The operating system controls the interrupts and passes control to the Interrupt Service Routine (ISR) of the applications running under it based on which has highest priority. The operating system expects the ISR to execute and return control promptly. The ISR cannot do any "application-specific" processing and can use only a subset of the operating system function calls. The dispatching of other tasks from an ISR under the control of a multitasking operating system is not permitted. This makes it difficult for a program to dynamically start new processes in a multitasking environment.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 68% of the total text.

Page 1 of 1

Executing a Preemptive, Priority-Based Dispatcher in a Multitasking Environment

A method is described for allowing a preemptive, priority-based dispatcher to execute in a multitasking environment. A multitasking operating system allows multiple applications to run concurrently at different priorities. The operating system controls the interrupts and passes control to the Interrupt Service Routine (ISR) of the applications running under it based on which has highest priority. The operating system expects the ISR to execute and return control promptly. The ISR cannot do any "application-specific" processing and can use only a subset of the operating system function calls. The dispatching of other tasks from an ISR under the control of a multitasking operating system is not permitted. This makes it difficult for a program to dynamically start new processes in a multitasking environment. The solution to this problem is to delay the dispatch of the higher priority process made ready by the (ISR) until a system call occurs during the application's normal timeslice. When an interrupt occurs, the information about the interrupted application is saved. If the ISR of the new application makes a process ready to run which has a higher priority than the interrupted process in the new application, the priority of the interrupted process is changed to a special priority value greater than that of any other non-ISR process. This priority assures that the last process that was r...