上交os lec1 操作系统的定义


  • 操作系统难定义,可以定义为硬件与软件之间的软件层:操作系统是管理硬件资源,控制程序运行,改善人机 界面和为应用软件提供支持的一种系统软件

  • 操作系统为应用提供的服务:

    • 为应用提供计算资源的抽象
      • CPU,进程/线程,数量不受物理CPU的限制
      • 内存,虚拟内存,大小不受物理内存的限制
      • I/O, 将各种设备统一抽象为文件,提供统一接口
    • 为应用提供线程间的同步
      • 应用可以实现自己的同步原语(如spinlock)
      • 操作系统提供了更高效的同步原语(与线程切换配合,如pthread_mutex)
    • 为应用提供进程间的通信
      • 应用可以利用网络进行进程间通信(如loopback设备)
      • 操作系统提供了更高效的本地通信机制(具有更丰富的语义,如pipe)
  • 操作系统对于应用的管理

  • 操作系统需要考虑管理服务两个方面,而管理与服务的目标会存在冲突,比如服务想要使得其服务的单个应用运行效率最大化,而管理希望整个系统的资源整体利用率最大化,比如手机面向人机交互,所以希望当个应用运行效率最高

  • 应用通过系统调用与操作系统交互

  • 操作系统的管理,如何卡死一个OS?不停的fork,可以通过cgroup/Linux解决该问题,虚拟机,这些都是资源隔离。还可以重启机器,只读约束(也就是不良的代码,被检测出来之后不准运行)

  • 操作系统的挑战,由于进程之间的隔离,进程间的通信速度极慢

  • 现在出现了非易失性内存,所以新的操作系统需要保证崩溃一致性

  • 上交教学操作系统ChCore,微内核