操作系统期末复习考点(1~6)

第一章 计算机系统概述

中断
分为程序中断、I/O中断、时钟中断、硬件失效中断
高速缓存
Cache对于操作系统不可见。
设计动机:
(1)每个指令周期,处理器至少访问内存一次
(2)处理器速度远快于内存访问
(3)局部性原理,在内存和处理器之间提供一个容量小速度快的存储器
直接内存存取(DMA)
I/O操作:可编程I/O、中断驱动I/O、DMA
局部性原理
时间局部性原理:
空间局部性原理:

第二章 操作系统概述

操作系统发展史
串行处理->简单批处理系统->多道批处理系统->分时系统
现代操作系统特征
并发性共享性、不可再现性、虚拟性、异步性

第三章 进程描述和控制
引入进程原因:为了使程序能够并发执行。
** 什么是进程**
进程:

  • 是系统资源调度和分配的基本单位。
  • 是动态概念,有生命周期。
  • 一个在计算机上执行的程序实例。

进程控制块(PCB):控制块由操作系统创建和管理。
进程由程序代码、相关数据和PCB组成。

进程状态
二、三、五、六、七状态模型

进程切换
何时切换:
中断、陷阱、系统调用
模式切换:
模式切换!=进程切换。
模式切换可在不改变运行态进程的状态下进行。
小结
现代操作系统中最基本的构件是进程,操作系统的功能是创建、管理和终止进程。

第四章 线程

!!进程和线程的区别:
(1)地址空间和其他资源:进程间相互独立,同一进程的各线程间共享。
(2)通信:进程间通信IPC,线程间可以直接读写进程数据段来进行通信。
(3)调度和切换:线程上下文切换比进程上下文切换要快得多。
(4)在多线程OS中,进程不是一个可执行的实体。

线程状态:运行态、阻塞态、就绪态。

第五章 并发性:互斥和同步

并发相关术语:

  • 临界资源:每个进程都给一个I/O设备发命令,接受状态信息,发送数据和接收数据。我们该类(设备)资源称为临界资源。
  • 临界区:使用临界资源的那段代码称为临界区。

信号量
信号量发展过程:

整型信号量->记录型信号量->AND型信号量->信号量集

将信号量视为一个整数的变量,整数值上定义了三个操作:
(1)可以初始化成非负数。
(2)P操作使信号量s减1,当s<0,该进程阻塞
(3)V操作使信号量s加1,当s<=0,唤醒被阻塞的进程
P操作、wait(s):
s>0:s表示当前可用资源数目,初始化时最大
s=0:s表示当前无可用资源
s<0:s表示当前阻塞进程数目
s=1,s为互斥信号量

生产者/消费者问题

第六章 并发:死锁和饥饿

死锁条件:
必要条件:互斥、占有且等待、不可抢占
充要条件:循环等待
死锁预防
间接死锁预防:防止前三个必要条件任意一个的发生。
直接死锁预防:防止循环等待的发生。
死锁避免(银行家算法)
允许三个必要条件的发生,但通过明智地选择,确保不会达到死锁点。
题型:

  • 题型一:判断当前时刻是否为安全状态,如果是请找出其安全序列。
    先列出Allocation、Claim、Need数组,Available数组=Resource-Allocation。
    再逐一判断Pn.Need(x,y,z)是否<Available数组。
    小于则Available=Available+Pn.Allocation;大于则判断下一个进程。
  • 题型二:Pn进程申请资源Request(x,y,z),该资源申请是否能实施。
    先判断Request(x,y,z)<Pn.Need(a,b,c),Request(x,y,z)<Available(e,d,f)是否都成立,
    都成立则进行预分配,Pn.Need(a,b,c)=Pn.Need(a,b,c)-Request(x,y,z),
    Available(e,d,f)=Available(e,d,f)-Request(x,y,z),
    Allocation()=Allocation()+Request(x,y,z).
    若预分配后出于安全状态则该请求能实施。

哲学家就餐问题
3种利用信号量的解决方法:
① 至多只允许四位哲学家去拿左边的叉子
② 仅当哲学家的左、右两只叉子均可用时,才允许他拿起叉子进餐。
③规定奇数号哲学家先拿左边叉子,后拿右边叉子,偶数号哲学家则相反。

猜你喜欢

转载自blog.csdn.net/syy0201/article/details/94290864