DEFINITION MODULE ConfigurationOptions;

        (********************************************************)
        (*                                                      *)
        (*      The function of this file is to collect         *)
        (*      together some key configuration settings        *)
        (*      which govern things like which PMOS             *)
        (*      features are to be disabled.                    *)
        (*                                                      *)
        (*  Programmer:         P. Moylan                       *)
        (*  Last edited:        17 August 1994                  *)
        (*  Status:             OK                              *)
        (*                                                      *)
        (*      Remark: I'm gradually moving things out of      *)
        (*      this module, and I might well decide to         *)
        (*      eliminate this module entirely in a future      *)
        (*      version of PMOS.                                *)
        (*                                                      *)
        (********************************************************)

(************************************************************************)
(*                      KERNEL SETTINGS                                 *)
(************************************************************************)

CONST
    (* The following Boolean constant defines whether the PMOS kernel   *)
    (* will permit round-robin time-slicing among tasks of equal        *)
    (* priority.  For hard real-time applications this should typically *)
    (* be set to FALSE, since time-slicing interferes with the          *)
    (* predictability of execution times.  Disabling time-slicing also  *)
    (* reduces kernel overheads because of the following special        *)
    (* property: with time-slicing disallowed, the only tasks which     *)
    (* participate in task switches and in priority inheritance         *)
    (* calculations are those at the head of each ready queue.  (The    *)
    (* key theoretical result is that there is at most one "active"     *)
    (* task per priority level.)  With time-slicing enabled, any ready  *)
    (* task could be an active task.                                    *)
    (* For applications where keyboard/screen interaction is the        *)
    (* dominant factor, setting TimeSlicingEnabled TRUE sometimes gives *)
    (* a better illusion that multiple tasks are running in parallel.   *)

    TimeSlicingEnabled = FALSE;

    (* The next two constants define the maximum number of concurrent   *)
    (* tasks which are permitted, and the stack size for each task.     *)

    MaxTaskNumber = 31;
    StackSize = 2048;

(************************************************************************)
(*                              MOUSE                                   *)
(************************************************************************)

    (* The mouse options are no longer specified in this module.        *)
    (* Instead, they are specified in the PP.CFG file which is used     *)
    (* in the PMOS installation operation.                              *)

END ConfigurationOptions.

