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

深圳门户网站有哪些南京网站设计公司济南兴田德润简介图片

深圳门户网站有哪些,南京网站设计公司济南兴田德润简介图片,外贸网站推广怎么做,优化深圳seo目录 一、进程优先级 二、优先级与权限的区别 三、优先级的查看 四、进程优先级修改 五、进程切换 六、linux2.6内核调度队列与调度原理 一、进程优先级 首先我们得知道一个进程总是需要排队的#xff0c;他一会在运行队列中排队等待运行#xff0c;一会在设备的等待队…目录 一、进程优先级 二、优先级与权限的区别 三、优先级的查看 四、进程优先级修改 五、进程切换 六、linux2.6内核调度队列与调度原理 一、进程优先级 首先我们得知道一个进程总是需要排队的他一会在运行队列中排队等待运行一会在设备的等待队列中排队排队的本质就是在确认优先级。 cpu资源分配的先后顺序就是指进程的优先权priority。 二、优先级与权限的区别 我们很容易把优先级和权限搞混淆。 优先级指得到申请资源的先后。 权限为是否能得到资源。 他们之间是先有权限再谈优先级。 三、优先级的查看 进程的优先级其实就是PCB中的一个int字段数值越小优先级越大。这跟我们生活中买奶茶排号、医院挂号是一个道理先叫的都是小号先享受服务后来的都是大号晚一点享受服务。 Linux进程的优先级数据范围60-99    默认进程优先级80 我们可以在命令行输入以下指令查看进程的优先级 ps -al其中我们这里只需要关心 PRI 与 NI 这两项  PRIpriority进程优先级NInice进程优先级的修正数据 这里的NI即nice值是Linux进程pcb中存放的一个值他与PRI的公式如下 pri新 pri老   nice  这里的老pri不是指上次而是值默认的pri一般都是80 四、进程优先级修改 首先在命令行先输入 top 启动任务管理器再在任务管理器中输入 r 打开重新调整renice值的任务框此时需要先输入需要调整的进程的pid值。 将我们运行的死循环进程renice值修改为10  此时nice值变为了10同时PRI值变成了90。  这样我们就完成了优先级的修改数字变大了也就是将优先级变低了。 这里我们尝试将优先级调低试一试 发现告诉我们修改失败不能将优先级调低。此时需要使用 sudo 提权如下 后面重复之前的操作对优先级-10 此时优先级就变成了70。这里优先级不是从之前的90去-10而是使用的默认的80 -10。 我们再次修改让进程的优先级的nice值改为-100。发现进程优先级为60nice值为-20这是因为优先级的范围在60-99.系统不让你修改超过这个范围如果超过了就取最小值。  小总结nice值调整的最小为-20超过部分统一处理为-20               nice值调整的最大为19超过部分统一处理为19 这样处理是为了让操作系统进行调度的时候可以让每一个进程都得到调度。否则如果用户随意更改优先级会导致进程优先级过高并且还可以一直调刚运行完如果又调高会让这个程序一直在运行致使其他进程无法运行进而优先级较低的进程长时间得不到CPU的调度这也叫做进程饥饿。 五、进程切换 在学习进程切换前我们得先了解以下概念 竞争性: 系统进程数目众多而CPU资源只有少量甚至1个所以进程之间是具有竞争属性的。为了高效完成任务更合理竞争相关资源便具有了优先级独立性: 多进程运行需要独享各种资源多进程运行期间互不干扰并行: 多个进程在多个CPU下分别同时进行运行这称之为并行并发: 多个进程在一个CPU下采用进程切换的方式在一段时间之内让多个进程都得以推进称之为并发 小总结一下进程之间具有竞争性因为成本控制导致资源少需要竞争和独立性 该进程在运行时该进程需要的资源只为他服务。 并行是多个CPU分别运行 并发是一个CPU通过进程切换轮流让进程运行。 一般的用户都是用的单CPU因此这里我们着重学习并发。 首先我们需知道每一个进程不是占有CPU一直运行的每个一段时间时间片需要从CPU上剥离下来。不然你写一个死循环一直运行该进程其他进程还活不活了。Linux内核支持进程之间进行cpu资源抢占的。 同时cpu的速度是非常快的比如说我们有10个进程现在的时间片是1微秒那么在一秒的时间他可以将这是个进程轮流运行十万次因此我们人的感知是几乎感知不到的就感觉这么多的进程都在同时运行这样基于时间片的轮转式抢占内核就可以称作并发。 而并发必须要考虑进程间的切换。 cpu中有很多寄存器比如eaxebxssdscs等等。通过这些寄存器可以让数据进行暂时存储同时寄存器的速度也是非常快的在cpu内部快速的传递数据。 比如我们写了一个函数返回类型为int这时就会使用eax寄存器来保存该临时变量的值你临时变量销毁就销毁了无所谓我寄存器在帮你擦屁股勒最后给调用该函数的地方。如下代码我们查看汇编就可以看到使用了eax寄存器。 再一个就是我们的进程内的代码需要不停的在函数之间跳转此时也会用到pc或者eip来保存下一条指令的地址。 当我们进程在运行的时候会使用这些寄存器的我们的进程会产生各种数据在寄存器中临时保存如果有多个进程各个进程在cpu寄存器中形成的临时数据进程硬件上下文都是不一样的。 而cpu寄存器硬件只有一套而继承上下文数据有很多是 1 对 n 的关系因此当时间片到达该切换下一个进程的时候该进程的硬件上下文需要被保存到内存中当我们下次再次运行该进程时能够接着上次运行到的地方继续运行。 这个操作应该不难理解这就相当于存档我们玩幻兽帕鲁的时候右上角会经常告诉我们存档中这就是怕我们突然断网或掉线如果不存档就无法恢复到之前玩到的地方我抓到的腾炎龙和阿努比斯没了游戏体验就会大幅降低。 小总结进程切换前首先工作要先将进程的硬件上下文保存到内存进程重新运行前需要将存放在内存中的进程硬件上下文重新写入到寄存器中另外需要注意上下文保存的是寄存器的内容而不是寄存器本身。 六、linux2.6内核调度队列与调度原理 如下是linux的运行队列具体内容 其中我们主要看蓝色框和红色框里的内容其中queue具体为task struct *queue[140]是优先级指针数组前面0-99是系统用的我们不关心后面的100-139对应了之前我们学习的60-99的优先级操作系统将优先级相同的进程地址链入了对应的地方。如下所示 上图中有红色和蓝色方框为什么这里有两个方框呢  他们一个是active指针指向的另一个是expired指针指向的。红色和蓝色方框内容相同。比如现在Linux启动了目前有了10个进程这10个进程都在active指向的内容中他们在轮流运行如果我现在添加了一些进程进去被添加的进程不会被active指向而是被expired指针指向他要将active这些内容全部运行完了才会再运行expired的内容。 为什么会这样呢 还是老样子因为操作系统需要保证让每一个进程都能够被调度如果我现在运行到80优先级的进程了现在添加了一些60优先级的进程如果只有一个数组那么我就得返回运行这些优先级更高的进程如果这些进程有很多那么后面90优先级或者更低优先级进程会一直无法被调度。 但是这样也不合理啊如果运行expired指向的进程时有进程被添加进来怎么办呢此时需要往active添加进程呀由于两个指针指向的内容都是一样的我们运行完active里的所有进程后可以通过swapactiveexpired来进行交换这样就解决问题了。  方框内不止有数组还有nr_active与bitmap[5]。 nr_active是一个整形是否为0来判断指针数组里是否有进程。 bitmap[5]是位图C实现位图 是int整形数组一个int整形有32位5个就有160位足够140位的优先级访问。比如queue数组中下标120有进程那么在bitmap中的121位会设置为1借此来告诉操作系统这里有进程。虽然这样也需要循环遍历但是我们可以以8位或者16位的速度进行是否为0判断大大提高效率毕竟进程有默认优先级需要调优先级的进程较少。
http://www.zqtcl.cn/news/388780/

相关文章:

  • 网页设计公司网站设计结婚网站模版
  • 做文字图网站设计师网站资源
  • 建筑材料采购网站做早餐烧菜有什么网站
  • 单页网站怎么做外链网站js特效
  • 网站模板 黑白中国域名交易平台
  • 网站高端设计少儿编程加盟十大机构
  • 海尔网站建设的目标是什么财务公司业务范围
  • 天津做艺术品的网站2h1g做视频网站
  • 网站建设项目的预算百度推广登陆首页
  • 网站图片展示方式有哪些深圳做网站比较好天涯
  • 专业长春网站建设工作室安徽省工程建设信息网查询信息
  • 计算机网站开发实现总结关键词优化的作用
  • 网站流量统计模板商务网站安全方案设计
  • 做网站最专业的公司用php做的网站用什么数据库
  • 做网站可以不用框架吗网站301做下
  • 萍乡做网站深圳市福田区住房和建设局官网
  • 网站架构需求wordpress过去指定分类文章
  • 房管局备案查询网站功能型网站开发
  • 聊城手机网站建设服务自己开网站做职称论文可以吗
  • 企业网站禁忌手机端网站开发页
  • 深圳外贸商城网站建设wordpress 空搜索
  • 做微信的网站有哪些shop商城系统
  • 网站落地页如何做优化大师免费下载安装
  • 本地计算机做网站服务器做算命网站
  • 广州网站建设公司万齐网络科技做围棋题网站
  • 运动服装商城网站建设引流推广
  • 武进区城乡建设局网站聊城商城网站建设
  • 做网站开发赚钱吗网站建设电子书资料
  • wordpress 回收站在哪个文件夹建站之星模板好吗
  • 怎么用dw做博客网站天使投资平台官网