0-计算机基础-操作系统

进程调度算法

https://blog.csdn.net/fuzhongmin05/article/details/55802925

  1. 先来先服务(FCFS)
  2. 时间片轮转
  3. 短作业优先(SJF)
  4. 多级反馈队列:有多个队列,优先从前面队列取线程执行;若线程在一次时间片段未执行完毕,则移入下一个队列中。

  1. 优先权调度算法(FPF):抢占式(来了更高优先权的进程时则搁置正在执行的进程)、非抢占式。

页面置换算法

操作系统概念第七版中文版p284

  1. 先进先出(FIFO-first in first out)-最基本的算法:先被调入的页先被调换出去
  2. 最佳调度算法(OPT-Optimal Replacement)-理想的、不切实际的算法:调出的页是将来最长时间不访问的页,实际环境根本无法知道之后会访问哪一页,通常用来作为评价其他置换算法的标准。
  3. 最近最久未使用(LRU-least recently used)-实践中效果接近于OPT:调出未使用时间最长的页
  4. 近似LRU:LRU和OPT算法一样,不存在belady异常(增加内存的帧数后,反而需要更多的置换次数),在实践中是一种较为合理的算法,但是LRU基于栈结构,需要特殊的硬件支持,因此便有了下列。
  1. 附加引用位算法:为内存内的每一帧设置一个8位的标志位。当某一帧被使用时,此帧的最高位被置为1,其它位后移。置换时置换出标志位值最小的帧。
  2. 二次机会算法(SCR):基于FIFO,为内存里的每一帧设置一个1位的标志位。

当某一帧被使用时,将标识设置为1;

当某一帧按照FIFO原则被选中替换时,判断标志位:

如果标识位是1,则将标志位设为0,并将该帧放到队列的尾部。

如果标识位是0,则写出该帧。

  1. 时钟算法(clock):改进的二次机会。二次机会需要不断的修改链表,浪费时间,所以有了时钟算法。基于二次机会算法的逻辑,但是所有帧围成环形结构,只需要一个指针指向最前面的帧。
  2. 增强型二次机会: 每一次置换需要一次写出一次写入。但是没被修改过的帧是不必写出的,所以应尽量避免换出修改过的帧。增强型二次机会算法有两个标志位,一个标志是否最近使用过,一个标志是否修改过。置换原则为(0,0)、(0,1)、(1,0)、(1、1)。
  1. 最不经常使用(LFU- least frequently used):调出使用频率最低的页

最常使用(MFU- most frequently used)):调出使用频率最高的页(例如数据仓库)

这两种算法的实现都很费时,且不能很好的近似OPT,所以不常用。

进程间通信

进程间通信分为两类:共享内存,建立消息传递系统。《操作系统概念第7版》P85

共享内存

  1. 共享内存:https://blog.csdn.net/skyroben/article/details/72625028
  2. 信号量:https://blog.csdn.net/skyroben/article/details/72513985

创建信号量的进程在创建的时候设置信号量的id,其他进程可以通过id获取信号量,之后通过PV操作同步信号量。PV是荷兰语的缩写:P(passeren)通过,信号量减1;V(vrijgeven)释放,信号量加1.。

建立消息传递系统

  1. 套接字(socket):https://blog.csdn.net/ljianhui/article/details/10477427 

网络端口

  1. 管道:https://blog.csdn.net/shltsh/article/details/46524401
  1. 匿名(普通)管道:https://blog.csdn.net/skyroben/article/details/71513385

用于父子进程的通信,只能单向通信。父进程创建一个管道后持有管道的入口和出口,fork子进程的时候,子进程也得到了管道的入口和出口。父子进程分别关闭管道的一端后就初始化了父到子或者子到父的管道。

  1. 命名管道(FIFO):https://www.cnblogs.com/cxq0017/p/6525027.html

突破匿名管道只能父子通信的局限,也是半双工。

  1. 匿名管道位于内存,命名管道位于文件系统
  1. 消息队列:https://blog.csdn.net/skyroben/article/details/72520501

创建队列的进程在创建的时候设置队列的id,其他进程可以通过id获取队列,之后通过send和receive函数通信。

  1. 信号:https://www.cnblogs.com/shijingjing07/p/5672784.html

kill -9 和 crtl+c都是一种信号

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值