《现代操作系统》阅读笔记——操作系统梗概
- 操作系统的主要功能
- 隐藏复杂的底层硬件操作,为用户程序提供抽象
- 管理计算机资源
- 超线程
- 对于一般的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系统上运行。
100) ? false:true" x-data="topBtn" @click="scrolltoTop" x-cloak>