This is the multi-page printable view of this section. Click here to print.
操作系统
- 1: CPU Cache 高速缓存
- 2: 存储器的层次结构
- 3: 操作系统基本特性
- 4: 进程同步
- 5: 进程的状态与转换
1 - CPU Cache 高速缓存
CPU 缓存是为了解决 CPU 处理速度和内存处理速度不对等的问题。
CPU Cache 的工作方式: 先复制一份数据到 CPU Cache 中,当 CPU 需要用到的时候就可以直接从 CPU Cache 中读取数据,当运算完成后,再将运算得到的数据写回 Main Memory 中。但是,这样存在 内存缓存不一致性的问题 !比如我执行一个 i++ 操作的话,如果两个线程同时执行的话,假设两个线程从 CPU Cache 中读取的 i=1,两个线程做了 i++ 运算完之后再写回 Main Memory 之后 i=2,而正确结果应该是 i=3。
操作系统屏蔽了底层硬件的操作细节,将各种硬件资源虚拟化。于是,操作系统也就同样需要解决内存缓存不一致性问题。
操作系统通过 内存模型(Memory Model) 定义一系列规范来解决这个问题。无论是 Windows 系统,还是 Linux 系统,它们都有特定的内存模型。
2 - 存储器的层次结构
在计算机执行时,几乎每一条指令都涉及对存储器的访问,存储器的速度必须非常快,能与处理机的速度相匹配,否则会明显地影响到处理机的运行。
存储层次至少应具有三级:
最高层为CPU寄存器,中间为主存,最底层是辅存。
其中寄存器和主存也被称为 可执行存储器
可执行存储器
是通过访问方式区分的
可执行存储器 使用一条load或store指令对可执行存储器进行访问。
对辅存的访问则需要通过I/O设备实现。
主存储器
主存储器 主存储器简称内存或主存,
是计算机系统中的主要部件,
用于保存进程运行时的程序和数据,也称可执行存储器
寄存器
寄存器具有与处理机相同的速度,
故对寄存器的访问速度最快,完全能与CPU协调工作,
但价格却十分昂贵,因此容量不可能做得很大。
[高速缓存](CPU Cache 高速缓存)
高速缓存是介于寄存器和存储器之间的存储器,
主要用于备份主存中较常用的数据,
以减少处理机对主存储器的访问次数,
这样可大幅度地提高程序执行速度。
磁盘缓存
目前磁盘的I/O速度远低于对主存的访问速度,
为了缓和两者之间在速度上的不匹配,而设置了磁盘缓存,主要用于暂时存放频繁使用的一部分磁盘数据和信息, 以减少访问磁盘的次数。
3 - 操作系统基本特性
并发
OS能够提高系统资源利用率的原因
并发是指多个任务在同一时间段内被处理,但并不意味着它们必须是同时发生的。实际上,处理器可能会在同一时刻只能处理一个任务,但操作系统通过切换任务的方式让多个任务在短时间间隔内“交替”执行。
- 并发的关键特点是:在同一时间段内,多个任务会被交替执行,这种交替执行给人感觉是同时进行的。操作系统调度器负责任务切换。
共享
在操作系统中,共享资源需要控制不同进程或线程的访问,常见的控制方式有 互斥 和 同时。
- 共享资源是指多个进程或线程可以访问同一块内存或设备资源。例如,多个进程同时访问打印机、磁带机等共享设备。
- 操作系统中的共享通常是通过 锁机制(如互斥锁、读写锁等)来避免资源竞争问题,确保资源访问的有序性。
1. 互斥
互斥是指在某一时间,只能允许一个进程或线程访问共享资源,防止并发执行时的资源冲突。
- 例如,打印机是共享资源,但同一时刻只能由一个进程打印,其他进程需等待。
- 操作系统通过 互斥锁(Mutex) 来保证同一时间内只有一个进程(或线程)能访问资源。
2. 同时
同时是指多个进程或线程在时间上交替执行共享资源的访问请求,而非在同一时刻访问。 例如,某个设备在微观上并不是完全同时被多个进程访问,而是交替执行。
虚拟
操作系统通过软件技术为应用程序和用户提供的一种抽象和隔离机制,使得多个程序可以在相同的硬件资源上独立运行,并且每个程序认为它独占系统资源,实际上是操作系统通过合理调度和资源分配来共享这些资源。
时分复用(Time Division Multiplexing, TDM)
时分复用是指通过时间片轮转的方式将处理器时间分配给多个用户或任务。每个用户在指定的时间段内占用资源,其他用户则需等待空闲时间。
- 例子:操作系统通过时间片轮转的方式将 CPU 时间分配给各个进程,保证每个进程都有机会执行。
空分复用(Frequency Division Multiplexing, FDM)
空分复用通过将频带划分成多个较小的频带来为不同的通信用户提供服务,每个用户在一个独立的频带内通信。
- 例子:在无线通信中,多个通信设备通过不同的频率带宽进行通讯。每个设备占用一个特定频段。
异步
在多道程序并发的环境下,每个程序何时执行、何时暂停 都是未知的,即他们以不可预知的速度向前推进,
操作系统 应当保证程序执行结果的可再现性。
执行顺序
同步
同步是指任务的执行是按顺序进行的,一个任务完成后,另一个任务才能开始执行。
- 例子:多个进程依次在 CPU 上执行,前一个任务完成后,后一个任务才能开始。
异步
异步是指任务的执行不必按顺序进行,多个任务可以并行执行,任务之间的执行顺序不受限制。每个任务执行时不会阻塞其他任务的执行。
- 例子:在事件驱动的程序中,任务的执行顺序可能不固定,可以由事件触发机制来决定。
4 - 进程同步
临界资源
一次只允许一个进程使用,多个进程同时使用就会造成系统混乱的资源
诸进程间应采取互斥方式,实现对这种资源的共享。
源如打印机、 磁带机、共享变量等
临界区
无论是硬件临界资源
还是软件临界资源
多个进程必须互斥的对它进行访问
在每个进程中访问临界资源的这段代码称之为临界区
临界区的作用
- 保护共享资源
通过互斥访问机制,任意时刻只有一个线程修改和访问共享数据
从而保护资源一致性,完整性
- 防止竞态条件
多个线程同时访问共享资源时
由于执行顺序的不确定导致结果不可预测
临界区通过确保同一时间只有一个线程运行,避免竞态发生
- 提高程序稳定性
如果不能采取有效的措施,对多个进程的运行进行妥善的管理,
必然会因为这些进程对系统资源的无序争夺给系统造成混乱。
致使每次处理的结果存在着不确定性,即显现出其不可再现性。
有多个进程需要同时修改某一数据,系统必须控制, 一次仅允许一个进程完成读数据,并修改数据两件事以后,才允许别的进程对同一数据的读和修改操作。
5 - 进程的状态与转换
进程的状态与转换
多个进程在并发执行时共享系统资源,
致使它们在 运行过程中呈现间断性的运行规律,
所以进程在其生命周期内可能具有多种状态。
基本状态
就绪(Ready)状态
执行(Running)状态
阻塞(Block)状态
创建与终止状态
创建状态
进程正在被创建
创建工作尚未完成,进程不能被调度运行
终止状态
进程从系统消失
两个步骤:
首先,是等待操作系统 进行善后处理,
最后将其PCB清零,并将PCB空间返还系统。
这里注意。就绪到运行获得处理机前需要获得其他所有资源
Exam.
进程描述中正确的
A. 进程获得CPU是通过调度得到的
B. 进程申请CPU未获满足时,其状态变为阻塞
B 进程申请CPU未获满足仍为就绪,只有申请IO或资源失败才是阻塞