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