www.haage-partner.comHAAGE & PARTNER Computer GmbH   Online Shop | Sitemap
Deutsche Seiten
 
     
 
www.haage-partner.com   Amiga NewsProducts OverviewSupportAll about us
 


In Febrary 2006 Alinea Computer took over the distribution of our
Amiga software products AmigaWriter, ArtEffect and StormC.
Please contact them for sales and support.

These webpages are remaining online to provide you with some information and support.
But please be aware that we can not answer technical or
support questions related to Amiga products any more.
Thanks for your understanding.

WarpUP Release 3 - The Challenge

   
 

Dynamic Multitasking

For the version 14 of the WarpOS the multitasking-kernel (the scheduler) was completely written new. WarpOS V14 now supports dynamic multitasking, which is well-known from UNIX workstations and also from the AMIGA-software "executive". With this feature now also the AMIGA-User comes to first-class multitasking!

The most important features of the new WarpOS scheduler are:

  • There are no more static priorities supported, instead the distribution of the CPU time is made dynamically. Every task, may it be ever so unimportant, gets his time to run. This means, there is no more the situation where a task with a high priority blocks all the other tasks from being processed!
  • Tasks, which have a low activity, will get for a short amount of time a high priority and more CPU time, if they come to action again. With this feature, interactions of the user are processed more quickly, even if the PowerPC is heavy stressed. The starting of a new task with a stressed PPC processor consumes only minimal time. Now also the times are over, where the user had to wait a long time for starting programs when the system was stressed!
  • The importance of a task now can be changed from outside (like the priorities). With this feature you can set the CPU time a task should get. When running multitasking jobs you can regulate the speed of a task! This is easy to demonstrate with the STORM-MESA-demos

  • The scheduler now makes extensive statistics over the various tasks and over the whole system. These values can be printed with the "stat" tool. For each task the CPU usage, the activity and some other parameters are printed out.

  • Some new tools were written, which make the handling of the WarpOS tasks easier, e.g. a tool called "killppc", with which you can kill crashed WarpOS programs.


The hardware-driver-system

The new WarpUP has got a new structure. Now WarpUP supports a hardware driver system with driver-libraries ("warpHW.library"). For each PowerPC hardware there is needed a special driver to use WarpOS with this hardware. Every driver is different and can be used only with the associated hardware. In the actual WarpUP package are driver-libraries for the following hardware:

  • CyberStormPPC
  • BlizzardPPC
  • Phase5 Developer Board


This driver system allows every manufacturer of PowerPC hardware to write his own driver, through which WarpOS automatically works with the new hardware. In the WarpUP package there are all instructions and a sample project included, that are needed to write such a driver.

This hardware driver system leads to an even greater independence of the hardware and of course we hope, that the above list will grow soon!

Support of the BlizzardPPC hardware

WarpUP now also supports the BlizzardPPC hardware. But the usage of WarpUP for BlizzardPPC hardware users is a little different than it was with the CyberStormPPC.

A great difference between the BlizzardPPC and older PPC hardware is that the "ppc.library" from Phase5 is in the ROM of the hardware and is opened immediately at boot time. The problem is, that the WarpOS can't run parallel to the "ppc.library", therefore you had to reboot, if the "ppc.library" was active and WarpOS was intended to be used. This can't be done anymore, because there is no way to stop the "ppc.library" from being activated.

The only possibility to run the WarpOS is to try to remove the "ppc.library" and all the associated resources from the system. But this isn't done automatically. The first requirement for the activation of the "Terminator" feature is to set the environment variable

'powerpc/Terminator',

which can be done with the added installer script. If now WarpOS is started there appears a requester, which asks the user, if the "ppc.library" and all it's associated resources should be removed from the system. The user can accept this or cancel the boot sequence. In this case the "ppc.library" still remains active.

The "Terminator" feature can of course also be used with the existing PPC hardware, which has the advantage that you haven't to reboot your system, when changing from ELF-software to WarpUP-software.

If the requester are annoying you, you can remove them. To do that, you have to set the environment variable "powerpc/HideWarning" to 1. It has to be said, that if now the "Terminator" feature is enabled, the "ppc.library" is removed without warning and under some circumstances you don't even notice that. So be warned to use this feature.

If there are still problems with WarpOS and newer PPC hardware (especially with newer Flash-ROM versions!) please contact us, so that we can work out a solution.

Error-correction and detail improvements

The release 2 caused problems on some systems, which are due to the extreme little stack of the RAMLIB. This problem is fixed now, therefore WarpOS now also runs on systems, which had this problem.

It has to be mentioned, that the "powerpc.library" V7 has also profited from these changes and should run now even better. The V7.2 is included in the actual WarpUP package.

Besides an error was corrected, which was responsible for the problems which appeared when WarpOS functions tried to allocate huge memory blocks. This was obvious in the *STORM-MESA* demos if you enlarged the window.

When creating PPC-mirror-tasks, in the case that the 68k-task is a CLI-background-task, the name of the started program is taken for the name of the PPC-task, instead of the process name. This leads to the situation, that the WarpOS-tasks are easier locatable in the task-statistics, because the name of the started program is contained. This only works, if the programs are started with "run".

Developer-specific

The documentation of the WarpUP-API is now available in the Autodoc-format and also in the AmigaGuide format.

The prototype-file was extremely restructured for a better support of alternative compilers. The StormC specific parts was excluded into a separate file.

Now there is also an FD-file for the "powerpc.library" available.

The new tool "throw" allows it to interrupt WarpOS-tasks from outside, if they are trapped in an endless loop. Therefore an instruction-breakpoint-exception is called when the task is activated by the scheduler. With this the developer can find the reason for the problem, because in the crash-requester there are many information regarding the crash.

With the new function called "GetHALInfo" you can get information over the WarpUP-HAL. At this time you can find out, how many emulated alignment-exceptions are caused, since the starting of WarpOS. These exceptions appear, if the PowerPC tries to address floating-point values, which aren't located at an address which can be divided by 4. The WarpUP-HAL (the "warp.library") catches these exceptions and runs an emulation, this happens completely transparent for the WarpOS (this is implemented since the first version). So no application, which supports WarpUP, has to bother about this, because for them these problems simply don't exist. But the occurrence of these exceptions should be minimized to keep performance high.

The new function "FindTaskByID" allows it to find tasks by their ID number. With the new scheduler there were also introduced ID numbers for tasks, which can simplify the usability.

The functions "SetScheduling" and "SetNICEValue" can help to modify the multitasking with the new scheduler. With "SetNICEValue" you can change the so-called NICE value, which defines the importance of a task (something like the old priorities).

Now it makes no difference on which side inter-CPU-messages are set free. In the case, that it is done by the CPU, which hasn't allocated the message, there is made a context-switch, so that the release is made on the right side. With that a better transparency for the programmer can be reached.

An important step in the direction of "resource tracking" was made: now every memory, which has been allocated but has not been set free by a WarpOS-task will be set free automatically when the task ends.

Many thanks to Mario Klier for the translation.