进程管理(二)

一、调度介绍

  当两个以上进程处于就绪状态,就会发生多个进程竞争CPU的问题。在操作系统中完成选择工作的程序叫做调度程序。

  内核管理线程的时候,调度经常是按线程来调度的,基本与进程没有关联。

 

调度要解决的三个问题:

1、按什么选择下一个要调度的程序(即调度算法的选择)

  不同的环境需要不同的调度算法。调度环境可分为三种:批处理、交互式、实时性。

  批处理:在批处理系统中,不会有用户在终端等待一个短请求。因此非抢占算法或者每个进程都有长时间周期的抢占式算法。这种方式减少了进程的切换而改善了性能。

  交互式:为了避免一个进程霸占CPU而拒绝其他进程服务,抢占式必须的。

 

2、何时进行进程选择(即调度时机)

  事件发生-->CPU暂停当前运行的进程-->硬件机制响应后-->进入操作系统处理相应事件-->结果处理后:

  就绪队列有调整-->利用调度算法从就绪队列选中一个进程

 

3、如何让被选中的进程运行在CPU上(即调度过程,进程的上下文切换)

  例如:进程A下CPU,进程B上CPU

  1、进程A保存上下文环境

  2、更新进程A的PCB

  3、把进程A移至合适的队列

  4、将进程B设置为运行态

  5、从进程B中恢复上下文

 

  上下文切换的开销:

  1、直接开销

  内核完成切换所用的CPU时间

  2、间接开销

  高速缓存、缓冲区缓存

 

二、调度算法 

  算法好坏的衡量标准:

  1、批处理系统:

    a、吞吐量:每单位时间完成的进程数目。

    b、周转时间:从提交到终止间的最小时间。

    c、CPU利用率:保持CPU始终忙碌。

2、交互式系统

  a、响应时间:快速响应请求。

  b、均衡性:满足用户的期望。

 

2.1、批处理系统中的调度

       1、先来先服务算法(按进程就绪的先后顺序使用CPU、非抢占式)

    有一个就绪进程的单一队列。当正在运行的进程阻塞时,队列中的第一个进程就接着运行,在被阻塞的进程变为就绪时,就像一个新来到的进程一样,排在队列的末尾。

 

       2、最短作业优先(具有最短完成时间的进程优先执行,非抢占)

       只有在所有的作业都同时运行的情形下,最短作业优先算法才是最优化的。

 

       3、最短剩余时间优先(抢占式)

       当一个新就绪的进程比当前进程具有更短的完成时间,系统抢占当前进程,选择新就绪的进程之星。


       短作业优先的缺点:当源源不断的短任务来,长任务得不到执行,则会发生饥饿现象。

 

2.2、交互式系统中的调度

       1、轮转调度(每个进程分配一个时间段,允许该进程在该时间段中运行)

       如果时间片结束时,进程还在运行,则将剥夺CPU并分配给下一个进程。如果该进程在时间片结束前阻塞或结束,则CPU立即进行过切换。

       时间片设置的太短,会导致过多的进程切换,降低了CPU效率。设置的太长又可能对短的交互请求响应时间变长。

 

       2、优先级调度(选择优先级最高的进程投入运行)

       优先级反转问题:

       一个低优先级进程持有一个高优先级进程所需要的资源,使得高优先级进程等待低优先级进程运行。而中优先级一直运行导致低优先级无法运行。

 

       3、多级队列

       a、设置多个就绪队列,第一个优先级最高

       b、给不同就绪队列分配不同的长度的时间片,第一级时间片最短

       c、当第一级队列为空的时候,第二级队列得到调度

       d、各级队列按时间片轮转方式进行调度

       e、当创建一个新的进程就绪后,进入第一级队列

       f、进程用完时间片而放弃CPU,进入下一级就绪队列

       g、由于阻塞而放弃CPU进程进入相应的等待队列,一旦等待事件发生,该进程回到原来一级的就绪队列。

 

三、线程调度

线程分为用户级线程与内核级线程。

3.1用户级线程

  内核内部不知道有线程一说,和往常一样选择一个进程A执行。A中的线程调度程序选择一个进程A1来进行执行。线程没有时钟中断,所以会任意执行多长时间。如果该线程用完了进程的时间片,内核会选择另一个进程执行。

  在进程A又一次执行的时候,线程A1继续执行。

 

3.2内核级线程

  内核级线程在线程切换的时候需要完整的上下文切换,修改内存映像,使高速缓存失效等,这些会产生延迟,影响性能。另一方面,在内核级线程一旦阻塞在I/O上就不需要像用户级线程中那样讲整个进程挂起。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实监测**:在实际应用中,系统可以实接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值