自学操作系统(处理机调度及死锁)

3.1 处理机调度概述

(1)高级调度

                对象:作业。

                根据某种算法,决定将外存上处于后备队列中的作用调入内存,并为它们创建进程和分配必要的资源,将新创建的进程排在就绪队列上等待调度。

                主要任务:接纳多少个作业,接纳哪些作业。

                主要用于多道批处理系统中。

(2)中级调度

                将暂不运行的进程,调至外存等待

                将处于外存上的急需运行的进程,调入内存运行

                即“对换”功能

(3)低级调度

                对象:进程

                根据某种调度算法,决定就绪队列中的那个进程应获得处理机

                应用在于多道批处理,分时和实时OS。

进程调度的任务:

①保存处理机的现场信息

②按某种算法选取进程

③把处理器分配给进程

进程调度机制:

排队器:用于将就绪进程插入相应的就绪队列

分派器:用于将选定的进程一处就绪队列

上下文切换器:进行新旧进程之间的上下文切换

处理机调度算法的目标:

共同目标:①资源利用率        ②公平性        ③平衡性        ④策略强制执行

批处理系统的目标:平均周转时间段,系统吞吐量大,处理机利用率高

分时系统的目标:响应时间快,均衡性

实时系统的目标:截至事件的保证,可预测性

3.2 调度算法

(1)先来先服务算法(FCFS)

(2)短作业优先调度算法(SJF)

(3)优先级调度算法:

确定进程优先级的依据有三个方面:

①进程类型(系统进程,用户进程)。

②进程对资源(CPU,内存)的需求。

③用户要求

(4)高相应比优先调度算法

(5)时间片轮转算法(RR)

3.3 实时调度

(1)实时调度的基本条件

3.4 Linux进程调度

基于调度器,允许不同的可动态添加的调度算法并存,每个类都有一个特定的优先级

总调度器:根据调度器类的优先顺序,依次对调度器类中的进程进行调度

调度器类:使用所选调度器算法进行内部调度

调度器类的默认优先级顺序为:Stop_Task>Real_Time>Fair>ldle_Task

3.5 死锁概述

死锁:指多个进程在运行过程中争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,这些进程都将永远不能再向前推进。

可重用性资源:一次只能分配给一个进程,不允许多个进程共享,遵循:请求资源,使用资源,释放资源。

可消耗资源:又进程动态创建和消耗(进程间通信的消息)

可抢占性资源:某进程再获得该资源后,其他进程或系统也可抢占该资源,CPU和主存区

不可抢占资源:当系统把这类资源分配给该进程后,在不能强行收回,只能再进程用完后自行释放:打印机,磁带机

死锁原因:

①竞争不可抢占资源引起死锁

系统中不可抢占性资源,由于它们的数量不能满足诸进程运行的需求,会使进程在运行过程中,因争夺这些资源而陷入僵局

②竞争可消耗资源引起死锁

③进程推进顺序不当引起死锁

产生死锁的必要条件:

处理死锁的方法:

3.6 预防死锁

破环死锁的四个必要条件中的一个或几个

①互斥:硬件互斥可通过虚拟技术破环,软件互斥则必须保证,不能破坏

②请求保持:必须保证进程申请资源的时候没有占用其他资源

        要求进程在执行前一次性申请全部资源,只有没有占有资源时才可以分配资源

        资源利用率低,可能出现饥饿

        改进:进程只能获得运行初期所需资源后,便开始运行,其后在运行过程中逐步释放已分配的且用毕的全部资源,然后再请求新资源

③不可抢占:

        如果一个进程的申请没有实现,它要释放所有占有的资源

        先占的资源放入进程等待资源列表

        进程再重新得到旧的资源的时候重新开始

④循环等待:对所有的资源类型排序进行线性排序,并赋予不同的序号,要求进程按照递增顺序申请资源

        如何规定每种资源的序号是十分重要的。

        限制新类型设备的增加

        作业使用资源的顺序与系统规定的顺序不同

        限制用户简单,自主的编程

3.7 避免死锁

银行家算法

3.8 死锁的检测与解除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值