|
|
Feb 15, 2008
- New technical manager. See the peole page.
Nov 14, 2007
- New S.Ha.R.K. version 1.5.4 available here, now runs on virtual machines like QEmu and VirtualBox.
Jan 17, 2007
- New S.Ha.R.K. version 1.5.3 available here, now fully GPL compatible.
Aug 21, 2006
- CiberMouse competition library for S.Ha.R.K. available here (RTSS 2006).
Jul 18, 2006
- New Tracer manual draft released; documentation section restyled; experimental txt and html manual versions. See here.
Jul 17, 2006
|
|
|
|
|
|
SHaRK: Soft Hard Real-Time Kernel
|
S.Ha.R.K. is a dynamic configurable kernel architecture
designed for supporting hard, soft, and non real-time applications
with interchangeable scheduling algorithms.
The kernel is fully modular
in terms of scheduling policies, aperiodic servers, and concurrency control
protocols, which typically are not modular in traditional operating systems.
Modularity is achieved by partitioning the system activities between a
generic kernel and a set of modules, which can be registered at
initialization time to configure the kernel according to specific
application requirements.
The major benefit of the proposed kernel architecture is that
an application can be developed independently from a particular
system configuration, so that new modules can be added or replaced
in the same application, to evaluate the effects of specific
scheduling policies in terms of predictability, overhead, and
performance.
The kernel supports device scheduling, thus allowing to extend scheduling
algorithms used for the CPU to other hardware resources.
A modular file system is available, and it allows the user to specify own
disk scheduling policies.
Finally, the system is compliant with almost all the POSIX 1003.13 PSE52
specifications to simplify porting of application code developed for other
POSIX compliant kernels.
|
Why S.Ha.R.K.?
Nowaday, real-time computing is required in many application domains,
ranging from embedded process control to multimedia systems. Each application
has peculiar characteristics and for this reason, a lot of different
scheduling algorithms and resource allocation protocols have been proposed to
conform to such different application demands, from the classical fixed or
dynamic priority allocation schemes to adaptive or feedback-based systems.
Most of the new approaches have been only theoretically analyzed, and
sometimes evaluated using a scheduling simulator. In this case, the algorithm
performance is not evaluated on real examples, but only on a synthetic
workload. This choice is often related to the fact that it is very difficult
to modify an existing operating system (OS) to implement new scheduling
algorithms and it is also unrealistic to develop a new kernel whenever a
new scheduling algorithm is proposed in the literature.
Another problem is that most of the new approaches in real-time scheduling
are limited to the CPU resource, and a scarce attention is dedicated to all
the other devices in the system. This is mainly due to the fact that the
classical OS structure does not permit a precise device scheduling (due to
problems involving resource contention, priority inversion, interrupt
accounting, long non-preemptive sections, and so on).
The objective of S.Ha.R.K. is to build a research kernel expressly designed
to help the implementation and testing of new scheduling algorithms,
either for the CPU or for other resources.
This main goal also require that also these objectives have to be met:
-
achieve independence between the kernel mechanisms and the scheduling policies for tasks and resource management;
-
configure the system at run-time by specifying the algorithms to be used for task scheduling and resource access;
-
achieve independence between applications and scheduling algorithms.
How does S.Ha.R.K. looks like?
S.Ha.R.K. is the evolution of the
Hartik Kernel
and it is based on the
OSLib Project.
S.Ha.R.K. looks like a set of libraries that are added to the OSLib's
libraries. Each library cover a specific part of the implementation of the
system: there are libraries that contains kernel-related functions, libraries
for the Modules and libraries for the
Device Drivers.
|