2.0 Implementation of QoS in Operating Systems

advertisement
Techniques for Implementing
Quality of Service
In the Eclipse, Nemesis and Real-Time Mach
Operating Systems
Francesca Ruffolo
December 6, 2001
Instructor: Dr. Marius Soneru
CS 550
Comparative Operating Systems
Table of Contents
Abstract: ......................................................................................................................................... 3
1.0
Introduction........................................................................................................................ 3
1.1
Eclipse Operating System .......................................................................................................... 3
1.2
Nemesis Operating System ........................................................................................................ 3
1.3
Real-Time Mach Operating System .......................................................................................... 4
2.0
Implementation of QoS in Operating Systems .................................................................. 4
2.1
Eclipse ........................................................................................................................................... 4
2.1.1
Reservations .............................................................................................................. 5
2.1.2
Tagging ...................................................................................................................... 5
2.1.3
Reservation Domains................................................................................................. 5
2.1.4
Quality of Service Parameters ................................................................................... 6
2.1.5
Move-to-Rear List Scheduling (MTR-LS)................................................................... 7
2.2
Nemesis......................................................................................................................................... 7
2.2.1
Quality of Service Manager ....................................................................................... 7
2.2.2
Run Time Resource Allocation .................................................................................. 8
2.2.3
Accounting ................................................................................................................. 8
2.2.4
Policing ...................................................................................................................... 9
2.3
Real-Time Mach ........................................................................................................................... 9
2.3.1 Processor Reserves ............................................................................................... 9
2.3.2
Dynamic QoS Server .............................................................................................. 9
2.3.3
Q-RAM (QoS-based Resource Allocation Model) ................................................... 10
3.0
Conclusions and Summary ............................................................................................. 12
4.0
Other Implementations of Quality of Service .................................................................. 12
5.0
References ...................................................................................................................... 13
2
Abstract:
The requirement to make quality of service (QoS) guarantees available is increasing with the
need to run multiple server applications, such as audio and video media servers, web servers,
and host services for multiple entities (organizations, individuals) on the same platform. This
paper evaluates and compares the techniques used to implement quality of service in three
separate operating systems: Eclipse/BSD, Nemesis, and Real-Time Mach.
1.0 Introduction
In order to support multiple real-time applications on a single platform, the operating system must
have the ability to reserve system resources among several applications in order to achieve a
certain level of performance. Although networks now provide quality of service guarantees with
respect to packet delay and bandwidth, these are of little value if they are not extended directly to
the application via the operating system.
The motivation for implementing quality of service (QoS) control in operating systems is to allow
explicit control over provisioning of system resources among applications to achieve desired
levels of predictable performance. In addition, quality of service is used to guarantee a certain
level of performance to server applications.
The quality of service initiatives requires the changing of current operating systems in the area
resource schedulers: CPU, disk (file systems), physical memory, and I/O.
1.1
Eclipse Operating System
Eclipse is a product of research that evolved from the Plan 9 operating system that was
developed by Bell Laboratories in New Jersey starting in the late 1980’s. Plan 9 was developed
in response to several trends in the computing industry at that time.


Networks of smaller, more personal machines were preferred over large centralized timeshared computers (typically UNIX workstations)
Administrators grew weary of overloaded, routine time-sharing systems and wished to
move to small, self-maintained systems
In the rush to accommodate customer’s needs via the creation of personal workstations,
weaknesses in doing so were overlooked. Plan 9 attempted to fix both problems.
 Graphics and networking that were added to UNIX in the latter part of its lifecycle were
poorly integrated
 The early focus on private machines made it difficult for networks to serve as seamlessly
as standard time-sharing systems.

1.2
The current version of Eclipse, often referred to as Eclipse/BSD (based on FreeBSD
(Berkeley Software Distribution) version 3.4), provides quality of service support for
applications. Eclipse is utilized for guaranteeing QoS to server applications and
distinguishing among performance of different web sites hosted on the same platform.
Nemesis Operating System
The Nemesis operating system results from work completed for the Pegasus and Pegasus II
projects. The following universities and corporation partnered together in order to develop
Nemesis:
 University of Cambridge, U.K.
 University of Twente, Netherlands
 University of Glasgow, U.K.
 Swedish Institute of Computer Science, Sweden
 Citrix Systems, LTD, U.K.
3
Both Pegasus and Pegasus II projects were based on the following:
 Use of generic multimedia platforms rather than single multimedia applications
 Integration of communication and processing
 Management of resources to provide quality of service guarantees
The design of Nemesis, which evolved from Pegasus and Pegasus II, was fully geared toward
support of time-sensitive applications requiring a consistent quality of service (QoS). Nemesis
provides guaranteed levels of system resources including: CPU, memory, network bandwidth and
disk bandwidth. Nemesis currently runs on a large number of platforms including Intel 486,
Pentium, PPro, DEC Alpha workstations, StrongARM SA-110 based network computers.
1.3
Real-Time Mach Operating System
Research into the Real-Time (RT) Mach system began in 1985. RT Mach is a real-time operating
system developed as a flagship product by the Real-Time and Multimedia Laboratory in
partnership with the Department of Computer Science at Carnegie Mellon University.
Real-Time Mach is a resource kernal which helps to satisfy end-to-end quality-of-service (QoS)
requirements. A resource kernal is defined to be one that provides timely, guaranteed and
protected access to system resources. The resource kernel allows applications to specify only
their resource demands leaving the kernel to satisfy those demands using hidden resource
management schemes.
Parts of the Mach Operating system have been incorporated into a number of commercial
operating systems including:






Encore’s Multimax
Next OS
MachTen for the Macintoshes
Omron’s Luna
DEC’s OSF/1 for the DEC Alpha
IBM-s OS/2 for the RS6000 based machines
Current research in RT Mach includes support for distributed resource management,
mechanisms for guaranteeing end-to-end delays and dynamic QoS control.
2.0 Implementation of QoS in Operating Systems
Each of the three operating systems (Eclipse, Nemesis, and Real-Time Mach) uses different
techniques in implementing quality of service guarantees.
2.1
Eclipse
In order to successfully implement quality of service in Eclipse, the operating system uses
techniques such as reservations, tagging, reservation domains, quality of service parameters and
the move-to-rear list scheduling policy.
4
2.1.1 Reservations
The developers of the Eclipse operating system design and implemented the /reserv
(reservation) file system which the operating system can access, use and reconfigure the system
resource schedulers. The directory nodes correspond to the nodes in the scheduler’s hierarchy
and thus represent reservations. The file system allows the addition and deletion of reservations
and the changing of schedule weights throughout. Each resource contains a reservation
directory, for example, the CPU is represented by /reserv/CPU. If a resource has more than one
reservation, it is split into /reserv/CPU/r1, /reserv/CPU/r2, etc.
2.1.2 Tagging
The design of the reservation also includes a connection with an operation on an object. Such
operations may include reading or writing to a file or executing a thread. Reservations, thus,
have references to objects so that the object can be shared without having to share reservations.
Thus, a “tag” is used to label a file descriptor. For example, for the cpu reservation, a tag is
provided for each process with a cpu reservation that allows a method of dynamically changing
the tag if needed. Tags and tagged file descriptors are used to determine the appropriate queue
for similar requests.
2.1.3 Reservation Domains
Access and admissions to the /reserv file system is offered via the reservation domain.
Reservation domains allow control over system resources among applications in order to achieve
a desired performance level. Reservation domains are assigned a certain fraction of each
resource. For example, a domain may contain 25% CPU, 50% disk I/O, 25% main memory).
Eclipse, therefore, uses reservation-domain scheduling of multiple resources such as CPU, disk
and physical memory. Processes that belong to a particular reservation domain are guaranteed
to attain at least their reservations portion of the domain’s associated resources. An example of a
system that has two reservation domains (RD1 and RD2) is shown in Figure 1. One or more
processes may run in a single reservation domain.
P1
R2
P6
R1
P2
P3
R1
RD1
RD2
Figure 1. Reservation Domain Systems
Reservation domains were designed in an attempt to merge the best attributes of real-time, timesharing, and stand-alone systems. The following are advantages of reservation domains that
cannot be achieved with previously used priority based or real-time based scheduling.
 Provides quality of service even in an overloaded system
 Enables division of resources according to a policy. Two resources may each reserve
half of CPU, although one resource may contain more processes than the other.
5

Provides efficient means of controlling the computing environment. The system provides
a resource “supervisor” that adapts resource reservations dynamically according to
processes issues. A lagging process will prompt the supervisor to increase its
reservations.
2.1.4 Quality of Service Parameters
The scheduling algorithm used by Eclipse, observes three parameters when evaluating priorities:
delay, fairness, and cumulative service. While several algorithms provide delay bound and
fairness parameters, cumulative service is fairly new. The following definitions are useful when
describing fairness, delay and cumulative service:


Di = Reservation Domain
ai = fraction of a resource allocated to a given reservation domain
Ideally each domain, Di should receive at least ai fraction of resource whenever Di has a process
that requires the resource.


Virtual service time = the minimum service time received in the idealized service model.
The virtual service time received by the domain in any real time interval (T, t) is denoted
by vi (T, t).
Real service time (running on the resource) = ai vi (T, t) = si (T,t)
Real scheduling policies require running at most one process at a time on the resource which
means that if there is more than one process waiting to run on a resource, then one or both
processes will experience a (queuing) delay.




Cumulative real waiting time = wi(T,t). This is the time obtained by Di during an interval
(T, t) where its process is blocked by other domains’ process running on the resource.
Total real time = si (T,t) + wi(T,t). This is the time spent by Di at the resource in the
interval (T, t) by running or waiting.
System: a collection of resources. Each resource is modeled by a service rate and preemption interval t . t is the minimum time a resource must run before a pre-emption
can occur. A resource with a zero pre-emption interval can preempt a process at any
time.
Phases: manner in which a process executes. A phase is resource duration pair (s,t),
where s is one the resources and t is the amount of time it takes for resource s to
complete the phase running alone on the resource.
 Fairness
The fairness parameter measures the ability of the system to ensure the domains that are
simultaneously competing for the same resource will share that resource in proportion to their
reservations, independent of their previous usage of that resource. A fair scheduling policy does
not penalize a domain that utilized an idle resource beyond its reservation when other domains
become busy on that resource. The definition of fairness is based on another idealized service
model call processor sharing (ideal processor sharing cannot be implemented in practice). Under
processor sharing each domain receives a service proportional to its fraction on a resource. A
scheduling policy is thus defined as “fair” if there exists a constant F such that for any time
interval |T, t| during which a pair of domains Di and Dj, both continuously require the resource, we
have | si (T,t)/ai – sj (T,t)/aj | < F. Admission control makes sure that the sum of the service
fractions of all domains does not exceed certain bounded limits.
Admission control is not
required for fairness but is necessary for delay and cumulative service guarantees.
 Cumulative Service Guarantee
The cumulative service guarantee parameter compares the performance of the real service time
to the idealized model (virtual service time). In order for a system to provide a performance as
6
good as the one in the idealized model, the total real time si (T,t) + wi(T,t) spent by a domain at
the resource in interval (T, t) to receive vi(T, t) virtual service time should be less than or equal to
vi(T,t). A scheduling policy provides a cumulative service guarantee if there exists a constant K
such that for all domains Dj and T< t there exists vj (T,t ) > wj(T,t) + sj(T,t) – K.
 Delay
Delay guarantee can be defined as the case when at any given time there is only one process
within a reservation domain. When there are multiple concurrent processes within a domain, the
delay experienced depends on how the reservation domain schedules its phases. A scheduling
policy provides delay if for a phase of any domain, the real waiting time plus the service time to
complete the phase takes at most a constant amount more than d/aj where d is the duration of the
phase.
2.1.5 Move-to-Rear List Scheduling (MTR-LS)
The algorithm that Eclipse utilizes for scheduling provides all three quality of service parameters:
bounded delay, cumulative guarantee, and fairness. At the core of the MTR-LS policy is an
ordered list L of pairs (i, left) where i is the index of a reservation domain and left is the size of the
quantum which is the maximum amount of service time reservation domain D i can receive without
being interrupted. There can be multiple occurrences of domain D i on L, pairs appearing at
different positions in the list L that have the same first coordinate i. The pairs (i, left) are called
tokens.
MTR-LS performs several routines:
2.2

Decision epoch routine is called at (1) the arrival of a new domain, (2) the departure of a
domain, (3) expiration of the current domain, (4) the completion of the phase of the
current running process (e.g. process blocks), or the end of the current pre-emption
interval. Therefore, a currently running process may be pre-empted only at the end of
the current pre-emption interval or at the end of the current quantum.

Domain update routine runs when every decision epoch routine is called in order to
update the token of the currently running domain. This routine can either (1) split the
current token into two leaving one token in the current place and appending the other to
the end of L or (2) move the token entirely to the end of L depending on the remaining
quantum in the token.

Run a domain routine selects the next domain to run on the resource. A counter records
the elapsed time to the next decision epoch.

Combine elements routine combines neighboring tokens belonging to the same domain
and is called whenever the list is changed. This routine examines the list when a
change (addition or removal of token) has occurred.
Nemesis
Nemesis provides quality of service via the following techniques: QoS Manager, QoS
parameters used in Run Time Resource Allocation, Accounting and Policing.
2.2.1 Quality of Service Manager
Figure 2 shows how Nemesis’ operating system is constructed to provide quality of service for its
applications. The diagram shows the application as either a client or a server. The module
responsible for QoS is the QoS manager. The QoS manager’s main function is to come to an
agreement with processes about the quality of service that will be delivered to them. An
application presents to the quality of service manager a description of its requirements and the
manager converts it to a set of parameters called quality of service parameters. The manager
7
then decides whether or not it can accommodate this request. If the quality of service requested
cannot be provided, the application is informed and the user may be informed directly by the
quality of service manager or by the application. If the level of quality can be provided then the
resources required to provide it are noted and the application is informed of their availability. A
contract is thus formed between the application and the system. The manager communicates the
applications QoS parameters to the run-time resource allocator (RTRA) that uses them in
conjunction with some knowledge of the current time to allocate the resources to the application.
Some means of accounting and policing are needed so that when resources are limited, an
application cannot use more than has been put aside for it.
QoS Description
Contract
QoS Manager
Application
Resource
Allocation
Parameters
Run Time Resource Allocation
Accounting
Time
CPU
/
Memory
Policing
….
I/O
Figure 2. QoS Management
2.2.2 Run Time Resource Allocation
The run time resource allocator (RTRA) assigns the available resources among those
applications that need to use them. It does this using information in the form of QoS parameters
supplied by the QoS manager. The system dispatcher in the case of the processor resource
performs run time allocation. The dispatcher sees the application resource requests as a series
of tasks that are placed in individual queues to wait until the processor can be allocated to them.
When a request is serviced, the dispatcher selects a task from the head of one the queues then
allocates the processor to it for a certain interval. The queue it chooses from may be assigned by
the QoS manager or based on some service algorithm. The service algorithm and appointed
service times need to be chosen so that contracts between the QoS manager and the application
are met.
2.2.3 Accounting
Current kernals already account for resources used by an application when a running total of the
time spent by an application in both user and supervisor mode is calculated. The cost of
resources is charged to the accounting structure that is associated with the currently executing
user mode protection domain. However, with a number of clients and servers running on top of a
microkernal, accounting for resource usage can become complicated because the single client
may need to interact with a number of servers during execution. In order to solve this problem
two approaches are possible: use of credits or a request to connect to a server with a particular
QoS.

Credits: An application can be allocated credits at a rate determined by its process
block. A number of credits are nominated whenever it interacts with a server. The
credits are then withdrawn from the applications account and put into the servers
8

account so that the server may do work for each of its clients on the basis of credits it
receives from them. This approach separates the accounting from the process’s
address space but has some disadvantages:
o It is possible for a server to use resources given to it by one client for other
purposes.
o It requires knowledge of whether a particular server is on the same system as the
client.
o It increases the overhead required for client-server interaction.
Connection to a QoS server: With connection to a server with a particular QoS, the
client and server perform negotiation and reservation actions. After the QoS is
supplied, the server knows the resources that will be required to service any requests
that arrive on that specific path. This does not add overhead of client-server
interactions even when clients and servers are on different machines. There are some
disadvantages to this as well:
o The server has to perform some of the QoS management functions such as
policing.
o Poorly constructed servers may state a level of service that cannot be provided.
2.2.4 Policing
Policing is required at a low level and at a high level in the system. At the low level policing is
needed to ensure that an application does not exceed its allocation and start consuming
resources reserved for other applications. A dispatcher can ensure that processor time is
precisely monitored. At the higher level, a method of ensuring that the writer of the application
does not request excessive resources to guarantee that applications perform satisfactorily.
Meager utilization will result and the unknowing user will prefer programs that behave more
conservatively with system resources.
2.3
Real-Time Mach
Real-time Mach uses the Q-RAM (QoS-based Resource Allocation Model) and a combination of
a processor reserve and a QoS server to provide dynamic quality of service support and predict
end-to-end delays in distributed applications.
2.3.1
Processor Reserves
The RT-Mach microkernal supports a processor reserve concept that allows threads to specify
their CPU resource requirements in terms of their timing constraints. The required CPU demand
is thus made available upon admission of the processor reserve by the kernal. In order to
support the processor reserve, the kernal performs the following tasks:






Admission control (CPU usage per some time interval)
Scheduling application threads to satisfy timing constraints
Allowing multiple threads to be bound by the same reserve
Binds applications without reserves to a default reserve which is scheduled only where
there are no other threads bound reserves ready to run
Ensures that only the reserve specification is guaranteed and beyond the stated usage
level, suspends or executes the demanding application threads at lower priority
Monitors the execution time of threads to enforce reserves while providing a basis for
measuring amount of time spent by threads, overhead and CPU idleness
2.3.2 Dynamic QoS Server
The objective of the dynamic QoS server is to provide interaction between the application and the
system layer whereby the application can specify its requirements to the system layer while the
system layer provides to the application accurate and dynamic feedback on the state of the
applications resources both individually and with respect to other applications.
9
The architecture of the QoS Server is shown in Figure 3. The QoS Server interacts with the
processor reservation in the Real-Time Mach and the QoS interfaces both of the clients.
The QoS server is based on the following concepts:

QoS attributes are used by application threads to specify their acceptable quality levels.
The kernal specifies a fixed computation time and a fixed period. The attributes include
minimum, maximum and most-desired levels of the computation time as well as
minimum, maximum and most-desired levels of the computation period. Thus, if an
application chooses a range of acceptable computation times or periods, the server is
free to pick a valid time/period within this range. The server attempts to give each
application the maximum quality value in this range, but it will not go below the
minimum required value when an application is admitted.

Quality adjustment policies are used by the server if the quality guarantee given to an
application needs to be upgraded or downgraded. The policies describe how the
application wants to be handled in case resources need to be altered. The policies
include a quality adjustment priority that determines the quality and which application
the server will upgrade or downgrade.

Admission control adjustment policies admits as many new application requests as
possible without violating the needs of the currently registered applications.

Overrun control policies attempt to satisfy the requirements of registered applications
whose current CPU demands exceed their actual allocation. The QoS server,
therefore, looks to those applications not using their current resource allocation.
Client
QoS
Interface
Client
QoS
Interface
QoS Server
Display
Admission
Control
Dynamic
Quality Control
Client Quality
Attribute Database
Processor Reservation
Real- Time Mach
Figure 3. QoS Server Architecture
2.3.3 Q-RAM (QoS-based Resource Allocation Model)
The goal of Q-RAM development is to fulfill simultaneous requirements of multiple applications
along multiple QoS dimensions (e.g. timeliness, data quality, reliable packet delivery) while
allowing applications access to multiple resources (e.g CPU, disk bandwidth, memory)
simultaneously.
10
Q-RAM was designed for systems where each application, each with its own set of resource
requirements along multiple QoS dimensions is competing for identical resources. Q-RAM uses a
dynamic and adaptive framework where each application requires a certain minimum resource
allocation to perform adequately. When larger resources are allocated, an application’s
performance improves. The improvement is measured via a utility function. With Q-RAM
specifications, a resource allocation decision will be made for each application such that an
overall system level objective (utility) is maximized.
The model consists of the following characteristics, definitions and assumptions that apply to the
model:
Characteristics:
 The system consists of n applications (T 1, T2,…Tn) where n > 1 and m resources (R1,
R2….Rm) where m > 1. Each Resource Rj has a finite capacity and can be shared.
CPU and network bandwidth for example would be time-shared resources while
memory would be spatially shared resources.
 The portion of resource Rj allocated to application Ti is denoted as Ri,j.
n

The constraint holds:
R
 Rj .
i, j
i 1
Definitions:
 Application Utility (Ui) of an application Ti is defined to be the value that is accrued by the
system when Ti is allocated Ri = (Ri,1, Ri,j…., Ri,m). Thus Ui = Ui(Ri). Ui is referred to as
the utility function of Ti. This function defines a boundary along which the application
can operate based on the resources allocated to it.
 Each application Ti has a relative importance specified by a weight wi where 1 < i < n.
The total system utility U (R1, …Rn) is defined to be the sum of the weighted application
n
utilities. U(R1,…,Rn) =
 w U (R )
i
i 1



i
i
Each application Ti needs to satisfy requirements along d QoS dimensions (Q 1, Q2, ,,,,
Qd), where d > 1.
The dimensional resource utility Ui,k = Ui,k (Ri) of an application Ti is defined to be the
value that is accrued by the system when Ti is allocated Ri for use on QoS dimension
Qk, 1 < k < d.
An application has minimal resource requirements on QoS dimension Qk defined by:
min k
min k
min k
k
Rimin k  ( Rimin
 0,0  j  m.
,1 , Ri , 2 ,...Ri ,m ) where Ri , j

An application Ti is feasible if it is allocated a minimum set of resources for every QoS
dimension. The minimum requirements are defined by:
min
min
Rimin  ( Rimin
,1 , Ri , 2 ,..., Ri , m )
d
min
min
where Ri , j   Ri , j k ,1  j  m.
k 1
Assumptions:
 Applications are independent of one another
 Available system resources are sufficient to meet the minimal resource requirements of
each application on all QoS dimensions.
 Utility functions are non-decreasing and in some cases function concavity and two
continuous derivatives will be assumed as well.
The Q-RAM model takes the characteristics, definitions and assumptions and makes resource
allocations to each application such that the total system utility is maximized with the constraint
that every application is feasible with respect to each QoS dimension.
11
3.0 Conclusions and Summary
All three systems Eclipse, Nemesis and RT Mach, use different techniques when implementing
quality of service. However, there are important distinctions and similarities in the methodologies
used to implement quality of service. One important distinction is the manner in which quality of
service was added to the systems. Eclipse appears to add the mechanisms to support QoS in
the existing operating system while Nemesis developed a separate module (QoS manager) and
provided links to integrate the module into the system. The disadvantage of the Eclipse method
of implementation is that in adding the mechanisms within the existing operating system, there is
the possibility of having to alter the quality of service mechanisms in order to fit them into the
system, thereby drifting from the exact quality of service requirements or objectives. Once
implemented in this manner, there is also risk of inaccurately measuring the performance. In
addition, the mechanisms that are added are at the lower levels of the operating system and are
at risk of propagating effects through larger portions of the system. RT Mach’s approach is more
similar to Nemesis in that it implemented the majority of its changes in the QoS server, a separate
module, and integrated it to the RT Mach operating system with links limited to the processor
reserves area of the operating system.
Using a quality of service server was a main feature of the Real-Time Mach, but was also used in
implementation of accounting in Nemesis. Thus, a QoS server can be used in implementing
quality of service and it is up to the architect of the system to evaluate the benefits of its use and
determine in what capacity it is used.
All three systems use a mathematical model in determining resource allocation to the
applications. Eclipse’s scheduling policy uses a cumulative service guarantee, fairness and delay
quality of service parameters and compares the virtual service time to real service time in order to
determine resource allocation. Real-Time Mach, on the other hand, uses the Q-RAM model
where it inputs its quality of service parameters to generate utility functions that are then
optimized to achieve a certain level of performance. Nemesis utilizes the RTRA to assign the
available resources among applications using QoS parameters supplied by the QoS manager. In
the case of the CPU, a dispatcher is used.
4.0 Other Implementations of Quality of Service
There are several other experimental operating systems that have attempted to use new
techniques in addition to methods similar to those used in Eclipse, Nemesis, or Real-Time Mach
in order to guarantee quality of service:






Sumo (Lancaster University)
Synthesis (Columbia University)
Synthetix (Oregon Graduate Institute)
Vino (Harvard University)
Tornado (University of Toronto)
Scout (University of Arizona)
12
5.0 References
P. Barham, “A Fresh Approach to File System Quality of Service”. Proceedings of IEEE. June,
1999
J. Blanquer, J. Bruno, E. Gabber, M. Mcshea, B. Özden, and A. Silberschatz, "Resource
Management for QoS Eclipse/BSD”. Proceedings of the FreeBSD 1999 Conference,
Berkeley, California, October 1999.
J. Bruno, J. Brustoloni, E. Gabber, B. Özden, and A. Silberschatz, "Retrofitting Quality of Service
into a Time-Sharing Operating System”, Proceedings of the USENIX 1999 Annual Technical
Conference, Monterey, California, June 1999.
J. Bruno, J. Brustoloni, E. Gabber, M. McShea, B. Özden, and A. Silberschatz, "Disk Scheduling
with Quality of Service Guarantees". ICMCS99, June 1999.
J. Bruno, E. Gabber, B. Özden, and A. Silberschatz, "The Eclipse Operating System: Providing
Quality of Service via Reservation Domains”. Proceedings of the USENIX 1998 Annual
Technical Conference, New Orleans, Louisiana", June 1998.
J. Bruno, E. Gabber, B. Özden, and A. Silberschatz, "Move-To-Rear List Scheduling: a New
Scheduling Algorithm for Providing QoS Guarantees”. Proceedings of ACM Multimedia
Seattle, Washington", November 1997.
E. Hyden. “Operating System Support for Quality of Service”. Dissertation for degree of Doctor
Of Philosophy. February, 1994, Chapters 3 and 4.
R. Pike, D. Presotto, S. Dorward, B. Flandrena, K. Thompson, H. Trickey, P. Winterbottom.
“Plan 9 from Bell Labs”. Bell Laboratories, Murray Hill: New Jersey . Computing Systems,
Vol 8 #3, Summer 1995, pp. 221-254.
R. Rajkumar, C. Lee, J. Lehoczky and D. Siewiorek, "Practical Solutions for QoS-based
Resources Allocation Problems" In Proceedings of the IEEE Real-Time Systems
Symposium December,1998.
R. Rajkumar, C. Lee, J. Lehoczky and D. Siewiorek. "A Resource Allocation Model for QoS
Management" In Proceedings of the IEEE Real-Time Systems Symposium December, 1997.
R. Rajkumar, C. Lee, and C. Mercer "Experiences with Processor Reservation and
Dynamic QOS in Real-Time Mach" In Proceedings of Multimedia Japan March 1996
www.cs.arizona.edu/people/bridges/os/qos.html
www.cl.cam.ac.uk/Research/SRG/netos/
www.freebsd.org
13
14
Download