上交os lec1 操作系统的定义

lec 0

  • 操作系统并不是免费的午餐,而是构筑与控制生态的黑土地。
  • 批处理,交互,分布式,云端结合以及现在的定制化os
  • 以及现在os越来越复杂

lec 1

  • 操作系统难定义,可以定义为硬件与软件之间的软件层:操作系统是管理硬件资源,控制程序运行,改善人机 界面和为应用软件提供支持的一种系统软件
    应用不断贡献功能并沉淀到os中,使得其成为os的一部分
  • 运行一个可执行文件,os需要考虑的一些问题:
  • 即使只有一个应用,仍然需要os,因为os可以提供容错的功能,如果这个应用崩溃了,那么os可以提供错误信息,来分析调试。即使应用想要完全控制硬件,也需要os,os可以提供程序装载与进程调度等功能
  • 操作系统为应用提供的服务:
    • 为应用提供计算资源的抽象
      • CPU,进程/线程,数量不受物理CPU的限制
      • 内存,虚拟内存,大小不受物理内存的限制
      • I/O, 将各种设备统一抽象为文件,提供统一接口
    • 为应用提供线程间的同步
      • 应用可以实现自己的同步原语(如spinlock)
      • 操作系统提供了更高效的同步原语(与线程切换配合,如pthread_mutex)
    • 为应用提供进程间的通信
      • 应用可以利用网络进行进程间通信(如loopback设备)
      • 操作系统提供了更高效的本地通信机制(具有更丰富的语义,如pipe)
  • 操作系统对于应用的管理
  • 操作系统需要考虑管理服务两个方面,而管理与服务的目标会存在冲突,比如服务想要使得其服务的单个应用运行效率最大化,而管理希望整个系统的资源整体利用率最大化,比如手机面向人机交互,所以希望当个应用运行效率最高
  • 应用通过系统调用与操作系统交互
  • 操作系统的管理,如何卡死一个OS?不停的fork,可以通过cgroup/Linux解决该问题,虚拟机,这些都是资源隔离。还可以重启机器,只读约束(也就是不良的代码,被检测出来之后不准运行)
  • 操作系统的挑战,由于进程之间的隔离,进程间的通信速度极慢
  • 现在出现了非易失性内存,所以新的操作系统需要保证崩溃一致性
  • os提供抽象,把复杂留给自己,把简单给用户
  • 上交教学操作系统ChCore,微内核微内核便以形式化验证,提高内核安全性

os的挑战

  • os的可扩展性,多核cpu应该获得相应核数的性能提升,但是却事与愿违,由于🔒与一致性要求等原因
  • 隔离与性能的Tradeoff,由于隔离的要求,但是进程间通信代价很大
  • 安全问题,do_brk为了加快匿名页隐射,不做很多边界检查,
posted @ 2022-04-10 16:36  抿了抿嘴丶  阅读(109)  评论(0)    收藏  举报