Program logic bugs vs input/environmental errors
Dicebot via Digitalmars-d
digitalmars-d at puremagic.com
Sun Nov 2 03:48:27 PST 2014
On Saturday, 1 November 2014 at 15:02:53 UTC, H. S. Teoh via
Digitalmars-d wrote:
> I never said "component" == "process". All I said was that at
> the OS
> level, at least with current OSes, processes are the smallest
> unit
> that is decoupled from each other.
Which is exactly the statement I call wrong. With current OSes
processes aren't decoupled units at all - it is all about feature
set you stick to. Same with any other units.
> If you go below that level of
> granularity, you have the possibility of shared memory being
> corrupted
> by one thread (or fibre, or whatever smaller than a process)
> affecting
> the other threads.
You already have that possibility at process level via shared
process memory and kernel mode code. And you still don't have
that possibility at thread/fiber level if you don't use mutable
shared memory (or any global state in general). It is all about
system design.
Pretty much only reliably decoupled units I can imagine are
processes running in different restricted virtual machines (or,
better, different physical machines). Everything else gives just
certain level of expectations.
Walter has experience with certain types of systems where process
is indeed most appropriate unit of granularity and calls that a
silver bullet by explicitly designing language in a way that
makes any other approach inherently complicated and
effort-consuming. But there is more than that in software world.
More information about the Digitalmars-d
mailing list