Welcome, Guest. Please login or register.

Author Topic: A-EON Interview about Amiga's future - Distrita  (Read 11118 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline mongo

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 964
    • Show only replies by mongo
Re: A-EON Interview about Amiga's future - Distrita
« Reply #44 on: June 07, 2015, 09:00:50 PM »
Quote from: Iggy;790712

Amiga OS has a lousy multi-tasking system based on a cooperative round robin form of task switching.
Other OS' I've used (for the 68K) had real priority based preemptive multitasking.


The Amiga has always had real priority based preemptive multitasking.
 

Offline Iggy

  • Hero Member
  • *****
  • Join Date: Aug 2009
  • Posts: 5348
    • Show only replies by Iggy
Re: A-EON Interview about Amiga's future - Distrita
« Reply #45 on: June 07, 2015, 10:20:12 PM »
Quote from: mongo;790759
The Amiga has always had real priority based preemptive multitasking.

No, it doesn't.
And we've discussed this before on this site.
It has just the type of task switching scheme I mentioned.
Doubt me?
Find a module in Amiga OS that sets the priority level.
"Not making any hard and fast rules means that the moderators can use their good judgment in moderation, and we think the results speak for themselves." - Amiga.org, terms of service

"You, got to stem the evil tide, and keep it on the the inside" - Rogers Waters

"God was never on your side" - Lemmy

Amiga! "Our appeal has become more selective"
 

Offline nicholas

Re: A-EON Interview about Amiga's future - Distrita
« Reply #46 on: June 07, 2015, 10:42:57 PM »
Quote from: Iggy;790761
No, it doesn't.
And we've discussed this before on this site.

The default scheduler is round-robin but Exec does preemptively multitask Jim.

Quote
It has just the type of task switching scheme I mentioned.
Doubt me?
Find a module in Amiga OS that sets the priority level.

http://aminet.net/package/until/misc/Executive

Et voila! ;)
“Een rezhim-i eshghalgar-i Quds bayad az sahneh-i ruzgar mahv shaved.” - Imam Ayatollah Sayyed  Ruhollah Khomeini
 

Offline Hans_

Re: A-EON Interview about Amiga's future - Distrita
« Reply #47 on: June 07, 2015, 10:45:45 PM »
Quote from: Iggy;790761
No, it doesn't.
And we've discussed this before on this site.
It has just the type of task switching scheme I mentioned.
Doubt me?

Yes, I do doubt you. I have no idea where you get the idea from that AmigaOS has a "cooperative" multitasking system rather than preemptive. The original MacOS was a cooperative multitasking system where you had to sprinkle your code with calls to yield the CPU. AmigaOS has no such function, because the OS will preemptively switch between tasks on a prioritized round-robin basis. I've never heard anyone claim that it's not preemptive... until now.

Sure, it has no "fairness" algorithm** (unless you have Executive installed) and setting the task priority to max almost kills multitasking. However, try setting a CPU intensive task to REALTIME_PRIORITY_CLASS, THREAD_PRIORITY_TIME_CRITICAL in Windows and see what happens. It's not pretty... Neither of these aspects demote AmigaOS from preemptive to cooperative, though.

Quote from: Iggy;790761
Find a module in Amiga OS that sets the priority level.

exec.library->SetTaskPri() sets a task's priority. Or are you asking something else?

Hans


** NOTE: AmigaOS 4.x has a "pluggable" scheduler, so it could be updated with different scheduling algorithms in future.
http://hdrlab.org.nz/ - Amiga OS 4 projects, programming articles and more. Home of the RadeonHD driver for Amiga OS 4.x project.
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show only replies by matthey
Re: A-EON Interview about Amiga's future - Distrita
« Reply #48 on: June 07, 2015, 10:57:01 PM »
Quote from: mongo;790759
The Amiga has always had real priority based preemptive multitasking.


True. Any task can take over the system and turn off multitasking so it is not secure but it is preemptive multitasking by definition. Responsiveness was traded for security.

I feel the AmigaOS has been slighted (not by mongo). The AmigaOS is one of the best and most responsive OSs at multitasking (near real time OS made the Toaster possible). Code reuse and modularity are also top notch even today. The AmigaOS trades security for speed and ease of use. There was a lot of forward thinking in the AmigaOS design and choice of 68k CPU which allows most software from 1985 to still work today. Both the AmigaOS and 68k CPU have survived the test of time quite well, IMO, despite not having been developed anywhere near their potentials. The Amiga weak point (originally it's strength) was the custom chips which again were under developed. Compare the AmigaOS to the DOS+Windows, MacOS, RiscOS and the Amiga has less growing pains and more speed. It's the lack of a more modern 68k AmigaOS, lack of more modern 68k hardware (which I believe can be kept very compatible) and as a result lack of more modern software and software support that makes the grass greener on the other side of the fence.
 

Offline Iggy

  • Hero Member
  • *****
  • Join Date: Aug 2009
  • Posts: 5348
    • Show only replies by Iggy
Re: A-EON Interview about Amiga's future - Distrita
« Reply #49 on: June 07, 2015, 11:54:24 PM »
Quote from: matthey;790765
True. Any task can take over the system and turn off multitasking so it is not secure but it is preemptive multitasking by definition. Responsiveness was traded for security.

I feel the AmigaOS has been slighted (not by mongo). The AmigaOS is one of the best and most responsive OSs at multitasking (near real time OS made the Toaster possible). Code reuse and modularity are also top notch even today. The AmigaOS trades security for speed and ease of use. There was a lot of forward thinking in the AmigaOS design and choice of 68k CPU which allows most software from 1985 to still work today. Both the AmigaOS and 68k CPU have survived the test of time quite well, IMO, despite not having been developed anywhere near their potentials. The Amiga weak point (originally it's strength) was the custom chips which again were under developed. Compare the AmigaOS to the DOS+Windows, MacOS, RiscOS and the Amiga has less growing pains and more speed. It's the lack of a more modern 68k AmigaOS, lack of more modern 68k hardware (which I believe can be kept very compatible) and as a result lack of more modern software and software support that makes the grass greener on the other side of the fence.

By those words (which I have bold faced) you make my point.
The OS is cooperative, preemptive multitasking would always allow another process to eventually gain control.
Not that a round robin scheduler always precludes preemptive operation.
But a decent OS would always reserve some time slices for kernel operations that would allow enforcement of task switching.
In short, see the second sentence in my post.
 
Obviously there IS prioritization.
Thanks for pointing to that module.
I missed that.

But in the case of the Amiga (and OSX and Windows for that matter), the definition of a preemptive Multitasking OS has been seriously abused.
"Not making any hard and fast rules means that the moderators can use their good judgment in moderation, and we think the results speak for themselves." - Amiga.org, terms of service

"You, got to stem the evil tide, and keep it on the the inside" - Rogers Waters

"God was never on your side" - Lemmy

Amiga! "Our appeal has become more selective"
 

Offline asymetrix

  • Full Member
  • ***
  • Join Date: May 2007
  • Posts: 118
    • Show only replies by asymetrix
Re: A-EON Interview about Amiga's future - Distrita
« Reply #50 on: June 08, 2015, 12:05:49 AM »
@thread nice read

However more must be done on Linux, we dont need 20+ distros.

The Linux users want a fast efficient Linux system, OS in 10 MB max.

Linux users want ASSEMBLY development system.

Even on Windows Games are still problematic to write.

Amiga had it good back in the day, but suffered - too many programming languages at poor level, but most hit the wall at AGA.

These days Classic users want more 68k power than a 68060 ~ 100+ MHZ but an AGA+ chipset or at least code compatible simulated chipset using OpenGL for 24 bit graphics.

At end of the day Amigans want to bang hardware/GFX in assembler - real hardware or simulated. I dont know if AMD have released any register info for their chips to directly access.

Only when these systems are available and under £300 systems we can rejoice.

I personally think new Amiga systems should use sub $100 processors as a rule + media processor + FPGA.

Linux users can use assembler

Amiga classic users - Stripped Linux + 68k amige emulator can simulate a standard AGA+ chipset in FPGA and code GFX in assembler + 68k.

Amiga needs a low level compatible assembly + GFX across Amiga devices

But we also need uptodate game developer systems like UNITY addon for Amiga code. so we can create code compatible games and programs forever.

An example of a game developer community I wish was for Amiga is like the following :

Scirra development system to create games fast on windows and export to mobile devices.

https://www.scirra.com/store
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show only replies by matthey
Re: A-EON Interview about Amiga's future - Distrita
« Reply #51 on: June 08, 2015, 12:21:40 AM »
Quote from: Iggy;790767
By those words (which I have bold faced) you make my point.
The OS is cooperative, preemptive multitasking would always allow another process to eventually gain control.
Not that a round robin scheduler always precludes preemptive operation.
But a decent OS would always reserve some time slices for kernel operations that would allow enforcement of task switching.
In short, see the second sentence in my post.


No. Preemptive multitasking uses a timer that lets tasks run until their time is up and then the task is preempted (interrupted) to give another a turn. This is how the Amiga works. Preemptive multitasking can be turned off with other operating systems through Admin privileges or hacking which makes their multitasking no less preemptive (while it's working). The task doesn't have to worry about task scheduling or what task is running with preemptive multitasking. Cooperative multitasking requires the task to call an OS function to allow another task to run. The Amiga exec.library does have a Switch() function (-$36) but it is private (even though it may be useful in some cases). The Amiga is considered to have preemptive multitasking though.
 

Offline Iggy

  • Hero Member
  • *****
  • Join Date: Aug 2009
  • Posts: 5348
    • Show only replies by Iggy
Re: A-EON Interview about Amiga's future - Distrita
« Reply #52 on: June 08, 2015, 12:38:28 AM »
Quote from: matthey;790769
No. Preemptive multitasking uses a timer that lets tasks run until their time is up and then the task is preempted (interrupted) to give another a turn. This is how the Amiga works. Preemptive multitasking can be turned off with other operating systems through Admin privileges or hacking which makes their multitasking no less preemptive (while it's working). The task doesn't have to worry about task scheduling or what task is running with preemptive multitasking. Cooperative multitasking requires the task to call an OS function to allow another task to run. The Amiga exec.library does have a Switch() function (-$36) but it is private (even though it may be useful in some cases). The Amiga is considered to have preemptive multitasking though.

Considered, but not actually is (since preemption can be defeated).
But this is by the definitions I use (obviously), not those you all use (or in my opinion, abuse).
And no, preemptive systems don't always use a simple timer based task switch.
Other systems (that don't use a round robin scheduler) assign a specific percentage of the available time slices to each process.
Since, in the case of Amiga OS, a task CAN seize all available resources, cooperation between tasks is necessary to assure that other processes will receive their share of system resources.

Edit - Looking over this, my bias is (even to me) painfully obvious.
Coming from OS' that always give ultimate priority to the kernel (and thus will never allow a single process to assume complete control of a system), Amiga OS has been (somewhat) disappointing.
So...by common definition, using the term preemptive is acceptable (even if this can be defeated) AND prioritization has previously been documented.

So... I'll cede this one to you guys.
With the qualifier that it is a piss poor implementation of preemptive multi-tasking.
« Last Edit: June 08, 2015, 12:46:23 AM by Iggy »
"Not making any hard and fast rules means that the moderators can use their good judgment in moderation, and we think the results speak for themselves." - Amiga.org, terms of service

"You, got to stem the evil tide, and keep it on the the inside" - Rogers Waters

"God was never on your side" - Lemmy

Amiga! "Our appeal has become more selective"
 

Offline Thorham

  • Hero Member
  • *****
  • Join Date: Oct 2009
  • Posts: 1149
    • Show only replies by Thorham
Re: A-EON Interview about Amiga's future - Distrita
« Reply #53 on: June 08, 2015, 01:09:43 AM »
Quote from: Iggy;790770
So... I'll cede this one to you guys.
I'm still gonna add something :D

Quote from: Iggy;790770
Since, in the case of Amiga OS, a task CAN seize all available resources, cooperation between tasks is necessary to assure that other processes will receive their share of system resources.
How? Only if a Forbid() Permit() pair is ever truly needed for certain things is there some kind of cooperativeness in the OS.

Which leads me to a question: Why is there Forbid() and Permit() in the first place? Apart from shutting the OS down I see no reason for those functions to be there at all.

Quote from: Iggy;790770
With the qualifier that it is a piss poor implementation of preemptive multi-tasking.
Indeed. Not useless, but crappy non the less. Strange seeing how easy it is to write something better. One of these days I'm going to sit down and just do it... maybe... perhaps...
 

Offline ElPolloDiabl

  • Hero Member
  • *****
  • Join Date: May 2009
  • Posts: 1702
    • Show only replies by ElPolloDiabl
Re: A-EON Interview about Amiga's future - Distrita
« Reply #54 on: June 08, 2015, 01:34:44 AM »
If you kept all the major components including being able to rename any file. I wouldn't care if it was re-done.
You should do a poll now on which parts of the OS can be modified. It would be nice if the users were able to have a vote.
Go Go Gadget Signature!
 

Offline Thorham

  • Hero Member
  • *****
  • Join Date: Oct 2009
  • Posts: 1149
    • Show only replies by Thorham
Re: A-EON Interview about Amiga's future - Distrita
« Reply #55 on: June 08, 2015, 01:48:04 AM »
Quote from: ElPolloDiabl;790774
If you kept all the major components including being able to rename any file. I wouldn't care if it was re-done.
You should do a poll now on which parts of the OS can be modified. It would be nice if the users were able to have a vote.
With 'writing something better' I mean a completely new OS that's entirely incompatible with AOS. Not a single part would be kept. It would be more of a proof of concept than anything else, because there would be no software to run on it, of course.

I would also do it in 68k assembly language. Completely. Some people will probably tell you that that's a very bad idea :D
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show only replies by matthey
Re: A-EON Interview about Amiga's future - Distrita
« Reply #56 on: June 08, 2015, 02:15:43 AM »
Quote from: Iggy;790770
Edit - Looking over this, my bias is (even to me) painfully obvious.
Coming from OS' that always give ultimate priority to the kernel (and thus will never allow a single process to assume complete control of a system), Amiga OS has been (somewhat) disappointing.
So...by common definition, using the term preemptive is acceptable (even if this can be defeated) AND prioritization has previously been documented.

So... I'll cede this one to you guys.
With the qualifier that it is a piss poor implementation of preemptive multi-tasking.

The AmigaOS requires cooperation between good behaving preemptively multitasking tasks. Again, this was a tradeoff of security (and to a lesser extent stability) for speed and ease of use. It was a better trade-off back in the day when CPU power was more limited but I would argue that the advantages are under-appreciated today. Would there be Amiga users today if the Amiga ran at the speed modern secure operating systems would run on a <100MHz 68k CPU? Would the Amiga be as fun and easy to use?

Quote from: Thorham;790773
Which leads me to a question: Why is there Forbid() and Permit() in the first place? Apart from shutting the OS down I see no reason for those functions to be there at all.

Resources need to be shared with a multitasking AmigaOS and the 68k and locking CPU instructions (CAS, CAS2, TAS) didn't work correctly because of the way the memory bus was accessed with the custom chips (cache coherency issues between the CPU and custom chips). C= could have solved the problem if they made (or licensed) their own customized CPU to go with the custom chips but that was exceedingly expensive back then. This is no longer a problem today in FPGA (SMP should be possible too).

Forbid()/Permit() are not as big of worry as exec/Supervisor() and dos/Format(). The Amiga will never be as secure as BSD but there are a few things we could do to improve security (or at least improve stability and make it quick and easy to recover and restore from problems).
 

Offline Iggy

  • Hero Member
  • *****
  • Join Date: Aug 2009
  • Posts: 5348
    • Show only replies by Iggy
Re: A-EON Interview about Amiga's future - Distrita
« Reply #57 on: June 08, 2015, 02:44:09 AM »
I actually like Thorham's idea, even if it is impractical.
You wouldn't have any software to run.
But, given a fresh slate, you could undoubtedly come up with a better OS.

I'd start with a micro kernel (again, my bias).
All the cores functions could be protected in this and additional functions could be dynamically loaded in layers outside the kernel.

Coding directly with an assembler makes sense.
Yes, its more painful, but it would also result in more compact, faster code.

Of course, the next thought that occurs to me is that while I like the idea of keeping the 68K cpu (or better yet an '030, '040, or '060), the custom chips in the Amiga date it.
Better, 16 bit sound would be nice.
Certainly better video with 2D and 3D acceleration wouldn't hurt.
A better bus could help speed up access to these elements.
And...well there's a lot more.

But, even retaining the Amiga's core architecture, yeh a better OS could be done.
"Not making any hard and fast rules means that the moderators can use their good judgment in moderation, and we think the results speak for themselves." - Amiga.org, terms of service

"You, got to stem the evil tide, and keep it on the the inside" - Rogers Waters

"God was never on your side" - Lemmy

Amiga! "Our appeal has become more selective"
 

Offline Iggy

  • Hero Member
  • *****
  • Join Date: Aug 2009
  • Posts: 5348
    • Show only replies by Iggy
Re: A-EON Interview about Amiga's future - Distrita
« Reply #58 on: June 08, 2015, 02:54:56 AM »
Quote from: Thorham;790773
...One of these days I'm going to sit down and just do it... maybe... perhaps...

Should you ever seriously decide to do this, I'm in.

Again (and I DO know this is repetitive), we start with the kernel deciding what absolutely has to reside at the core, and work out from there.
"Not making any hard and fast rules means that the moderators can use their good judgment in moderation, and we think the results speak for themselves." - Amiga.org, terms of service

"You, got to stem the evil tide, and keep it on the the inside" - Rogers Waters

"God was never on your side" - Lemmy

Amiga! "Our appeal has become more selective"
 

Offline Thorham

  • Hero Member
  • *****
  • Join Date: Oct 2009
  • Posts: 1149
    • Show only replies by Thorham
Re: A-EON Interview about Amiga's future - Distrita
« Reply #59 from previous page: June 08, 2015, 04:15:54 AM »
Quote from: matthey;790776
Resources need to be shared with a multitasking AmigaOS and the 68k and locking CPU instructions (CAS, CAS2, TAS) didn't work correctly because of the way the memory bus was accessed with the custom chips (cache coherency issues between the CPU and custom chips).
You don't need those, because you can use bset and bclr. These instructions test the bit they set or clear before writing to the bit. With this you have test then set and test then clear. Perfectly fine for such mechanisms. Aren't CAS. CAS2 and TAS for multiple CPUs anyway?

Quote from: matthey;790776
The Amiga will never be as secure as BSD
Unless you run BSD on it :D

Quote from: Iggy;790777
Coding directly with an assembler makes sense.
Yes, its more painful, but it would also result in more compact, faster code.
It's more fun! 68k assembly language is a hobby of mine. C is nice, but I use it for utilities like Lua5.3 with some added libraries, or some other miscellaneous things.
Quote from: Iggy;790778
Should you ever seriously decide to do this, I'm in.
Don't wait for it.