当前位置: 首页 > news >正文

长春网站制作最新招聘信息优秀的网站建设推荐

长春网站制作最新招聘信息,优秀的网站建设推荐,长沙房价2023年最新房价,网站后台功能开发提示#xff1a;风萧声动#xff0c;玉壶光转#xff0c;一夜鱼龙舞 文章目录 前言中断进程调度进程切换线程切换模式切换所以他们有什么关系#xff1f; 前言 本文内容主要参考以下几个博文中学得 进程与线程#xff08;中#xff09;的2.2.7 进程切换VS模式切换#… 提示风萧声动玉壶光转一夜鱼龙舞 文章目录 前言中断进程调度进程切换线程切换模式切换所以他们有什么关系 前言 本文内容主要参考以下几个博文中学得 进程与线程中的2.2.7 进程切换VS模式切换一 任务切换进程切换线程切换的区别 中断、进程调度、进程切换、系统调用之间的关系 以及网上搜索的一些小的知识点 中断 中断是指CPU在执行当前程序时系统出现了某种状况使得CPU必须停止当前程序而去执行另一段程序来处理的出现的紧急事务处理结束后CPU再返回到原先暂停的程序继续执行这个过程就称为中断。 进程调度 进程调度是指在多进程并发的环境中确定在任意时刻由哪个进程执行哪些进程不执行的过程。在单个CPU下每个时刻只能有一个进程处于执行状态其他进程处于非执行状态。进程调度是进程管理的一个重要组成部分。 进程调度包括几种类型长程调度作业调度、中程调度换入/换出、短程调度进程调度和I/O调度决定可用I/O设备处理哪个进程挂起的I/O请求。长程调度决定将哪些进程加入待执行进程池中中程调度决定处理器执行哪些位于内存中的进程集合短程调度决定处理器执行哪个可运行进程而I/O调度决定可用I/O设备处理哪个进程挂起的I/O请求。 在进程调度中优先级调度算法是一种常见的调度策略。该算法为每个进程赋予一个优先级每次需要进程切换时选择优先级最高的进程进行调度。这样可以确保高优先级的进程不会饥饿即长时间得不到执行的情况。短任务优先算法本身就是一种优先级调度算法它给予短进程更高的优先级。 进程切换 对于CPU来讲进程切换的本质就是CPU状态的切换就是指CPU从一个程序中的状态切换到另一个程序的状态。再具体一点CPU状态指的就是CPU寄存器和程序计数器的状态。而寄存器和程序计数器又可以称为CPU上下文。 对于进程切换方案一个简单的方法就是 1保存当前状态把当前CPU的状态保存到一个地方。 2重新加载CPU状态把新任务的状态加载进CPU运行。 假设计算机运行着AB两个进程当前运行A进程准备要切换到B进程然后再切换回A进程这个过程是这样 1先把CPU当前的状态也就是把进程A的状态保存到一个指定的内存地址这个地址我们叫它C; 2,假设进程B的状态保存在内存地址D中那我们就去内存地址D中获取进程B的状态并把它加载进CPU中运行到此第一次进程切换就已经完成了。 3当再次切换回进程A的时候那就先把当前进程B的状态保存到内存地址D中然后从内存地址C中获取进程A的状态然后重新加载到CPU中运行这时第二次进程切换已经完成CPU又恢复到了进程A的状态。 上下文切换通常是计算密集型的即它需要相当可观的CPU时间在每秒几十上百次的切换中每次切换都需要纳秒量级的时间所以上下文切换对系统来说意味着消耗大量的CPU时间。有些处理器提供多个寄存器组这样上下文切换就只需要简单改变当前寄存器组的指针。 下面这一段需要其他预备知识不看也没有关系 我们知道不同的进程的虚拟地址空间是完全独立的地址空间分为内核地址空间和用户地址空间。对于内核空间不同进程是共用同一个内核空间只有用户空间才是各用各的。所以在进程切换时地址空间切换的时候只需要切换用户空间就可以了 程序要访问物理内存需要通过内存管理单元来将虚拟地址转换成物理地址 而内存管理单元MMU需要通过分页机制和页表来完成虚拟地址到物理地址的转换。每个进程都有独立的地址空间为了这个进程独立完成映射这就需要每个进程都有独立的进程页表。也就是说进程切换的时候需要进行页表切换。这里需要引入一个页表基址寄存器所以不是把所有的地址空间都进行保存替换 线程切换 我们知道要访问物理地址需要去查页表而页表往往是多级的比如说64位的Linux操作系统默认是采用4级页表也就是说这个过程需要多次访问内存才能找到对应的物理地址。为了加快页表查找操作系统会把一些页表项加入到一个高速缓存–TLBtranslation Lookaside Buffer)。只有在TLB中找不到对应的页表项才会到内存中查询页表这样就减少了由于页表查询导致的处理器性能下降。但是在进程切换的时候当我们进行地址空间切换后TLB高速缓存中的数据就会失效。缓存失效就会导致命中率降低cache miss那么虚拟地址转换为物理地址就会变慢表现出来的就是程序运行会变慢。同样的道理除了TLB由于地址空间切换也会导致CPU其它的高速缓存L1,L2等失效。而线程切换并不需要切换地址空间所以就不会有缓存失效这个问题。 模式切换 模式切换时CPU逻辑上可能还在执行同一进程。用户进程最开始都运行在用户态若进程因中断或异常进入核心态运行执行完后又回到用户态刚被中断的进程运行。用户态和内核态之间的切换称为模式切换 所以他们有什么关系 中断是指CPU接受到的来自硬件或软件的信号提示CPU发生了某件事情并中止现行程序的执行。中断信号分为内中断信号和外中断信号两种。内中断信号又叫异常与当前执行指令有关来自CPU内部外中断信号与当前执行指令无关来自CPU外部。 因为中断是一种由CPU接收的信号那我们就不得不了解一下CPU。CPU有两种工作状态一种是用户态又叫目态另一种是核心态又叫管态。单核CPU一次只能执行一个程序运行在CPU核心态的程序我们把它成为内核程序运行在CPU用户态的程序我们把它称为应用程序。 OK了解完上述基础概念后我们就能来认识一下系统调用了。维基百科上说系统调用是指运行在用户态的程序向操作系统内核操作系统的内核程序运行在核心态请求需要更高权限运行的服务也就是说系统调用是一种由用户态程序发出的请求。用户态的程序通过进程调用的方式向操作系统提出服务请求由操作系统代为完成。 这种请求是通过内中断信号告诉操作系统的因此系统调用本质上就是一种内中断信号用户程序传递系统调用参数在用户态下执行访管指令访管指令是唯一一个只能在用户态下进行不能在核心态执行的指令执行访管指令后进程发出一个内中断信号。CPU收到内中断信号后立刻从用户态切换为核心态注意中断是使CPU从用户态进入核心态的唯一途径CPU的使用权限交给操作系统操作系统内核程序负责对中断信号进行处理。中断信号告诉操作系统刚刚运行的程序想要更高权限的服务与资源有关的服务如当前父进程想创建一个子进程操作系统处理系统调用的相关代码运行在核心态。 了解完系统调用我们再了解一下进程调度与进程切换。在了解这两个概念之前我们需要先知道什么是进程。进程最简单的理解就是一个程序的执行过程则进程就会像CPU一样有若干种状态。在这里我们只简单说明进程其中的三种状态就绪态除CPU外的其他资源都有只差一个CPU就能执行运行态此进程正在运行其他资源与CPU都有阻塞态既没其他资源又没CPU。 就绪态的进程组成一个就绪队列等待处理机调度。 进程调度是指按照某种算法从处于就绪态就绪队列的进程中选择一个为其分配处理机进程切换是指换一个进程让处理机处理。是不是觉得这两个概念很相似狭义的进程调度指的是在选择进程的时候当前选中的进程可能是刚执行完的进程也可能是另一个进程。进程切换指的是换一个进程让处理机处理那么选择进程的时候当前选中的进程必然不是刚刚被中断的进程而是就绪队列中的另一个进程。广义的进程调度包括选择一个进程与进程切换两个步骤。举个例子进程调度类似大家开会选领导班子进程切换是真正的上任新旧交接的过程。先开会再上任。开会结果表示你是主席不代表开完会你就是了只是先决条件有了流程还是要走的真正上任。 进程切换的过程主要完成了1.对原来运行数据的保存对原来官员的政绩不能抹去 2.对新进程数据的输入对新官员能力的介绍 进程切换意味着当前运行程序要离开CPU离开CPU的原因有两种主动离开如等待I/O设备进程从运行态进入阻塞态被动离开当前进程被分配的时间片已到换另一个进程上处理机进程切换进程从运行态进入就绪态注意进程不管出于哪种原因离开CPU都需要硬件如I/O设备计时部件或软件如当前运行的进程发出中断信号告知CPUCPU的使用权限被交给操作系统由操作系统介入完成对中断信号的处理。这也就意味着进程切换必然导致CPU从用户态进入核心态。 那么中断和进程切换有什么关系呢 答中断是进程切换的必要不充分条件即发生进程切换一定发生了中断但发生中断不一定发生了进程切换。 解释这个答案之前我们需要先知道中断是如何影响进程切换的。假设CPU正在运行一个程序如果没有中断那么CPU只能一直运行这一个进程如果来了一个中断信号CPU就会派操作系统执行中断信号对应的中断程序核心态处理完后CPU就执行另一个程序或原先被暂停的程序用户态。现代操作系统通过时钟部件为进程切换提供时机时钟部件和CPU是独立的两个部件目前CPU都内置计时器但我们就认为时钟部件是个外部硬件时钟部件通过计数器计时器定期向CPU发出外中断信号。在CPU执行指令时计数器同时在计时当计数器溢出就向CPU申请中断如果CPU响应中断CPU就转到核心态对中断进行处理也就会进行模式切换执行完了再返回原程序或另一个程序。时钟中断需要满足两个条件1.允许中断源时钟部件等申请中断 2.允许CPU响应搭理中断。举个例子你在上课相当于主程序这时下课铃响了你就不读书了跑出去玩了离开CPU。你上课执行程序和打铃时间部件没关系并不是你让打铃的学校的时钟不停地走到了时间自动打铃同样不受你上课的影响。但是如果你把耳朵堵上不允许CPU响应搭理中断就是铃打碎了你也不知道要下课了你就一直读书执行。要让你停止读书有两个条件1.允许铃声响 2你听得到铃声。 OK那为什么说发生了进程切换就一定发生了中断假设在T1到T2的某个时刻发生了进程切换则在T1-T2时刻一定发生了处理机调度程序分配处理机的程序发生在核心态中断在前处理机调度程序在后这与中断处理时无法进行处理机调度并不矛盾因为中断恢复所需要的所有数据都保存在被中断进程的内核栈中如果发生进程切换就找不到之前被中断的进程的数据了使得被中断的程序无法恢复说明在T1到T2时刻之间处理机曾由用户态转换到核心态。由于中断是使CPU从用户态进入核心态的唯一途径所以T1到T2必然发生了中断。发生中断后操作系统对中断程序处理完后不一定会执行另一个进程而是执行原先被暂停的进程。所以中断是进程切换的必要不充分条件。 同样中断也是进程调度的必要不充分条件即发生中断并不一定会导致进程调度。 中断是一种异步事件当中断发生时CPU 需要暂停当前执行的进程转而处理中断请求。中断处理完成后操作系统需要决定如何继续执行进程。在这个过程中操作系统可能会进行进程调度也可能不会1. 如果操作系统处理完中断后仍然认为原来的进程具有执行的优先权那么操作系统会继续执行原来的进程。在这种情况下虽然操作系统确实进行了决策进行了进程调度但因为选择的仍然是原来的进程所以可以认为没有发生进程调度。 2. 如果操作系统处理完中断后认为其他进程具有更高的优先权那么操作系统会进行进程调度选择一个新的进程来执行。 所以发生中断并不一定会导致进程调度。这取决于操作系统在处理完中断后如何评估各个进程的优先级和执行需求。
http://www.hkea.cn/news/14517340/

相关文章:

  • 企业网站空间域名带前台的WordPress模板
  • 主播网站建设公司网站建设应符合哪些法规
  • wordpress多站点是什么wordpress解析插件
  • php 视频播放网站开发网站建设 首选百川互动
  • 织梦网站地图html怎么做订单网站模块
  • 单页营销型网站模板市场监督管理局待遇如何
  • 天津网站建设举措做什么网站能吸引流量
  • python在线网站自己开发游戏需要学什么
  • 如何避免网站被耍流量附近计算机培训班咨询
  • 郑州 做网站哈尔滨建站平台详细解读
  • 黄页网页的推广网站个人网站做外链方法
  • 学习建网站玩网站建设学习wordpress 编辑器字体
  • 网站开发人员的行业分析aspnet网站开发例题
  • 广州网站排名怎样开发一个app软件
  • 广州做网站海珠新科怀化建设企业网站
  • qingdao城乡住房建设厅网站网站建设与管理领导小组
  • 手机网站建设图片百度申请微信号免费注册
  • 聊城做网站的公司案例wordpress如何关闭主题
  • 做网站 注意朔州做网站的
  • 西安知名的集团门户网站建设公司通化公司做网站
  • 网站建设资料怎么在主机上的建设网站
  • 开封网站建设公司排名wordpress点击文字弹出层
  • 注册网站模板河北建设厅网站登陆怎么找附件
  • 做网站友情链接的步骤湖南个人网络营销订制
  • 专业的网站建设网络有哪些电商网站
  • 福建泉州网站建设公司订阅号怎么做网站
  • 知名网站建设是哪家便宜百度推广费
  • 中企动力做的网站怎么样哈尔滨网站建设哪家好
  • 唐山网站建设最好的成品短视频app大全
  • 最新网站域名ip地址查询郑州网站技术顾问