{
{      *** WARNING This interface is intended to be used carefully ***
{      ***     by subsystem writers ONLY. Misuse of this interface ***
{      ***     may cause a degradation in system performance or    ***
{      ***     (in worse case) a system failure.                   ***
{
{ This request is used to inform the operating system that the task has
{ entered a critical region where global resources may be interlocked.
{ This request will cause the system to give special dispatching/swapping
{ priority to the job and task while the task is in the critical region.
{
{ Critical regions may be nested. There is a counter for each task that is
{ incremented each time the task enters a critical region and decremented
{ each time the task exits the critical region. If the count is non-zero
{ the task is considered to be in a critical region. If the count exceeds
{ 255 the task is terminated.
{
{ Correct use of this request requires the following:
{    o the size of the critical region should be as small as possible.
{      Try to minimize the CP time spent in the critical region. Values
{      up to a couple of hundred of milliseconds are reasonable.
{    o Try to prevent  page faults while in the critical
{      region, especially to pages that may be on disk. If possible,
{      data structures that will be referenced from within the critical
{      region should be referenced prior to entering the critical region.
{    o Avoid calls to other parts of the operating system while in the
{      critical region.
{
{ NOS/VE handles critical regions as follows:
{    o A task is guaranteed at least 1 full time slice after entering a
{      critical region before a task switch will occur because of end of
{      timeslice. (of course pmp$wait, page fault for page on disk, etc.
{      will cause a task switch sooner)
{    o A task in a critical region will execute for 5 time slices with
{      a high priority. After 5 time slices have elapsed, the task reverts
{      to its nominal priority. No further special dispatching
{      consideration is given to the task.
{    o If a PMP$READY_TASK or PMP$READY_TASK_AND_WAIT request is sent to
{      a task in a critical region, the priority of the task in the
{      critical region is set to the larger of its current priority or
{      the nominal priority of the task that issued the ready request.
{      The task will continue to execute with this priority until it
{      exits the critical region. At this time the priority reverts to
{      its original priority.
{
{
{        PMP$BEGIN_SUBSYSTEM_ACTIVITY (STATUS);
{
{  STATUS: (output) This parameter is the request status.
{        CONDITIONS:
{              none

