Squeak Class Documentation category index | class index  
 
ProcessorScheduler
  category: Kernel-Processes
  superclass: Object
  subclasses:

My single instance, named Processor, coordinates the use of the physical processor by all Processes requiring service.

instance methods
  CPU usage tally
  nextReadyProcess
tallyCPUUsageFor:
tallyCPUUsageFor:every:

  accessing
  activePriority
activeProcess
backgroundProcess
highestPriority
highestPriority:
preemptedProcess
waitingProcessesAt:

  objects from disk
  objectForDataStream:

  priority names
  highIOPriority
lowIOPriority
lowestPriority
systemBackgroundPriority
timingPriority
userBackgroundPriority
userInterruptPriority
userSchedulingPriority

  private
  anyProcessesAbove:

  process state change
  suspendFirstAt:
suspendFirstAt:ifNone:
terminateActive
yield

  removing
  remove:ifAbsent:

class methods
  background process
  idleProcess
relinquishProcessorForMicroseconds:
startUp
sweepHandIdleProcess

  class initialization
  initialize

  instance creation
  new

instance methods
  CPU usage tally top  
 

nextReadyProcess


 

tallyCPUUsageFor:

Start a high-priority process that will tally the next ready process for the given
number of seconds. Answer a Block that will return the tally (a Bag) after the task
is complete


 

tallyCPUUsageFor:every:

Start a high-priority process that will tally the next ready process for the given
number of seconds. Answer a Block that will return the tally (a Bag) after the task
is complete


  accessing top  
 

activePriority

Answer the priority level of the currently running Process.


 

activeProcess

Answer the currently running Process.


 

backgroundProcess

Answer the background process


 

highestPriority

Answer the number of priority levels currently available for use.


 

highestPriority:

Change the number of priority levels currently available for use.


 

preemptedProcess

Return the process that the currently active process just preempted.


 

waitingProcessesAt:

Return the list of processes at the given priority level.


  objects from disk top  
 

objectForDataStream:

I am about to be written on an object file. Write a path to me in the other system instead.


  priority names top  
 

highIOPriority

Answer the priority at which the most time critical input/output
processes should run. An example is the process handling input from a
network.


 

lowIOPriority

Answer the priority at which most input/output processes should run.
Examples are the process handling input from the user (keyboard,
pointing device, etc.) and the process distributing input from a network.


 

lowestPriority

Return the lowest priority that is allowed with the scheduler


 

systemBackgroundPriority

Answer the priority at which system background processes should run.
Examples are an incremental garbage collector or status checker.


 

timingPriority

Answer the priority at which the system processes keeping track of real
time should run.


 

userBackgroundPriority

Answer the priority at which user background processes should run.


 

userInterruptPriority

Answer the priority at which user processes desiring immediate service
should run. Processes run at this level will preempt the window
scheduler and should, therefore, not consume the processor forever.


 

userSchedulingPriority

Answer the priority at which the window scheduler should run.


  private top  
 

anyProcessesAbove:

Do any instances of Process exist with higher priorities?


  process state change top  
 

suspendFirstAt:

Suspend the first Process that is waiting to run with priority aPriority.


 

suspendFirstAt:ifNone:

Suspend the first Process that is waiting to run with priority aPriority. If
no Process is waiting, evaluate the argument, noneBlock.


 

terminateActive

Terminate the process that is currently running.


 

yield

Give other Processes at the current priority a chance to run.


  removing top  
 

remove:ifAbsent:

Remove aProcess from the list on which it is waiting for the processor
and answer aProcess. If it is not waiting, evaluate aBlock.


class methods
  background process top  
 

idleProcess

A default background process which is invisible.


 

relinquishProcessorForMicroseconds:

Platform specific. This primitive is used to return processor cycles to the host operating system when Squeak's idle process is running (i.e., when no other Squeak process is runnable). On some platforms, this primitive causes the entire Squeak application to sleep for approximately the given number of microseconds. No Squeak process can run while the Squeak application is sleeping, even if some external event makes it runnable. On the Macintosh, this primitive simply calls GetNextEvent() to give other applications a chance to run. On platforms without a host operating system, it does nothing. This primitive should not be used to add pauses to a Squeak process; use a Delay instead.


 

startUp

Install a background process of the lowest possible priority that is always runnable.


 

sweepHandIdleProcess

A default background process which shows a sweeping circle of XOR-ed bits on the screen.


  class initialization top  
 

initialize

Object initialize


  instance creation top  
 

new

New instances of ProcessorScheduler should not be created.