作业管理之进程调度

进程的调度:

保留旧的进程的运行信息,请出旧进程(收拾包袱)
选择新进程,准备运行环境并分配CPU (新进驻)

1.就绪队列
2.委派机制
3.新老进程上下文切换机制

抢占式的调度 (允许在一定策略下暂停当前的进程&保存此进程的上下文信息)通用系统 pc&Mac
非抢占式的调度(直到进程完成才会让出处理器)
四个调度算法:

1.first in first serve
2.短进程优先 (运行时间最短的,优先执行)
3.高优先权 (进程自带优先权,紧迫任务可以优先被处理)
4.时间片轮转调度算法 绝对公平 
(1.先到先得给它整体排序 2. 从queue队列取出待执行进程,分配一个时间片执行)

作业管理之死锁:

两个以上的进程在执行过程中,由于竞争资源造成阻塞。
1.产生
竞争资源
进程调度顺序不当
2.四个必要条件
  互斥
  请求保持 (当请求一个新资源的时候发现已经被占用,但是被阻塞的进程又不愿意释放自己保持的资源)
  不可剥夺 (获得的cpu资源只能自己释放)
  环路等待 (进程资源环形链,类似科学家拿筷子的例子)
  

死锁的处理:

预防死锁的方法:
破坏死锁四个必要条件中的任意一个
1.破坏请求保持
在进程运行之前,一次性申请所有需要的资源
2. 破坏不可剥夺
当一个进程请求新的资源得不到满足时,必须释放占有的资源
3.破坏环路等待
把可用资源进行线性排序

避免死锁的银行家算法 (以银行借贷系统分配策略为基础)

客户每次申请贷款时需要申明最大资金量,如果银行可以满足,都应该给予借贷

客户在使用贷款后,可以及时归还

进程就等于客户,贷款的金额等于需要的资源,银行代表系统的还没分配出去的资源

你可能感兴趣的:(linux)