3 ms·
Never is a strong word. Suppose the clock app on my phone fails an assert. Technically, this means that the entire phone system entered an unknown state; but th
by gizmo686 8y ago
Never is a strong word. Suppose the clock app on my phone fails an assert. Technically, this means that the entire phone system entered an unknown state; but there is a good chance that the bad state is contained within the failing app. In this case, it would be possible to recover by killing and restarting the offending process.
Sure, it is possible that the crash was actually caused by bad state in the kernel, or even in the baseband processor, so we can't say for certain if restarting the app actually put us into a good state. However, the approach of isolating failures at the program level seems to have been greatly succesful at improving the reliability of the overall system. It does not seem unreasonable that when a "single" program becomes sufficiently complex, it would not benefit from a similar containment.
- WalterBright 8y agoThe process in an operating system with per-process memory protection is a reasonable level of containment for a consumer phone, and terminating/restarting the program is a reasonable solution. For a safety critical system, that isn't good enough. Put it this way - would you bet your life on it?