28
Web Server
Web Server
Call VIA functions
r ing a doorbell
VipRecvDone
VipRecvDone
(),
(),
VipRecvWait
VipRecvWait
(),
(),
VipSendWait
VipSendWait
()
()
S
S
c
c
h
h
e
e
d
d
u
u
l
l
e
e
r
r
Co
Co
Scheduler
Scheduler
Module
Module
Select a process
running queue
by calling goodness()
wait queues
DMA
DMA
NCP
NCP
Intelligent
Intelligent
NIC
NIC
NIC Processor
NIC Processor
Fig. 3.4. Three Layers of the Simulator
is determined by adding up the numerical values of three priority types; 1) Super user
controlled real time priority, 2) User assigned priority, and 3) System assigned dynamic
priority [17]. When a coscheduling algorithm is applied, however, the Linux scheduler
receives the process pointer from the coscheduling module. The coscheduling module
chooses the next running process based on the underlying coscheduling policy [27, 3].
Different coscheduling policies can be simulated using appropriate parameters. Finally,
the coscheduled Web server model is simulated to capture all the functionalities. It is
possible to specify the Web server configuration in terms of number of nodes, cache size,
and many other parameters. In the simulator, these three layers are synchronized by
events of csim. For instance, when a process finishes its time quantum, it sends an event
to the scheduler. The scheduler calculates the next running process by calling goodness()
function. Then, the simulator sends an event to the chosen process.