《现代操作系统》阅读笔记——操作系统梗概

  • 操作系统的主要功能

    • 隐藏复杂的底层硬件操作,为用户程序提供抽象
    • 管理计算机资源
  • 超线程

    • 对于一般的CPU, 虽然有多线程的概念,但是实际上CPU中每一时刻还是只有一个线程在执行的
    • 我们知道现代CPU是流水线执行的,并且每个流水线阶段有多个执行单元,比如专门执行浮点运算的,因此在不同任务重很有可能有些执行单元会不在工作。而超线程技术就是让闲着的那些执行单元去做另一个线程的工作。这样就实现了每一是个有多于一个线程在执行。
    • 但是这样需要多于的硬件去管理,线程越多管理越复杂,所以一般只有2个线程
    • 在内核本身就被充分利用的情况,超线程没什么用处
  • CPU, 物理内核和逻辑内核

    • CPU就是每台电脑一个的那东西
    • 内核就是CPU中含有的核心数,现在一般是一个CPU8核心,他们公用一些cache
    • 物理内核和逻辑内核一般来说是一样的,但是由于超线程技术的存在,逻辑内存可能是物理内核的两倍
  • 操作系统五大组成部分

    • 输入输出,保护/安全,进程,文件系统,系统调用
  • 输入输出策略

    • 最简单的就是CPU阻塞等待输出输出完成
    • 一般的方法是启动设备,待操作完成发出中断
    • 第三种是DMA,直接储存器访问。和第二种方法不同之处在于,第二种是将数据读入一个缓冲区。待缓冲区满后,发出中断,清空缓冲区。但是如果输入数据量很大的时候会面临频繁中断的问题。而DMA是直接让内存与设备连接,在完成所有输入的时候才发出中断,通知CPU。
  • 内核模式和用户模式

    • PSW(用户状态字)寄存器内含了CPU优先级,溢出标志等来表示当前程序的状态,内核和用户模式也可以在此被设置
    • 内核模式对计算机有全部操作权限,而用户模式只有有限权限,比如不能访问受保护的内存,不能修改当前模式等
    • I/O指令等都需要从用户模式转移到内核模式再执行
  • 进程拥有的资源

    • 寄存器
    • 打开的文件列表
    • 警报(alarm)
    • 相关进程列表
    • 运行程序所需要的其他信息
    • 地址空间
      • 可执行的程序指令
      • 程序数据
      • 程序的堆栈
  • 文件系统

    • 操作系统将底层复杂的各种I/O细节抽象成了统一的概念——文件
    • 特殊文件
      • 块特殊文件:磁盘等
      • 字符特殊文件: 打印机等
      • 特殊文件抽象使得这个设备看起来像文件一样
      • 一般存放在/dev目录中
  • 系统调用

    • 提供用户程序和操作系统的交互接口的集合
  • 微内核

    • 把许多内核态的功能放到用户态实现
    • 代码量较小
    • 减少内核中的错误
  • 为什么C不支持自动垃圾回收机制呢?

    • 因为操作系统是用C语言写的,这样直接管理效率更高
    • 当发生中断的时候,系统只有很有限时间来处理,如果这个时候自动来及回收机制突然调用了,就有可能丢失关键信息
  • POXIS标准

  • 一开始UNIX有不同的版本,各个版本之间不兼容,后来为了统一标准,指定了POXIS标准,凡是符合这个标准的程序可以在任何版本的UNIX系统上运行。

你可能感兴趣的:(操作系统与组成原理)