Poster | Thread |
saimo
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 12-Jul-2005 14:47:37
| | [ #21 ] |
|
|
|
Elite Member |
Joined: 11-Mar-2003 Posts: 2450
From: Unknown | | |
|
| @EntilZha
Quote:
Besides, my personal experiences with Executive were rather mixed. It worked fine when running two CPU hungry tasks, but with a single task active, it was actually slower than the original scheduler by some 8 %.
|
Well, I haven't seen the code of either scheduler, but from the outside Executive looks a lot more refined, hence its code has to be a bit more complicated (= CPU hungry).
Quote:
For example, what I really wonder is why nobody ever complained about to old stupid memory system.
|
At least I have been bugging you a couple of times about the new memory system I can't really wait to have it and see all those physical/virtual/etc. distinctions vanish (at least, this is one of the last things I read in some of your (old) posts).
BTW: I seem to remember that some time ago you told the new memory system was (almost) ready (although it won't be part of AOS4): do I remember correctly?
Quote:
As I said, the scheduler will be replaced completely in 4.1, to allow for different things like SMP, "pluggable" schedulers, real-time scheduling, global or local thread scheduling etc.
|
Wonderful
Quote:
This is something that needs lots of consideration and will certainly not be a quick-shot hack to be replaced later. Most of all, it will need deep integration into the system. For example, now public exec.library fields like "ThisTask", "TaskReady", "TaskWaiting" etc will simply vanish. However, a lot of code still accesses these (especially ThisTask). Rushing things would break compatibility.
|
OK, I promise I won't bug you about scheduling, then
saimo _________________ RETREAM - retro dreams for Amiga, Commodore 64 and PC
|
|
Status: Offline |
|
|
AmigaMac
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 12-Jul-2005 14:49:21
| | [ #22 ] |
|
|
|
Super Member |
Joined: 26-Oct-2002 Posts: 1094
From: 3rd Rock from the Sun! | | |
|
| @ EntilZha
Therefore, we're putting a lot work into a new memory system that will make memory allocations several magnitudes more efficient, while at the same time reducing fragmentation (this is not yet in update3, if you're wondering). That is IMHO where the real workload now lies.
I hate to ask, but will protective memory be part of the change? _________________
|
|
Status: Offline |
|
|
wegster
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 12-Jul-2005 14:55:03
| | [ #23 ] |
|
|
|
Elite Member |
Joined: 29-Nov-2004 Posts: 8554
From: RTP, NC USA | | |
|
| All- bear in mind, while mentioned as a 'minor' change, Linux, BSD and others have been working on the 'right' scheduling algorhythms for specific purposes for a WHILE now. Check mailing lists for either for more info, but there is more to it- the initial code changes may be relatively minor, but getting it RIGHT requires a LOT of testing, back to the drawing board, special conditions etc...
Of course, I'd love to see it, but it could turn into something that requires more research and testing that 'just code.' _________________ Are we not done with the same silly arguments and flames yet??!
|
|
Status: Offline |
|
|
BobC.
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 12-Jul-2005 15:32:14
| | [ #24 ] |
|
|
|
Cult Member |
Joined: 9-Mar-2003 Posts: 556
From: Mid Atlantic State USA | | |
|
| @EntilZha
Nice explanation and "update" thanks! _________________
|
|
Status: Offline |
|
|
ssolie
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 12-Jul-2005 15:57:42
| | [ #25 ] |
|
|
|
Elite Member |
Joined: 10-Mar-2003 Posts: 2755
From: Alberta, Canada | | |
|
| @Wegster Quote:
Of course, I'd love to see it, but it could turn into something that requires more research and testing that 'just code.' |
I don't think users should be asking for such features anyway. What users want is a very responsive system. Whether that manifests itself in a new scheduler or a new memory management subsystem is for the OS devs to figure out and implement.
Obviously the Hyperion guys have been looking into the responsiveness problem for a while now and they have come armed with tests and some numbers to back them up. Seems AmigaOS' evolution is in very good hands to me. _________________ ExecSG Team Lead
|
|
Status: Offline |
|
|
Laser
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 12-Jul-2005 17:07:40
| | [ #26 ] |
|
|
|
Regular Member |
Joined: 19-Jul-2003 Posts: 333
From: Norwich, UK | | |
|
| @EntilZha
Thanks for your comprehensive reply.
Quote:
Besides, my personal experiences with Executive were rather mixed. It worked fine when running two CPU hungry tasks, but with a single task active, it was actually slower than the original scheduler by some 8 %. |
Odd. When only one task is running, I'd not expect Executive to interfere much. I've not done any serious tests along these lines, but I have not noticed such a change. Maybe I'll have a look.
Quote:
When you look at the features that are actually implemented in OS4 now, the scheduler is a pretty minor thing. Overall, the scheduler works as is. It only lacks in areas where you run mutiple CPU-hungry processes in parallel, and that's rather the exception than the rule. |
Erm... Maybe we have some misunderstanding here? You say OS4 already has "a" scheduler? I am in no way suggesting that refining the exact behaviour of load-balancing is at all profitable at this stage. I am suggesting that the original Amiga system of fixed priorities and round-robin switching has significant useability issues that a very simplistic adaptive priority scheduler would drastically help with. If you are saying that OS4 has some system like that you are vaguely happy with, then I'm happy!
The primary problem I'm referring to is not running multiple CPU-hungry processes, but trying to run one CPU-light process (shell window, texteditor, etc) when a CPU-hungry process is running and you "forget" to specifically set it to "low priority" to force it to the background. ie: To stop the machine grinding to a crawl when a CPU-hungry program runs.
Quote:
Other parts are much more vital. For example, what I really wonder is why nobody ever complained about to old stupid memory system. |
Oh, don't worry! Lots of people did complain. The fact you may have addressed this and many other aspects of the whole Amiga OS is very gratefully received. As OS4 looks better and better, what were less significant issues get nearer the top of the list. Also, each user has their own perspective about what were significant problems or features to add. For example, some people have suggested they'll not buy OS4 because it doesn't come with a fully up-to-date web browser, as they feel this is the No.1 requirement of a modern OS. Personally, I couldn't care less about the performance of, or even if there is, a web browser.
Quote:
This is something that needs lots of consideration and will certainly not be a quick-shot hack to be replaced later. Most of all, it will need deep integration into the system. |
I had assumed that the new Exec would either have this stuff integrated, or has been written to allow it added later. I had not envisaged it being added as a thrid-party patch. |
|
Status: Offline |
|
|
CodeSmith
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 12-Jul-2005 18:09:40
| | [ #27 ] |
|
|
|
Elite Member |
Joined: 8-Mar-2003 Posts: 3045
From: USA | | |
|
| @EntilZha:
Thank you for the nice technical reply! we get way too few of those, and while I realize that some get bored by these, I find them very interesting and informative. Quote:
Other parts are much more vital. For example, what I really wonder is why nobody ever complained about to old stupid memory system. I mean, they use stupid singly-linked list as the core of the memory system, which is subject to all sort of fragmentation. |
Don't forget about the self-enlarging stacks! the fixed-size stacks are easily the most annoying anachronism in OS4. Are you going to be able to add those in 4.0 or are they planned for 4.1?
Quote:
For example, now public exec.library fields like "ThisTask", "TaskReady", "TaskWaiting" etc will simply vanish. However, a lot of code still accesses these (especially ThisTask). Rushing things would break compatibility. |
I don't know if this is a completely naive idea, but couldn't you do something like NallehPuh and set up a "special" memory area with the MMU that is tagged as "not present", and point location 4 into it? that way an exception would be triggered whenever any execbase members are touched, and the handler can then call the proper exec functions, simulate the read and restart the faulting instruction. I know this would be a lot slower than actually calling the functions, but it would solve the backwards compatibility problem for old software. You may be able to do this for other "problematic" system structs too. You could prevent people from abusing this by popping up a warning like you do for obsolete usage of DOS calls. |
|
Status: Offline |
|
|
salass00
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 12-Jul-2005 19:45:47
| | [ #28 ] |
|
|
|
Elite Member |
Joined: 31-Oct-2003 Posts: 2707
From: Finland | | |
|
| Quote:
and point location 4 into it? that way an exception would be triggered whenever any execbase members are touched |
Address location 4 only contains a pointer to ExecBase. The ExecBase itself is located elsewhere. Anyway I think OS4 already write-protects this location (?). If not, it would be a good idea to do so since owerwriting either of the four bytes 4-7 is a sure way to crash the OS completely...Last edited by salass00 on 12-Jul-2005 at 07:46 PM.
|
|
Status: Offline |
|
|
lovely
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 12-Jul-2005 19:54:55
| | [ #29 ] |
|
|
|
Regular Member |
Joined: 14-Mar-2005 Posts: 141
From: The land of the blondes | | |
|
| no idea what this thing is supposed to be but then again it's not for os4 so i don't care _________________ "I don't know whether nice people tend to grow roses or growing roses makes people nice"
|
|
Status: Offline |
|
|
CodeSmith
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 12-Jul-2005 20:40:54
| | [ #30 ] |
|
|
|
Elite Member |
Joined: 8-Mar-2003 Posts: 3045
From: USA | | |
|
| @salass00
Right, location 4 normally points to a location in "normal" memory somewhere, where the Exec library struct is stored. If instead, it's made to point to a block of memory that's tagged as not present and the page fault handler is aware that this particular block of non-existent memory is special, then any attempts to access the memory pointed at by location 4 will trigger an exception. The page fault handler, aware that this exception should be handled differently (because of the memory location that's been touched) will then call the Exec function to retrieve the data that would normally be stored in that memory location and return it to the application (a similar thing to what NallehPuh does, only instead of calling AHI when a particular memory location gets touched, the exception handler calls exec) |
|
Status: Offline |
|
|
Moxee
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 13-Jul-2005 1:31:05
| | [ #31 ] |
|
|
|
Team Member |
Joined: 20-Aug-2003 Posts: 6291
From: County Yakima, WA State, USA | | |
|
| @ Jacken
Quote:
[slap]
Thanks I needed that wake up.
________________________
Moxee _________________ Moxee AmigaOne X1000 AmigaOne XE G4 I'd agree with you, but then we'd both be wrong.
|
|
Status: Offline |
|
|
salass00
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 13-Jul-2005 4:42:08
| | [ #32 ] |
|
|
|
Elite Member |
Joined: 31-Oct-2003 Posts: 2707
From: Finland | | |
|
| @CodeSmith
So if a program tried to access f.e. the ThisTask field in ExecBase then IExec->FindTask(NULL) would be called then? This is what you're thinking, right? |
|
Status: Offline |
|
|
CodeSmith
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 13-Jul-2005 6:27:57
| | [ #33 ] |
|
|
|
Elite Member |
Joined: 8-Mar-2003 Posts: 3045
From: USA | | |
|
| @salass00
Precisely |
|
Status: Offline |
|
|
EntilZha
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 13-Jul-2005 9:42:42
| | [ #34 ] |
|
|
|
OS4 Core Developer |
Joined: 27-Aug-2003 Posts: 1679
From: The Jedi Academy, Yavin 4 | | |
|
| Quote:
BTW: I seem to remember that some time ago you told the new memory system was (almost) ready (although it won't be part of AOS4): do I remember correctly? |
It is almost ready, and it will be part of 4.0
Quote:
OK, I promise I won't bug you about scheduling, then |
Hehe, you are allowed to start bugging after 4.0 _________________ Thomas, the kernel guy
"I don't have a frigging clue. I'm norwegian" -- Ole-Egil
All opinions expressed are my own and do not necessarily represent those of Hyperion Entertainment
|
|
Status: Offline |
|
|
EntilZha
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 13-Jul-2005 9:43:32
| | [ #35 ] |
|
|
|
OS4 Core Developer |
Joined: 27-Aug-2003 Posts: 1679
From: The Jedi Academy, Yavin 4 | | |
|
| Quote:
I hate to ask, but will protective memory be part of the change? |
Yes, although inactive. The new system is capable of memory protection, but it won't be active in 4.0 for compatibility reasons. _________________ Thomas, the kernel guy
"I don't have a frigging clue. I'm norwegian" -- Ole-Egil
All opinions expressed are my own and do not necessarily represent those of Hyperion Entertainment
|
|
Status: Offline |
|
|
Richi
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 13-Jul-2005 9:50:32
| | [ #36 ] |
|
|
|
Regular Member |
Joined: 25-Dec-2004 Posts: 158
From: Unknown | | |
|
| @EntilZha You wrote: "The new system is capable of memory protection, but it won't be active in 4.0 for compatibility reasons."
You mean by default or it won't be active at all? |
|
Status: Offline |
|
|
EntilZha
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 13-Jul-2005 9:54:15
| | [ #37 ] |
|
|
|
OS4 Core Developer |
Joined: 27-Aug-2003 Posts: 1679
From: The Jedi Academy, Yavin 4 | | |
|
| Quote:
You say OS4 already has "a" scheduler? |
Uh, every multitasking system needs a scheduler. It's the part that takes on task off the CPU and runs the next...
Quote:
I am suggesting that the original Amiga system of fixed priorities and round-robin switching has significant useability issues that a very simplistic adaptive priority scheduler would drastically help with |
Not without a lot of hacking. Adaptive priority scheduling is very bad for tasks that require immediate attention, like for example input.device. AFAIK, executive solves this be scheduling only tasks in a certain priority area (like -15 to +15).
Quote:
I had assumed that the new Exec would either have this stuff integrated, or has been written to allow it added later. I had not envisaged it being added as a thrid-party patch. |
That is the problem I'm talking about. You can not include something into the system without giving it enough thought. If you don't, then you're bound to either drag something along with you foerver, or you need to phase it out again. _________________ Thomas, the kernel guy
"I don't have a frigging clue. I'm norwegian" -- Ole-Egil
All opinions expressed are my own and do not necessarily represent those of Hyperion Entertainment
|
|
Status: Offline |
|
|
EntilZha
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 13-Jul-2005 10:04:13
| | [ #38 ] |
|
|
|
OS4 Core Developer |
Joined: 27-Aug-2003 Posts: 1679
From: The Jedi Academy, Yavin 4 | | |
|
| Quote:
Don't forget about the self-enlarging stacks! the fixed-size stacks are easily the most annoying anachronism in OS4. Are you going to be able to add those in 4.0 or are they planned for 4.1? |
I'm not sure yet. It depends on the loss of compatibility. The problem with he self-enlarging stacks is that they cover up a lot of virtual address space, which is limited by DOS to 2 GB (DOS can not access memory beyond 2 GB). So we have a 2 GB address space that potentially needs 15-20 MB of address space per task for self enlarging stacks. That's a bit steep. My preferred solution is to keep the automatically enlanging stacks private to the tasks, i.e. the other tasks do not see them. This has several advantages besides not using too much address space, for example, the stack is then save from interference by other programs.
However, the stack is more often than not misused as "public" memory. A lot of programs use stack variables for messages, for example, and of course, with a private stack, that wouldn't work.
Quote:
set up a "special" memory area with the MMU that is tagged as "not present", and point location 4 into it |
We would just need to remove the special handling for accessing location 4 that's in use now
But as salass00 said, it's just a pointer to ExecBase, and this is loaded into a global variable by the startup code and address 4 is likely never touched again. _________________ Thomas, the kernel guy
"I don't have a frigging clue. I'm norwegian" -- Ole-Egil
All opinions expressed are my own and do not necessarily represent those of Hyperion Entertainment
|
|
Status: Offline |
|
|
EntilZha
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 13-Jul-2005 10:06:22
| | [ #39 ] |
|
|
|
OS4 Core Developer |
Joined: 27-Aug-2003 Posts: 1679
From: The Jedi Academy, Yavin 4 | | |
|
| Quote:
You mean by default or it won't be active at all? |
The system is capable of creating multiple, isolated address spaces. But since AmigaOS programs don't wok in isolated address spaces, there will only be one, and all programs will run in this one address space.
So yes, be default, it won't be active. _________________ Thomas, the kernel guy
"I don't have a frigging clue. I'm norwegian" -- Ole-Egil
All opinions expressed are my own and do not necessarily represent those of Hyperion Entertainment
|
|
Status: Offline |
|
|
Laser
| |
Re: Classic Amiga News! - Executive now freeware! Posted on 13-Jul-2005 12:02:26
| | [ #40 ] |
|
|
|
Regular Member |
Joined: 19-Jul-2003 Posts: 333
From: Norwich, UK | | |
|
| @EntilZha Quote:
Uh, every multitasking system needs a scheduler. It's the part that takes on task off the CPU and runs the next... |
Heh! Yes, well, ok. I was thinking of the bit that tries to fiddle around with the behaviour for best performance like you get in Linux, etc. The bit that Executive does. (Trying to get the thread back OT!)
Quote:
Adaptive priority scheduling is very bad for tasks that require immediate attention, like for example input.device. AFAIK, executive solves this be scheduling only tasks in a certain priority area (like -15 to +15). |
Correct. The range is user-selectable and defaults to 1 downto about -50.
Thanks for your answers. |
|
Status: Offline |
|
|