mwm@raven.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) (01/15/91)
[Still trying to push this back to comp.sys.amiga.misc - mwm]
In article <1991Jan11.081137.17529@zorch.SF-Bay.ORG> mykes@zorch.SF-Bay.ORG (Mike Schwartz) writes:
There must be 2 kinds of tasks possible in a "true" multitasking system.
One kind of task is the kind that Amiga and Multifinder support, multiple
applications. The second is one that multifinder does not support which
is a task that is part of an application and is spawned while the
application runs and terminates sometime before (or right when) the
application quits.
The only thing interesting you might be talking about is lightweight
processes. The only reason those are interesting is because they're
cheaper than normal processes. In any case, they have nothing to do
with the topic at hand.
The Amiga also has a 3rd kind of multitasking. There are 3 CPUs in the
Amiga if you consider the Blitter and the Copper. All 3 of these CPUs can
be executing programs at the same time. In MOST cases, the 680x0 can still
execute and perform its Exec() multitasking while the other CPUs are
executing.
That's not multitasking; multiprocessing is closer to the meaning of
the term. It's _still_ got nothing to do with the topic at hand.
This definition of *true* multitasking should be good enough to shut up your
average anal-retentive Mac evangilist :)
This has something to do with the topic at hand - it's the kind of
asinine statement that gives Amiga owners a bad name, and the attitude
that makes the phrase "true multitasking" something to be avoided.
Aforementioned Mac evangilist will go away, and quit wasting his time
trying to get information into your head. Anyone else in the vicinity
will go away, and be wary of anyone who uses an Amiga from then on.
<mike
--
ben@servalan.uucp (Ben Mesander) (01/15/91)
In article <MWM.91Jan14113155@raven.relay.pa.dec.com> mwm@raven.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) writes: >[Still trying to push this back to comp.sys.amiga.misc - mwm] I hate to say it Mike, but a thread this silly belongs in .advocacy.
mykes@zorch.SF-Bay.ORG (Mike Schwartz) (01/18/91)
In article <MWM.91Jan14113155@raven.relay.pa.dec.com> mwm@raven.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) writes: >[Still trying to push this back to comp.sys.amiga.misc - mwm] > >In article <1991Jan11.081137.17529@zorch.SF-Bay.ORG> mykes@zorch.SF-Bay.ORG (Mike Schwartz) writes: > There must be 2 kinds of tasks possible in a "true" multitasking system. > One kind of task is the kind that Amiga and Multifinder support, multiple > applications. The second is one that multifinder does not support which > is a task that is part of an application and is spawned while the > application runs and terminates sometime before (or right when) the > application quits. > >The only thing interesting you might be talking about is lightweight >processes. The only reason those are interesting is because they're >cheaper than normal processes. In any case, they have nothing to do > with the topic at hand. It has everything to do with the discussion at hand. Without what you call lightweight processes, you have something less than what you have with them. Without lightweight processes, you DON'T HAVE true multitasking. True multitasking is what the posting was about that this response was made to. Lightweight processes allow you to have a second task that writes graphics to the screen while another manipulates pulldown menus. Lightweight processes allow a hard disk backup program to read from hard disk, compress, and write to floppy (that is 1 application plus 2 lightweight processes) in the most efficient manner possible. It allows applications to take advantage of the multitasking environment. > > The Amiga also has a 3rd kind of multitasking. There are 3 CPUs in the > Amiga if you consider the Blitter and the Copper. All 3 of these CPUs can > be executing programs at the same time. In MOST cases, the 680x0 can still > execute and perform its Exec() multitasking while the other CPUs are > executing. > >That's not multitasking; multiprocessing is closer to the meaning of >the term. It's _still_ got nothing to do with the topic at hand. > Yes it is multiprocessing, but when you consider that these are things normally done by the CPU on other computers, it becomes a form of multitasking, too. > This definition of *true* multitasking should be good enough to shut up your > average anal-retentive Mac evangilist :) > >This has something to do with the topic at hand - it's the kind of >asinine statement that gives Amiga owners a bad name, and the attitude >that makes the phrase "true multitasking" something to be avoided. >Aforementioned Mac evangilist will go away, and quit wasting his time >trying to get information into your head. Anyone else in the vicinity >will go away, and be wary of anyone who uses an Amiga from then on. > > <mike >-- Call me an anal retentive amiga user because I am one. This thread is not just a bunch of Amiga guys having an intelligent discussion about various kinds of multitasking. It is Amiga guys explaining the difference between TRUE multitasking, which the Amiga has, and a switcher (albeit a glorious one) which the Mac has. No matter what we (Amiga) say, they (Mac) don't wanna believe that what they have is any less than what we have. By the way, I did not invent the term anal-retentive Mac evangilist. I just thought it was humorous (note the :) in my post) and it does describe most of the most gung-ho mac enthusiasts I run into. However obnoxious I can find such enthusiasts to be, I know I am just as obnoxious about the Amiga. And I do respect a person for being passionate about things he likes, even a mac. What I don't like about the Mac is that it is made by apple. I find the company policy of not selling ROMs anymore to be a vicious and malicious business practice. I find the pricing and performance of their machines and software to be poor. I find that those who support the company by buying their product are doing more harm than they know.
torrie@cs.stanford.edu (Evan J Torrie) (01/19/91)
mykes@zorch.SF-Bay.ORG (Mike Schwartz) writes: >[lots of stuff deleted] >What I don't like about the Mac is that it is made by apple. I find the >company policy of not selling ROMs anymore to be a vicious and malicious >business practice. As a matter of interest, does Commodore sell their ROMs and custom chips (Blitter, Copper) etc to anybody?? -- ------------------------------------------------------------------------------ Evan Torrie. Stanford University, Class of 199? torrie@cs.stanford.edu "Dear Fascist Bully Boy, Give me some money, or else. Neil. P.S. May the seed of your loins be fruitful in the womb of your woman..."
es1@cunixb.cc.columbia.edu (Ethan Solomita) (01/19/91)
In article <1991Jan18.165311.18870@Neon.Stanford.EDU> torrie@cs.stanford.edu (Evan J Torrie) writes: >mykes@zorch.SF-Bay.ORG (Mike Schwartz) writes: > >>[lots of stuff deleted] > >>What I don't like about the Mac is that it is made by apple. I find the >>company policy of not selling ROMs anymore to be a vicious and malicious >>business practice. > > As a matter of interest, does Commodore sell their ROMs and custom >chips (Blitter, Copper) etc to anybody?? > You CAN buy replacement parts, and also you can buy them when they are changed, i.e. 2.0 and ECS. But we have no idea how Commodore would react if an emulator comes out. Currently there aren't any. >-- >------------------------------------------------------------------------------ >Evan Torrie. Stanford University, Class of 199? torrie@cs.stanford.edu >"Dear Fascist Bully Boy, Give me some money, or else. Neil. P.S. May >the seed of your loins be fruitful in the womb of your woman..." -- Ethan "What a waste it is to lose one's mind, or not to have a mind... How true that is." -- Dan Quayle, of course. Our beloved Vice President. It's just too easy!
yorkw@stable.ecn.purdue.edu (Willis F York) (01/19/91)
> You CAN buy replacement parts, and also you can buy them >when they are changed, i.e. 2.0 and ECS. But we have no idea how >Commodore would react if an emulator comes out. Currently there >aren't any. Hmmm A Amiga Clone... Isin't some English company doing that with the 2000? Putting in another drive, memory,ect, and calling it a 1500? And there's the A1500 case they ya put ya 500 in, makes it look like a "1000'ish" thing. I don't know if i'd buy an Amiga clone.. How much cheaper could they get amigas? (I'd buy a Portable Amiga Clone tho... Because CBM don't have one!) . -- yorkw@ecn.purdue.edu Willis F York ---------------------------------------------- Macintosh... Proof that a Person can use a Computer all day and still not know ANYTHING about computers.
es1@cunixb.cc.columbia.edu (Ethan Solomita) (01/19/91)
In article <yorkw.664223561@stable.ecn.purdue.edu> yorkw@stable.ecn.purdue.edu (Willis F York) writes: >> You CAN buy replacement parts, and also you can buy them >>when they are changed, i.e. 2.0 and ECS. But we have no idea how >>Commodore would react if an emulator comes out. Currently there >>aren't any. > >Hmmm A Amiga Clone... Isin't some English company doing that with the 2000? >Putting in another drive, memory,ect, and calling it a 1500? > >And there's the A1500 case they ya put ya 500 in, makes it look like >a "1000'ish" thing. > Well, you still have to buy an Amiga from COMMODORE to get that A1500. It is merely a new case. >-- >yorkw@ecn.purdue.edu Willis F York >---------------------------------------------- >Macintosh... Proof that a Person can use a Computer all day and still >not know ANYTHING about computers. -- Ethan "What a waste it is to lose one's mind, or not to have a mind... How true that is." -- Dan Quayle, of course. Our beloved Vice President. It's just too easy!
mwm@raven.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) (01/19/91)
In article <1991Jan18.055614.13889@zorch.SF-Bay.ORG> mykes@zorch.SF-Bay.ORG (Mike Schwartz) writes: In article <MWM.91Jan14113155@raven.relay.pa.dec.com> mwm@raven.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) writes: >[Still trying to push this back to comp.sys.amiga.misc - mwm] > >In article <1991Jan11.081137.17529@zorch.SF-Bay.ORG> mykes@zorch.SF-Bay.ORG (Mike Schwartz) writes: > There must be 2 kinds of tasks possible in a "true" multitasking system. > One kind of task is the kind that Amiga and Multifinder support, multiple > applications. The second is one that multifinder does not support which > is a task that is part of an application and is spawned while the > application runs and terminates sometime before (or right when) the > application quits. > >The only thing interesting you might be talking about is lightweight >processes. The only reason those are interesting is because they're >cheaper than normal processes. In any case, they have nothing to do >with the topic at hand. It has everything to do with the discussion at hand. Without what you call lightweight processes, you have something less than what you have with them. Without lightweight processes, you DON'T HAVE true multitasking. Boy, are the Unix people going to be surprised when you try and tell them they don't have "true" multitasking - whereas the Amiga, which isn't even a "real" computer, does. True multitasking is what the posting was about that this response was made to. Yes, but you obviously have no idea what is meant by that phrase. Lightweight processes allow you to have a second task that writes graphics to the screen while another manipulates pulldown menus. Lightweight processes allow a hard disk backup program to read from hard disk, compress, and write to floppy (that is 1 application plus 2 lightweight processes) in the most efficient manner possible. It allows applications to take advantage of the multitasking environment. Neither of these require lightweight processes. The latter one doesn't require multitasking _at all_ - you can do it with co-routines and asynch IO. The latter requires multitasking by definition (you required two processes), but can be done with cooperative multitasking - which means it could be done with co-routines inside one task. Call me an anal retentive amiga user because I am one. Actually, I don't think you're anal retentive; that usually implies a obsession with getting things exactly right, which you don't show. This thread is not just a bunch of Amiga guys having an intelligent discussion about various kinds of multitasking. It is Amiga guys explaining the difference between TRUE multitasking, which the Amiga has, and a switcher (albeit a glorious one) which the Mac has. No matter what we (Amiga) say, they (Mac) don't wanna believe that what they have is any less than what we have. You still don't know what you're talking about - but this time it's because you jumped into the middle of a conversation without trying to understand it. This conversation is a few Amiga owners trying to improve the image of _all_ amiga owners by getting them to drop the inflammatory phrase "true multitasking" in favor of the technically more accurate phrase with prior usage - "preemptive multitasking". Iny our specific case, I'd recommend the practice of understanding what you're going to talk about before you start. <mike -- How many times do you have to fall Mike Meyer While people stand there gawking? mwm@pa.dec.com How many times do you have to fall decwrl!mwm Before you end up walking?
new@ee.udel.edu (Darren New) (01/19/91)
I tried to mail this, but it bounced... In article <MWM.91Jan18153532@raven.relay.pa.dec.com> you write: >Neither of these require lightweight processes. The latter one doesn't >require multitasking _at all_ - you can do it with co-routines and >asynch IO. The latter requires multitasking by definition (you >required two processes), but can be done with cooperative multitasking >- which means it could be done with co-routines inside one task. Please tell me the difference between coroutines and lightweight processes. I always thought that lightweight processes were two 'tasks' (i.e., independant program counters) sharing the same address space. I.e., the Amiga is one big process with lots of lightweight processes inside. I though coroutines were a specific mechanism for specifying creation and termination of lightweight processes. You make it sound as if coroutines are somehow simpler than lightweight processes, or that lightweight processes can do things that coroutines cannot. I'm interested in what you think the differences are. -- Darren -- --- Darren New --- Grad Student --- CIS --- Univ. of Delaware --- ----- Network Protocols, Graphics, Programming Languages, Formal Description Techniques (esp. Estelle), Coffee, Amigas ----- =+=+=+ Let GROPE be an N-tuple where ... +=+=+=
djohnson@beowulf.ucsd.edu (Darin Johnson) (01/19/91)
In article <42149@nigel.ee.udel.edu> new@ee.udel.edu (Darren New) writes: >Please tell me the difference between coroutines and lightweight >processes. I always thought that lightweight processes were two >'tasks' (i.e., independant program counters) sharing the same address >space. Lightweight processes (LWP) and co-routines (CR) have much in common, and some people blur the definition. Usually however, LWP's have the ability to context switch anywhere, like any process. CR's need only change context at IO, semaphores, and other special calls. CR's are a language construct, whereas LWP's are an OS construct. CR's require much less OS and machine support, but require more compiler support (co-routines share the same stack, global vars, etc). Actually, to avoid confusion, compiler support is not needed. CR's can be done in assembler without much fuss - device drivers often do this (usually when LWP's are unavailable). -- Darin Johnson djohnson@ucsd.edu - Political correctness is Turing undecidable.
new@ee.udel.edu (Darren New) (01/19/91)
In article <15750@sdcc6.ucsd.edu> djohnson@beowulf.ucsd.edu (Darin Johnson) writes: >In article <42149@nigel.ee.udel.edu> new@ee.udel.edu (Darren New) writes: >>Please tell me the difference between coroutines and lightweight >>processes. >Lightweight processes (LWP) and co-routines (CR) have much in common, >and some people blur the definition. Usually however, LWP's have the >ability to context switch anywhere, like any process. CR's need only >change context at IO, semaphores, and other special calls. So you mean that the Amiga is full of LWPs and the Mac is full of CRs? :-) Correct me if I'm wrong, but I think you are saying that CRs are non-preemptive. -- Darren -- --- Darren New --- Grad Student --- CIS --- Univ. of Delaware --- ----- Network Protocols, Graphics, Programming Languages, Formal Description Techniques (esp. Estelle), Coffee, Amigas ----- =+=+=+ Let GROPE be an N-tuple where ... +=+=+=
himacdon@maytag.uwaterloo.ca (Hamish Macdonald) (01/22/91)
>>>>> In article <15750@sdcc6.ucsd.edu>, djohnson@beowulf.ucsd.edu (Darin Johnson) writes:
Darin> [...]. CR's require much less OS and machine support, but
Darin> require more compiler support (co-routines share the same
Darin> stack, global vars, etc).
Darin> Actually, to avoid confusion, compiler support is not needed.
Darin> CR's can be done in assembler without much fuss - device
Darin> drivers often do this (usually when LWP's are unavailable).
The uSystem (micro-system) project here at UW provides both
pre-emptive lightweight processes and coroutines under Unix without
any compiler support. Straight gcc is used. Normal BSD system calls
are used. (Provides support for multi-processor Unix machines as
well).
For more information, send mail to "usystem@maytag.uwaterloo.ca".
Hamish.
--
--------------------------------------------------------------------
himacdon@maytag.uwaterloo.ca watmath!maytag!himacdon
m0154@tnc.UUCP (GUY GARNETT) (01/23/91)
This is my understanding of the "threads" or "lightweight processes" issue; feel free to correct me if I am not up to date on the terminology. "threads", or "lightweight processes" are separate execution traces which share the address spaces with one or more other processes, regardless of the other processes weight. They were designed to allow many of the simpler multitasking jobs (like re-drawing the screen or recalculating the spreadsheet) to be done with lower overhead. They are implemented in OS/2 and perhaps the Mach kernal. "coroutines" are the individual processes in a cooperatinve multitasking environment. The main program coordinates the activity of multiple subroutines, so that the system multitasks effectively. Unlike preemptive multitasking, cooperatinve multitasking places a demand on the programmer to ensure that the system operates efficently. One improperly programmed routine can cause the whole system to fall apart without really intending to. As I understand it, the Amiga does not have "threads" or "lightweight processes". The Amiga does make a distinction between "processes" and "tasks". A process could be described as a task that is known to AmigaDOS (Amiga EXEC handles multitasking, at a level below AmigaDOS). Processes have a current directory, standard input and output streams, and some other things which tasks do not. One time I explained this to a Unix programmer, and his initial response was "Oh! Tasks are a kind of daemon, then? ... (Well sort of). Although all of the tasks and processes on the Amiga share an address space, it is not intended that there be multiple execution traces through the same code and data (with the well-defined exception of certian operating system code). You *CAN* do it, but you do not get the same benefits that threads get - the operating system overhead is the same, and writing code to work this way adds its own overhead. Wildstar
new@ee.udel.edu (Darren New) (01/24/91)
In article <672@tnc.UUCP> m0154@tnc.UUCP (GUY GARNETT) writes: >As I understand it, the Amiga does not have "threads" or "lightweight >processes". The Amiga does make a distinction between "processes" and >"tasks". A process could be described as a task that is known to >AmigaDOS (Amiga EXEC handles multitasking, at a level below AmigaDOS). Not really. AmigaDOS does indeed have lightweight processes, which are called "tasks". An AmigaDOS "process" is a task with an easily- locatable communication buffer for use by certain system libraries (primarily the file system). However, tasks can and do perform I/O via message passing. The filesystems simply require that the I/O be done to a certain location. >Processes have a current directory, standard input and output streams, >and some other things which tasks do not. Yes. AmigaDOS "processes" are supersets of tasks, but the differences have nothing to do with addressing or scheduling. >Although all of the tasks and processes on the Amiga share an address >space, it is not intended that there be multiple execution traces >through the same code and data (with the well-defined exception of >certian operating system code). There can be. What do you mean by "the same code"? The same executable image in memory? Happens all the time (with "resident" programs), i.e., shared-code in UNIX-speak. Many programs (esp games and telecom programs) have multiple tasks using the same non-shared executable. >You *CAN* do it, but you do not get >the same benefits that threads get - the operating system overhead is >the same, and writing code to work this way adds its own overhead. It is exactly the same as threads. Tell me what a thread gives you that an AmigaDOS task does not? Or vica versa. -- Darren -- --- Darren New --- Grad Student --- CIS --- Univ. of Delaware --- ----- Network Protocols, Graphics, Programming Languages, Formal Description Techniques (esp. Estelle), Coffee, Amigas ----- =+=+=+ Let GROPE be an N-tuple where ... +=+=+=
m0154@tnc.UUCP (GUY GARNETT) (01/25/91)
In article <42598@nigel.ee.udel.edu> new@ee.udel.edu (Darren New) writes: >In article <672@tnc.UUCP> m0154@tnc.UUCP (GUY GARNETT) writes: >>As I understand it, the Amiga does not have "threads" or "lightweight >>processes". The Amiga does make a distinction between "processes" and >>"tasks". A process could be described as a task that is known to >>AmigaDOS (Amiga EXEC handles multitasking, at a level below AmigaDOS). > >Not really. AmigaDOS does indeed have lightweight processes, which >are called "tasks". An AmigaDOS "process" is a task with an easily- >locatable communication buffer for use by certain system libraries >(primarily the file system). However, tasks can and do perform I/O >via message passing. The filesystems simply require that the I/O >be done to a certain location. > Tasks are not lightweight Processes; tasks and processes are the same to Exec. The distinction is at the AmigaDOS level; as I said in my first message. Tasks and Processes can both do I/O through DOS; processes have the necessary DOS structures built-in, tasks must do some setting-up first. Tasks and Processes can both use the file system; processes simply have it pre-defined for them (I never said differently, please read my original message). > >>Processes have a current directory, standard input and output streams, >>and some other things which tasks do not. > >Yes. AmigaDOS "processes" are supersets of tasks, but the differences >have nothing to do with addressing or scheduling. > Right. That's what I said. From the point of view of the threads vs no-threads debate, Amiga tasks and processes are the same. They are, of course, not the same to AmigaDOS. > >>Although all of the tasks and processes on the Amiga share an address >>space, it is not intended that there be multiple execution traces >>through the same code and data (with the well-defined exception of >>certian operating system code). > >There can be. What do you mean by "the same code"? The same executable >image in memory? Happens all the time (with "resident" programs), i.e., >shared-code in UNIX-speak. Many programs (esp games and telecom programs) >have multiple tasks using the same non-shared executable. > >>You *CAN* do it, but you do not get >>the same benefits that threads get - the operating system overhead is >>the same, and writing code to work this way adds its own overhead. > Yes, I am talking about the same image in memory. The well defined exception I am talking about is when pure code is made resident. This is usually used for system level code, cli commands, and the like; I don't think it is indended that applications programs be made resident (can you imagine re-coding wordperfect so that it is pure, and then making it resident? Yes, it could be done, but it soulds like a lot of work for little benefit; better to modify it so that it can handle more documents at once without bogging down). Multiple programs using the same executable, loaded at different locations in memory (one for each invocation of the program) is a different beastie; most Amiga software should be coded so that this is possible. > >It is exactly the same as threads. Tell me what a thread gives you >that an AmigaDOS task does not? Or vica versa. -- Darren > >-- >--- Darren New --- Grad Student --- CIS --- Univ. of Delaware --- >----- Network Protocols, Graphics, Programming Languages, > Formal Description Techniques (esp. Estelle), Coffee, Amigas ----- > =+=+=+ Let GROPE be an N-tuple where ... +=+=+= The distinction made in other operating systems (OS/2 and a few others) is that multiple threads execute as one task, and the operating system manages multiple tasks. The task switch on these operating systems is quite involved and time-consuming; and every task has a separate address space. Threads within a task share the same address space (that of the task), and switching between threads within a task is relatively fast and efficient. While the amiga does not have threads, Exec has some of the features that threads are supposed to bring to other operating systems (specifically, lower operating system overhead and faster task switches for better real-time response). Because of the design of the Amiga hardware, the amiaga also has all of its tasks sharing the same address space; but amiga programs are not supposed to reference memory that they have not received control of (through memory allocation or message passing). In short, threads are implemented in other operating systems to improve the efficency of the OS with regard to handling multiple, closely-coupled tasks, all of which are working on parts of the same problem. The Amiga does not have threads, and doesen't need them, because its multitasking and message passing systems are already highly efficient. What other operating systems need a special facility for is simple one more application of the Amiga's multitasking operating system. And it has been for years. Wildstar
daveh@cbmvax.commodore.com (Dave Haynie) (01/25/91)
In article <1991Jan18.165311.18870@Neon.Stanford.EDU> torrie@cs.stanford.edu (Evan J Torrie) writes: >mykes@zorch.SF-Bay.ORG (Mike Schwartz) writes: > As a matter of interest, does Commodore sell their ROMs and custom >chips (Blitter, Copper) etc to anybody?? They have an OEM program which sells things like A500 motherboards. These wind up in strange places, like arcade video machines and similar devices. And of course ROMs are sold through normal dealer channels. The custom chips are available as upgrades, but not priced in such a way that you'd want to base a commercially available system (eg, AmigaClone) on them. With few exceptions, Commodore systems have traditionally been tied to hardware enough to make clones difficult, at least within a generation (an Amiga can kind of emulate a C64, but it would be difficult to build any C64 compatible for less than a real C64 and therefore compete). Apple has been virtually hardware independent (as long as you have a 680x0 based CPU or a software engine that does a reasonably fast 680x0 emulation), so they naturally have to keep tight controls on their ROMs, if they wish to prevent Mac clones. A SoftAmiga running on a Mac or other system would actually be a good advertisement for real Amigas, since the blitter, copper, and other hardware would be difficult to emulate in realtime in software. So you would probably find only rather generic programs ran well, assuming Intuition and Graphics were rewritten to be blitterless. >Evan Torrie. Stanford University, Class of 199? torrie@cs.stanford.edu -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "What works for me might work for you" -Jimmy Buffett
peter@sugar.hackercorp.com (Peter da Silva) (01/28/91)
In article <42154@nigel.ee.udel.edu> new@ee.udel.edu (Darren New) writes: > So you mean that the Amiga is full of LWPs and the Mac is full of CRs? :-) No, both are full of *processes*. The difference between LWPs and CRs is that CRs specify the routine to continue on the context switch. Cooperative Multitasking (CM) is an implementation of LWPs using a scheduler to transparently select the next coroutine to execute. I posted an implementation of CM using CRs in C to one of the comp.unix groups a year or so ago. I used setjmp/longjmp to do the co-call with some unspecified magic juju to set up the stack. > Correct me if I'm wrong, but I think you are saying that CRs are > non-preemptive. -- Darren CR are non-scheduled. To confuse things further, the traditional UNIX kernel is implemented as a set of coroutines that call the scheduler as a subroutine. The UNIX kernel is non-preemptive, but UNIX user processes are preemptable. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
new@ee.udel.edu (Darren New) (01/29/91)
In article <678@tnc.UUCP> m0154@tnc.UUCP (GUY GARNETT) writes: >In article <42598@nigel.ee.udel.edu> new@ee.udel.edu (Darren New) writes: >>In article <672@tnc.UUCP> m0154@tnc.UUCP (GUY GARNETT) writes: >>>As I understand it, the Amiga does not have "threads" or "lightweight >>>processes". >>Not really. AmigaDOS does indeed have lightweight processes, which >>are called "tasks". >Tasks are not lightweight Processes; tasks and processes are the same >to Exec. That's what I said. "Tasks" on the Amiga are what computer scientists call "lightweight processes" or "threads". Since they share the address space, all Amiga "tasks" are all threads of the same process. (Note quotes for Amiga terminology.) >Yes, I am talking about the same image in memory. The well defined >exception I am talking about is when pure code is made resident. How about backup programs spawning compression routines, terminal programs having a sender routine and a receiver routine, multiple programs calling the same library at the same time, etc? I think you recognise much less of the code sharing than is really there. >(can you imagine re-coding wordperfect so that it is pure, >and then making it resident? Yes, it could be done, but it soulds >like a lot of work for little benefit; Lattice (and probably Manx) both can do this with a compiler switch. I usually do it, because it is no extra work. >>It is exactly the same as threads. Tell me what a thread gives you >>that an AmigaDOS task does not? Or vica versa. -- Darren >The distinction made in other operating systems (OS/2 and a few >others) is that multiple threads execute as one task, and the >operating system manages multiple tasks. The task switch on these >operating systems is quite involved and time-consuming; and every task >has a separate address space. Threads within a task share the same >address space (that of the task), and switching between threads within >a task is relatively fast and efficient. Hence, what OS/2 calls a thread, Amiga exec calls a "task". All "tasks" within the Amiga share the same address space, so they are all part of the same process. Thence, the Amiga is full of LWPs, (or "tasks", or threads,) all of which are part of the same process. >but amiga programs are not supposed to reference memory >that they have not received control of (through memory allocation or >message passing). And "threads" in most multiprogramming systems are not supposed to access shared memory they have not received control of. >The Amiga does not have threads, and doesen't need them, >because its multitasking and message passing systems are already >highly efficient. What other operating systems need a special >facility for is simpl[y] one more application of the Amiga's >multitasking operating system. And it has been for years. I think we are in violent agreement here. There was just a confusion of terminology which I believe I have cleared up. -- Darren -- --- Darren New --- Grad Student --- CIS --- Univ. of Delaware --- ----- Network Protocols, Graphics, Programming Languages, Formal Description Techniques (esp. Estelle), Coffee, Amigas ----- =+=+=+ Let GROPE be an N-tuple where ... +=+=+=
new@ee.udel.edu (Darren New) (01/29/91)
In article <1991Jan27.100824.6629@marlin.jcu.edu.au> glmwc@marlin.jcu.edu.au (Matt Crowd) writes: >When a 1 line C program can bring down the system...... But you can do that on an IBM or a Mac also. Commodore just made the mistake of making a system crash amusing enough to talk about it. -- --- Darren New --- Grad Student --- CIS --- Univ. of Delaware --- ----- Network Protocols, Graphics, Programming Languages, Formal Description Techniques (esp. Estelle), Coffee, Amigas ----- =+=+=+ Let GROPE be an N-tuple where ... +=+=+=
davewt@NCoast.ORG (David Wright) (01/29/91)
In article <1991Jan27.100824.6629@marlin.jcu.edu.au> glmwc@marlin.jcu.edu.au (Matt Crowd) writes: >I don't know about calling it a feature! I am sick of the >lack of memory protection. I would definitely endure slightly slower >performance and the need for some major software re-writes >for it. Then you are in the minority of Amiga owners. Most would prefer it, if it didn't hamper current programs, and I don't know anyone who is against it if future programs could be written which supported it, as long as current programs could be run as well. Personally, I am GLAD the Amiga is not Unix, and does not try to be. If I wanted Unix I would use it (3000UX). Unix is like a big old-fashioned Cadilac. It includes things for every user that many users don't want/need, and protects everyone behind battleship strength security and impact resistance. The Amiga is like a compact sports car. When you hit a bump, you know it. But if it is driven by a knowledgeable driver, the results are far better than anything a Caddy could ever do. And if the software is written correctly, the user will never even know that there is no memory protection. If you have used 2.0 you will have seen (if you have been able to guru your machine, I haven't been able to in about a year) the "Task Held" requester, which is about as close to memory protection as many people will ever need. And if you are a developer (the only ones who would be writing any new software) you are a fool to develop and run critical software on the same machine, in any OS (I work in Unix 3.2.2 all day, and I would never think of running production code on the same machine a develop on). > >When a 1 line C program can bring down the system...... > Gee, I guess this also includes Unix, Xenix, MS-DOS, and the Mac too, right? Dave
m0154@tnc.UUCP (GUY GARNETT) (01/31/91)
>>When a 1 line C program can bring down the system...... > Gee, I guess this also includes Unix, Xenix, MS-DOS, and the >Mac too, right? How about a 2-line FORTRAN program crashing an IBM 3083? I've done it; every operating system has its weakness, you simply have to try harder with some than with others. If you take some care and pride in your work, you can write decent, maintainable and reliable code on the Amiga, or on any other system, for that matter. If you don't learn (or don't bother to learn) the difference between right and wrong programming practices, then you will have a difficult time writing good, relaible, and efficent code on any machine. In the very beginning (now I'm talking about v1.0 and v1.1) the Amiga was a hard machine to program for. The learning curve was steep, there was likely to be nobody around who knew the answers to your questions, and the documentation was spotty, or incomplete. Now, its a different ballgame. I would compare the Amiga programming environment quite favorablly to those available on other personal computers with GUI's. Yes, the learning curve is still steep, but no worse (and in many cases better than) other GUI systems. There is good documentation, reliable tools, and expert advice available. No, you can't program it the same way you program on an IBM PC or a mainframe, but then again, the Amiga is not an IBM PC or a mainframe. For which I am very glad. Wildstar
burley@geech.ai.mit.edu (Craig Burley) (01/31/91)
In article <1991Jan28.220234.29712@NCoast.ORG> davewt@NCoast.ORG (David Wright) writes: In article <1991Jan27.100824.6629@marlin.jcu.edu.au> glmwc@marlin.jcu.edu.au (Matt Crowd) writes: >I don't know about calling it a feature! I am sick of the >lack of memory protection. I would definitely endure slightly slower >performance and the need for some major software re-writes >for it. Personally, I am GLAD the Amiga is not Unix, and does not try to be. If I wanted Unix I would use it (3000UX). Unix is like a big old-fashioned Cadilac. It includes things for every user that many users don't want/need, and protects everyone behind battleship strength security and impact resistance. The Amiga is like a compact sports car. When you hit a bump, you know it. But if it is driven by a knowledgeable driver, the results are far better than anything a Caddy could ever do. Uh...no. UNIX ain't no cadillac. Most implementations I know of do provide memory protection because they provide virtual memory, but I don't think either one is required by any standard UNIX. Cadillac OS? Try Multics, or maybe VAX/VMS. Under UNIX, you get nothing but a bunch of little tools. You're supposed to hook them up together however you need to do the job. There's no "undelete", for example -- but you can implement it if you want, and fairly easily. There's no command line processor -- but one or more "shells" available, which means you can write your own. AmigaOS is almost certainly head and shoulders above any other OS when running on Amiga computers, especially because of the specialized hardware they use, also because of their target audience. This isn't surprising and doesn't really say much -- but I said it in case anyone thought I disagreed with "the results are far better than anything a Caddy could ever do". If I had to travel through a forest fast, I'd prefer a motorcycle to a Caddy, too. My impression of UNIX and AmigaOS is that AmigaOS has lots of the "good" features of UNIX -- flexibility, the ability to remain fairly stripped-down, et cetera -- while forgoing multi-user capability, and adding more modern built-in facilities like graphics management, perhaps(?) a more full- featured file system, and so on. But comparing UNIX and AmigaOS is much less useful than comparing AmigaOS to Mac OS and/or MS-DOS and/or VMS &c, for one simple reason: unlike the others, UNIX is a portable operating system. No matter what faults it has, this is the one big reason it is becoming so popular. From lowly 286 machines to Crays, UNIX can reside. In this sense, AmigaOS and MacOS are cadillacs and UNIX the motorcycle -- it is much more flexible in this field of endeavor (portability) than are they, and also much more limited, because it can't standardize around things that aren't common among many varieties of machines. If I knew for sure I was going to be working on only one basic machine/architecture for a long, long time, I'd do my best to avoid UNIX. Because I don't, I must embrace it. Ooomph. -- James Craig Burley, Software Craftsperson burley@ai.mit.edu
mwm@pa.dec.com (Mike (My Watch Has Windows) Meyer) (01/31/91)
In article <694@tnc.UUCP> m0154@tnc.UUCP (GUY GARNETT) writes: >>When a 1 line C program can bring down the system...... > Gee, I guess this also includes Unix, Xenix, MS-DOS, and the >Mac too, right? How about a 2-line FORTRAN program crashing an IBM 3083? I've done it; every operating system has its weakness, you simply have to try harder with some than with others. The difference is that on Unix & the IBM, this is considered a bug in the OS, and you have some hope of getting people to fix it. On the Amiga/Mac/MS-DOS, it's a bug in the application (even if the application meant to do it), and there's no way anyone is going to fix it. That's one reasonable definition of "real" computers - that the system crashing is considered to a system problem, and not an application problem. <mike -- He was your reason for living Mike Meyer So you once said mwm@pa.dec.com Now your reason for living decwrl!mwm Has left you half dead
ckp@grebyn.com (Checkpoint Technologies) (02/02/91)
>That's one reasonable definition of "real" computers - that the system >crashing is considered to a system problem, and not an application >problem. (Note that I'm trying to direct this into .advocacy...) I think it's also a reasonable definition of "personal" computers that the "system" affects one person only. In such a case, it's difficult to discern the difference, to the person, between a "system" failure and an "application" failure. Both affect the person just as much. The biggest difference is whether the application is relanched or the system rebooted. A multi-tasking personal system is slightly different, because the person may be engaged in several applications, but the number of persons affected by a crash is still one. In multi-user computers, there is a "system" authority and applications are served out to multiple users. In this case it is unforgivable that the actions of one user affect another, therefore the "system" takes great pains to protect itself, and therefore other users. It is from this environment that Unix was born. My point? If you want protection, if you want a "real" computer, get Unix. You have no other choice, because you can be sure that AmigaDOS will never have the protection you're asking for, all arguments aside. Asking for it is pointless. -- First comes the logo: C H E C K P O I N T T E C H N O L O G I E S / / \\ / / Then, the disclaimer: All expressed opinions are, indeed, opinions. \ / o Now for the witty part: I'm pink, therefore, I'm spam! \/
gjc@lsw.UUCP (Greg) (02/04/91)
In article <MWM.91Jan30173903@raven.pa.dec.com>, mwm@pa.dec.com (Mike (My Watch Has Windows) Meyer) writes: > That's one reasonable definition of "real" computers - that the system > crashing is considered to a system problem, and not an application > problem. > > <mike Excuse me?? How can a programmer, who is human, possibly account for all possible contingencies??? Does this mean that every time an application crashes your Amiga/Mac that the system designers are at fault just because some funky programmer who doesn't know what he's doing wrote some strange out-of-this world program?? Or better yet!! are Are you trying to say that the Amiga is not a "real" computer??? Inquiring minds want to know!! :) Gregory John Casamento (The Borgster!!)
mwm@pa.dec.com (Mike (My Watch Has Windows) Meyer) (02/05/91)
In article <186@lsw.UUCP> gjc@lsw.UUCP (Greg) writes: In article <MWM.91Jan30173903@raven.pa.dec.com>, mwm@pa.dec.com (Mike (My Watch Has Windows) Meyer) writes: > That's one reasonable definition of "real" computers - that the system > crashing is considered to a system problem, and not an application > problem. > > <mike Excuse me?? How can a programmer, who is human, possibly account for all possible contingencies??? They can't - at least not for anything nontrivial. Does this mean that every time an application crashes your Amiga/Mac that the system designers are at fault just because some funky programmer who doesn't know what he's doing wrote some strange out-of-this world program?? The definition I just stated implies that if the answer to that question isn't "yes", then you're not using a real computer. Or better yet!! are Are you trying to say that the Amiga is not a "real" computer??? No - I'm simply stating a definition for the term "real computer". Whether any particular machine meets the definition is immaterial. <mike -- My feet are set for dancing, Mike Meyer Won't you turn your music on. mwm@pa.dec.com My heart is like a loaded gun, decwrl!mwm Won't you let the water run.
daveh@cbmvax.commodore.com (Dave Haynie) (02/07/91)
In article <186@lsw.UUCP> gjc@lsw.UUCP (Greg) writes: >In article <MWM.91Jan30173903@raven.pa.dec.com>, mwm@pa.dec.com (Mike (My Watch Has Windows) Meyer) writes: >> That's one reasonable definition of "real" computers - that the system >> crashing is considered to a system problem, and not an application >> problem. >Excuse me?? How can a programmer, who is human, possibly account for >all possible contingencies??? What Mike is alluding to here is that an operating system, with the proper hardware support, can be written to trap and deal with programming errors. Your OS needs two basic features -- a per-task MMU context, and resource tracking, to do this correctly. Basically what happens is this: when a task context changes, a new MMU table is referenced a the user level. This table grants read/write permission to the memory resources owned by the new task, possibly read-only permission to system global resources, and makes any other memory access an error. Along with this, the system software tracks every memory or allocation made by the task. Should the task happen to access something it doesn't own, the MMU will cause an exception, calling up an OS control program that knows how to free up whatever the errant task has allocated and then eliminate the task itself. In the AmigaOS, resources are mediated by the OS, but it's up to each application to free them, and there's no way for the OS to know just what any application has allocated. Additionally, the OS doesn't manage a per-task MMU context (strangely enough, the majority of Amigas don't have MMUs), so hardware supported error trapping at present is a developer tool, not part of the general OS. In most cases, it's much better for the OS to handle resource tracking, just as it handles resource allocation, graphics, filesystem, etc. >Does this mean that every time an application crashes your Amiga/Mac >that the system designers are at fault just because some funky programmer >who doesn't know what he's doing wrote some strange out-of-this world >program?? What this says is that, had the system been designed differently, bad programming would not crash the system, just the application. You would also need an A2500/20 at the least to run the system. Ideally, the fact that the OS doesn't afford this protection will, in the long run, provide us with better quality applications. Since it's far more important to avoid bugs on an Amiga application, you tend to see these applications written more carefully than the typical protected-OS application. Because the very nature of the AmigaOS makes a great number of bugs obvious, whether in a crash or trapped by a development tool. UNIX, for example, can very easily hide a large number of different bugs, many of which result from the sloppy programming style popular on these systems (some of the GNU code is a good example); ints instead of pointers, macros where you should have a typedef, the assumption of near infinite memory availability, the list goes on. Obviously, a fatal bug in a UNIX program is less annoying than a similar one on an Amiga system. But that's kind of like saying that smashing up your car near a hospital is less annyoing than doing it out on a deserted road in the middle of the Pine Barrens. Proper methodology, whether driving or programming, avoiding the catastrophe in the first place, is best of all. -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "What works for me might work for you" -Jimmy Buffett
gjc@lsw.UUCP (Greg) (02/10/91)
In article <MWM.91Feb4105909@raven.pa.dec.com>, mwm@pa.dec.com (Mike (My Watch Has Windows) Meyer) writes: > No - I'm simply stating a definition for the term "real computer". > Whether any particular machine meets the definition is immaterial. > On that note, all I am trying to say is that operating systems are written by people, people are fallable and therefore so are operating systems. By your definition quite a few of todays computers would not be real computers. For example... by using direct addressing I could erase all the memory locations in a Prime minicomputer/mainframe, or by moving a zero to a particular register (using a non-privileged account) you can crash a VAX/VMS minicomputer. And the list would go on and on... It would be very nice if a microcomputer operating system could accomplish this, but it would have to be *very* robust and have a high price. I am not refutinge the fact that there may be some OSs out there which are totally bulletproof, but I have yet to see one. BTW, you might consider saying "real operating system" since what you referred to in your first note was concerning the OS not the computer. Contrary to what you might think the OS has very little to do with the computer it's running on. A primary example of this would be UNIX which currently runs on DEC, Apple Mac, Amiga,some 386s, some 286s, etc. (Also BTW, UNIX is not bulletproof *by far* so I guess it's not a "real" operating system!)
mwm@pa.dec.com (Mike (My Watch Has Windows) Meyer) (02/12/91)
In article <187@lsw.UUCP> gjc@lsw.UUCP (Greg) writes: In article <MWM.91Feb4105909@raven.pa.dec.com>, mwm@pa.dec.com (Mike (My Watch Has Windows) Meyer) writes: > No - I'm simply stating a definition for the term "real computer". > Whether any particular machine meets the definition is immaterial. > On that note, all I am trying to say is that operating systems are written by people, people are fallable and therefore so are operating systems. Yes, they are. I'm not trying to say that the definition implies that no application can crash the system; merely that when that happens, it's considered a bug in the system, not the application. By your definition quite a few of todays computers would not be real computers. For example... by using direct addressing I could erase all the memory locations in a Prime minicomputer/mainframe, or by moving a zero to a particular register (using a non-privileged account) you can crash a VAX/VMS minicomputer. It's been a long time since I looked at a PR1ME, but given what I saw then, I wouldn't be surprised if what you describe is considered a feature. Which would indeed make a PR1ME not meet that definition of real computer - which matched the conclusions of the time I looked at it. We bought a VMS system instead. On the other hand, our VAX/VMS people assure me that the bug you describe is a bug in the OS, and fixed on our systems. And the list would go on and on... I dunno - most of the hardware I've worked on don't provide features that allow non-privileged users to crash the system. Most of them had _bugs_ that let that happen. The systems people were trying to fix them. If the systems people had been trying to convince me that the applications program was at fault, then I would have said they didn't have a real computer. It would be very nice if a microcomputer operating system could accomplish this, but it would have to be *very* robust and have a high price. That statement was true 10 years ago, and probably true five years ago. I don't believe it's true now. An A3000UX would qualify (I know of no features in Unix that allow applications to crash the system). I am not refutinge the fact that there may be some OSs out there which are totally bulletproof, but I have yet to see one. I'm not saying that a computer has to have a bulletproof OS to meet that definition; I'm saying that the OS design has to have the _goal_ of being bulletproof to meet that definition. BTW, you might consider saying "real operating system" since what you referred to in your first note was concerning the OS not the computer. Look at the topic. Think about the history of the discussion. Contrary to what you might think the OS has very little to do with the computer it's running on. A primary example of this would be UNIX which currently runs on DEC, Apple Mac, Amiga,some 386s, some 286s, etc. Contrary to what you might think, SOME os's are very much tied to the computer they're on. A primary example of this would be AmigaDOS, which has to have a 680x0 based processor, and a nice set of custom silicon as well. Also, the OS expects to see some set of capabilities from the hardware, and won't run without that. But yeah, you're right - hardware can run multiple OSs, and some of them have being bulletproof as a goal; others don't. It can be argued (and has been previously in this thread) that a Mac running AUX is in some way different from a Mac running finder, as the users see radically different behavior. <mike -- [Our regularly scheduled .signature preempted.] Mike Meyer The Amiga 1000: Let's build _the_ hackers machine. mwm@pa.dec.com The Amiga 500: Let's build one as cheaply as possible! decwrl!mwm The Amiga 2000: Let's build one inside an IBM PC!
UH2@psuvm.psu.edu (Lee Sailer) (02/13/91)
...and of course, even bug free (I mean really, totally, absolutely bug free) systems can crash. Making a system crash proof and being bug free are two different concepts. Making a system crash proof sometimes requires considerable overhead, such as always checking processes to see if a deadlock has occurred. If the *designers* of the system decide that deadlock is so rare that the cost of detecting or avoiding it is not worth it, then they won't put those features in. (No, we don't use this system for air traffic control 8-)
gjc@lsw.UUCP (Greg Casamento) (02/17/91)
In article <MWM.91Feb11115014@raven.pa.dec.com>, mwm@pa.dec.com (Mike (My Watch Has Windows) Meyer) writes: > I'm not saying that a computer has to have a bulletproof OS to meet > that definition; I'm saying that the OS design has to have the _goal_ > of being bulletproof to meet that definition. I see your reasoning now...and I agree. When I first read the note I thought that you were saying that any computer which could be crashed by an application is not a real computer, but I obviosly mis- understood. > Contrary to what you might think, SOME os's are very much tied to the > computer they're on. A primary example of this would be AmigaDOS, > which has to have a 680x0 based processor, and a nice set of custom > silicon as well. Also, the OS expects to see some set of capabilities > from the hardware, and won't run without that. This is true... But, certain OS's can be ported to other platforms. > But yeah, you're right - hardware can run multiple OSs, and some of > them have being bulletproof as a goal; others don't. It can be argued > (and has been previously in this thread) that a Mac running AUX is in > some way different from a Mac running finder, as the users see > radically different behavior. > Any decent operating system/hardware design should be capable of handling application problems to an extent, but thier integrity cannot be guaranteed. Just so long as they have the goal of being bulletproof in mind, that's good enough for me. But, you never know about some OS's, after all nobody's perfect! > <mike -- **************************************************************************** Gregory John Casamento (The Borgster!!!) Standard Disclaimer: All standard disclaimers apply! :) ****************************************************************************