0%

再看操作系统1

操作系统

操作系统自从毕业后再未接触,当时学的也不是很好,这次重头在学,争取精通os的算法和概念.


什么是OS

不同角度

用户角度

  • 控制电脑
  • 管理应用程序
  • 为应用程序提供服务

计算机

  • 管理资源
  • 管理外设,分配资源

架构

  • 应用程序之下
  • 硬件之上

以LINUX为例,操作系统其实分内核(kernel)和外部应用(shell) 我们更应该关注内核细节

操作系统管理的硬件资源有三大块

  • CPU (调度)
  • 内存 (物理,虚拟内存管理)
  • 磁盘 (文件系统)

IO (中断处理与设备驱动)

OS的特征:

  • 并发(一段时间内多个程序同时运行,和并行不同,并行是同一时刻同时运行,单核不可能做到)
  • 共享 (将计算机资源共享给其他进程,通过互斥的方法做到”同时“访问)
  • 虚拟 (将计算机硬件虚拟化,内存虚拟化为地址空间,硬盘虚拟化为文件等)
  • 异步 (程序执行不是一贯到底,而是走走停停,OS要保证程序运行结果每次相同)

操作系统实例

  • UNIX家族
    • FreeBSD
    • MacIOS
    • solaris
    • ….
  • Linux家族
    • redhat
    • suse
    • centos
    • ubuntu
    • arch
  • windows家族

OS设计的发展

  1. 在一开始的时候,数据都是存储在纸带上,OS只是起到一个监视的作用,单道程序设计
  2. 后来CPU速度提升,最好处理过程能够流水线话–批处理阶段
  3. 内存进一步扩大后,CPU可以将多个程序加载到内存中使用,这样可以并发重用CPU,这样程序的IO开销减少 – 多道程序设计
  4. CPU造假贵,如何让CPU尽量的忙,当一个程序需要执行等待IO的时候让CPU去执行其他进程,外设读取完后发出中断信号,通知CPU可以切换到原来的进程
  5. 以上都是不需要人参与的,为了能够和计算机交互,将CPU的执行时间分片 一片千分之一秒,程序执行一片后控制权给其他进程 – 分时操作
  6. 为什么CPU每千分之一秒能被打断,是因为 时钟 时钟是个外设设备,每隔一个时间片发出中断信号
  7. 网络快速发展后,很多工作可以丢给数据中心做 — 分布式操作系统

Welcome to my other publishing channels