Abort, Retry, Ignore, Fail?
整理东西的时候发现一篇以前写的笔记。
很久以前在DOS上很常见的提示——I/O错误的时候,操作系统会问你应该做什么?终止进程?再试一次?忽略这个错误?还是给应用程序返回一个错误?
Ok,至少对一个单用户操作系统来说,这就是它能做的全部事情——发现错误——告诉用户发生了什么——等待用户回应——根据回应操作或把问题丢给应用程序——很可惜,很多事情没有这么简单和直接。一个无人值守的系统,不能指望有用户与其交互;一个多任务系统,不能让其他进程因为一个I/O错误而全部阻塞。于是你发现,现代操作系统全都不再向用户进行任何询问,而是直接把问题丢给应用程序。
在很多事情上,我们是如此的渺小。太多的事情,只能眼睁睁地看着它这样,那样,但是你不能帮助OS去采取任何措施。你不能干预,因为与OS打交道的是应用程序,而不是用户自己;在保护的屏障面前,一切都被隔离,而用户则什么也不是。你可以信任操作系统按照自己的意志去操作,但是,仅此而已。