1,2章

人造科学

学习一门学科要用对应的思维模式,也是一种哲学。
作者反复强调一种观点:计算机科学不同于自然科学的发现,它是本来不存在的,是人类的发明,是人造的科学,人造的科学带有一定的不确定性,这并不像自然科学那样有着严格的数学意义和严谨的数学推理。既然是人为的科学便有种“差不多”式的学问在里面。对这点的理解可以结合算法的分析来看,算法的复杂的往往只是用它的最高阶来表示,大O记号来表示,这就不考虑那些低阶表达式的影响。在人造科学的学习上,逻辑关系的理解比细节的具体的量化信息更为重要。我们不能说一个程序一定没有Bug,而这个Bug有可能是逻辑的错误,有可能是计算机本身的数据的不精确产生。
人造科学的特点:

  • 不精确、有相对性 没有严格的对错
  • 从人类的活动观察导出 来源于对人类活动的观察,如栈与队列和人类的排队
  • 依赖于人的主观判断力 多数人认同的抽象成为标准
  • 通常符合人的直觉,相比于自然科学常常是不能为直觉所感受的 许多原理和人的直觉直接呼应

自然科学的特点:

  • 精确,绝对
  • 从对自然的观察中导出
  • 不依赖于人的主观判断
  • 通常不符合人的直觉

Operating System 是什么

Operating System – 应该理解为“掌控计算机的系统”,它并不是在操作,而是掌握了了计算机中的发生的一切事情。是介于计算机硬件和应用程序之间的一个软件系统。当一个未经操作系统允许的行为产生,这被视为是非法的事情。但人们设计的系统不会十全十美,总有缺陷这给攻击者可乘之机。

操作系统的角色:魔术师,管理者。前者表现在它将硬件资源以抽象的、独占式的方式呈现给用户;后者体现在它管理者计算机中的一切事物的发生。根据管理的资源不同操作系统分为以下四种管理方式,将每种资源分配给不同的应用程序和用户。

  • CPU 管理
  • 内存管理
  • 外部存储管理
  • I/O 管理

操作系统的演变

状态机操作系统: 简单版的计算器,无存储功能
->
单一控制端操作系统:一次只能执行一个命令,机器等人输入命令
->
单道批处理系统:管理员统一管理,管理员集中将命令写入磁带,将磁带放入系统运行,机器等人装载磁带
->
多道批处理系统:管理员统一管理,将 CPU 运行与输入输出重叠,在一个程序输入输入时,另一个程序在继续占用 CPU 执行。这是划时代的系统,已经有了并发的概念。
->
分时操作系统:多个用户共享一台计算机资源,用户直接进行程序指令的输入,用户有独占感,”随时”与计算机交互,相比于多道批处理系统将操作系统的资源分配的更公平。同时带来了竞争、死锁、保护、进程的概念和问题。
->
实时操作系统,不是指立刻响应,而是能在规定时间内完成特定功能,否则就可能是整个系统出错。所有任务必须满足“时序可预见性”。最重要的部分在于工作调度和进程。必须精确的使得任务在可接受的时间内完成。分为软实时系统与硬实时系统。
->
现代操作系统,分布式操作系统。

总的来看,操作系统的进化,一方面是硬件技术如内存,CPU 性能提高后增加任务复杂度的结果;另一方面是竟可能的利用计算机硬件资源不断优化的结果。