五、死锁
资源
- 可抢占资源:如存储器,两个进出互相等待对方占有的资源时,其中一方可以释放可抢占性资源,另一方可以顺利执行
- 不可抢占资源:无法把资源从占有它的进程抢占过来
死锁
- 如果一个进程集合中的每个进程都在等待只能由该进程集合中的其他进程才能引发的事件,该进程集合就是死锁
- 死锁条件:互斥条件,占有和等待条件,不可抢占条件,环路等待条件
- 处理死锁策略:检测恢复,仔细对资源分配动态避免,破坏死锁条件之一
- 检测:需要查阅相关检测算法
- 恢复:利用抢占恢复,回滚恢复,杀死进程
预防
- 尽量做到尽可能少的进程可以真正请求资源
- 破坏占有和等待条件:进程在开始执行前一次性请求所需全部资源,另一种,是进程请求资源时先释放已经持有,再一次性请求
- 破坏不可抢占条件:对资源进行虚拟化,由底层进行实际的调用。不适用于操作系统或数据库的记录
- 避免出现环路等待:对资源进行编号,每个进程请求需要按照资源的顺序提出
- 两阶段加锁:第一阶段将所需记录加锁,如果遇到已经被加锁记录,则释放所有记录,重新第一阶段,第二阶段修改数据然后释放
- 通信死锁:超时
- 活锁:进程在临界区进行轮询,则可能出现没有进程阻塞,但进程一直尝试失败,常见于资源不足
- 饥饿:资源分配迟迟没有轮到该进程
六、多媒体操作系统
多媒体
- 特征:使用极高的数据率,多媒体要求实时回放
- 要求:存储量大需要进行压缩,实时数据传输
- 视频压缩:编码算法和解码算法的速度根据场景不同考量,不必100%可逆,允许有损
- 音频压缩:波形编码傅里叶变换,感知编码
七、多处理机系统
多处理机操作系统
- 每个CPU有自己的操作系统:无法充分利用资源,任务分配均衡等
- 主从多处理机:主处理机容易成为瓶颈过载
- 对称多处理机:把操作系统分割成多个临界区,每个临界区由其互斥信号量保护
多处理机同步,调度
- 分时
- 空间共享:多个CPU上同时调度多个线程
- 群调度:一组相关线程作为一个单位调度,一个群的成员在不同的CPU上同时进行,群中所有成员共同开始和结束时间片
八、安全
目标与威胁
- 数据机密性–数据暴露
- 数据完整性–数据篡改,数据遗失
- 系统可用性–拒绝服务
- 排外性–病毒控制
密码学原理
- 密钥:算法的加密参数
- 加密算法公开,加密安全性由独立于算法的密钥决定
- 公钥加密:加密运算比较简单,没有密钥的解密运算十分繁琐。公钥是加密密钥,私钥用于解密
- 单向函数:f(x)可容易计算出y值,给定y值不能计算x,也称作加密散列函数
- 数字签名:对文档运行单向散列函数如MD5,文档拥有者用私钥计算得到D(散列值),接收方用发送方公钥计算得到E(D(散列值))得到实际散列值,再比较
保护机制
- 域:一对组合,指定一个对象和一些可在其上运行的操作子集
- 基本原则:最低权限原则,每个域拥有最少对象和满足其完成工作的最少权限,安全性最好
- unix:进程的域由(UID,GID)定义,每个进程分为用户部分和核心部分,执行系统调用时,从用户态切换到内核态,核心部分可以访问与用户部分不同的对象集,这样系统调用引发域切换
- 访问控制表与权能字
- 隐写术:如将实际信息隐藏在图片中等
用户认证
- 口令
- 一次性口令,如网上银行银盾等
- 挑战响应认证,密码问题等
- 实物认证
- 生物识别认证
内部安全
- 逻辑炸弹
- 后门陷阱
- 登录欺骗
代码漏洞
- 缓冲区溢出
- 代码注入:系统调用时,如命令行
- 权限提升攻击:利用计划任务进行攻击等
恶意软件
- 木马攻击
- 病毒
- 蠕虫
防御
- 防火墙
- 反病毒扫描,完整性检查,行为检查捕捉系统调用
- 代码签名