Information Technology Reference
In-Depth Information
Parallelism
Γ P , σ P , σ
Γ P | Q , σ P | Q , σ
Scheduling. Before a processor can execute a feature it must acquire locks and it must
wait until the wait condition is satisfied. A locking request encapsulates these two re-
quirements; it consists of the requested locks and the wait condition. At every moment,
multiple processors can have conflicting locking requests. The scheduler is the arbiter
for these conflicts. The scheduler takes locking requests and stores them in a queue. It
then approves locking requests according to a certain scheduling algorithm.
The model permits a number of possible scheduling algorithms. The algorithms dif-
fer in their level of fairness and their performance. This formalization does not focus on
a particular scheduling algorithm. Instead, it uses the conditions of the inference rules
to express locking requests. If more than one processor satisfies the conditions, then any
of these processors can proceed.
5.2
Initial Configuration
The initial configuration is defined by the SCOOP program. Each SCOOP program
defines a root class type c and a root procedure f . The root procedure is a creation
procedure of the root class type that has no formal arguments and no precondition.
In the beginning, the runtime generates a bootstrap processor p and root processor
q with a root object of the root class type. The request queue of the root processor is
locked on behalf of the bootstrap processor. This defines our initial state
σ
:
σ x de f
= new STATE . make
σ y de f
= σ x . add proc ( σ x . new proc )
p de f
= σ y . last added proc
σ z de f
= σ y . add proc ( σ y . new proc )
q de f
= σ z . last added proc
σ w de f
= σ z . add obj ( q , σ z . new obj ( c ))
r de f
= σ w . ref ( σ w . last added obj )
de f
= σ w .
σ
lock rqs
(
p
, {
q
} )
The bootstrap processor first asks the root processor to execute the root procedure on
the root object and then asks the root processor to unlock its request queue as soon
as it finished the execution. The bootstrap processor can do this because it has the re-
quest queue lock on the root processor. Finally, the bootstrap processor removes the
request queue lock from its stack of obtained request queue locks. This is shown in the
following initial configuration:
Search WWH ::




Custom Search