孤儿进程的处理
- 父进程如果在子进程之前退出,必须找到新的父亲,否则永远僵死
- 寻找父亲的函数在do_exit中调用的notify_present函数,内部调用forget_original_parent,该函数实现具体寻找过程
- 该函数设置父亲为线程组内的其他进程,没有就用init进程
imgSpider 采集中…
imgSpider 采集中…
三. 进程调度1. 概述
- 调度程序是内核组成部分,它负责选择下一个要运行的进程
- 调度程序负责给可运行进程分配处理器时间资源
- 多任务系统可分为:抢占式任务(linux等现代操作系统的方式)和非抢占式任务
- 分配给每个进程的执行时间叫做时间片
- cpu密集型:大部分时间执行代码
- IO密集型:大部分时间提交io和等待io,经常可运行,但运行时间极短
- 从系统响应速度考虑,linux调度策略更倾向于优先调度IO密集型进程
- 调度算法中最基本的一类:基于优先级调度,根据进程的价值和其对处理器时间的需求分级的思想
- 调度程序总是选择时间片未用完且优先级最高的进程运行
- linux实现了一种基于动态优先级的调度算法 。一开始设置基本优先级,然后根据需要动态加,减优先级:如果一个进程IO等待时间多余运行时间,它属于IO密集型,会提高优先级;相反,如果进程时间片一下就别耗尽,属于cpu密集型,会降低优先级
- linux提供两组独立的优先级范围: nice值:-20~19,默认为0 。标准优先级范围 。值越大,优先级越低,时间片越短 。task_struct的static_prio字段表示 实时优先级:0~99
- 表明进程在被抢占之前能持续运行的时间
- 调度策略必须规定默认时间片 。如果过长,交互式的响应表现欠佳;如果过短,会明显增大进程切换带来的处理器耗时
- 很多系统默认时间片很短:20ms
- linux提供动态调整优先级和时间片长度的机制,使得调度性能稳定且强健
- 进程不一定要一次用完时间片,可分多次使用,尽可能长时间保证可运行
- 当一个进程处于TASK_RUNNING状态,内核会检查它的优先级是否高于正在运行的进程,满足的话调度程序被唤醒重新选择进程运行
- 当一个进程的时间片为0,它会被抢占,调度程序可以选择新的进程执行
- linux调度程序定义与kernel/sched.c
- 2.5版本内核重写调度算法,和以前版本区别很大,实现以下目标 充分实现O(1)调度,不管多少进程或什么输入,每个算法能在恒定时间内完成 每个处理器拥有自己的锁和自己的可执行队列 尽量将同一组任务分配给同一个cpu连续执行,减少在cpu间移动进程 加强交互性能,即使系统负载,也保证系统响应 保证公平 。消除饥饿线程,减少大量时间片进程
- 可执行队列数据结构为kernel/sched.c文件下的runqueue
- 表示给定处理器上的可执行进程链表,每个处理器一个
- 可执行队列是调度程序核心的数据结构,提供很多宏获取该指针 cpu_rq(processor):返回给定处理器可执行队列指针 this_rq:当前处理器可执行队列指针 task_rq:给定任务所在队列指针
- 对队列进行操作时,需要锁住队列,加锁函数 task_rq_lock task_rq_unlock this_rq_lock this_rq_unlock double_rq_lock double_rq_unlock
- 每个可执行队列都有两个优先级数组,一个活跃的和一个过期的
- 数据结构为kernel/sched.c文件下的prio_array
- 能提供O(1)级算法复杂度的数据结构
- 优先级数组使可运行处理器的每一种优先级都包含一个相应的队列,该队列包含该优先级上可执行进程链表
- 优先级数组还拥有一个优先级位图,帮助高效查询最高优先级可执行进程
- MAX_PRIO:系统拥有的优先级个数,默认140
- BITMAP_SISE:优先级位图数组大小,unsigned long为32位,要表示140个优先级,需要5个长整形,总共160位
- 每个优先级数组都要包含一个位图成员 。开始时,所有位图为0,当某个优先级进程开始执行,相应位图变为1,查找最高优先级就变为查找位图为1的第一个值,查找时间恒定 。函数为sched_find_first_bit
- 要查找给定优先级任务,并轮询时,只需要遍历某个优先级链表即可
- nr_active表示优先级数组内可执行进程数目
- 艺术电子签名一键生成器 设计名字签名的免费软件
- 免费姓氏头像logo在线制作工具 用自己的名字设计头像的软件
- 设计图片的软件有哪些 手写背景图制作软件推荐
- 专业的网页制作工具有哪些 网页设计制作网站推荐
- 网站设计哪家好做 关于网站设计制作
- 内饰设计十分豪华 迈巴赫vs680报价 迈巴赫vs680落地价48万元
- 平面图用什么软件做最简单 手机平面设计制图软件介绍
- web设计一个简单网页 web创建一个简单网页教程
- 在线做网站怎么做 网页设计与制作分享
- 网页设计的目的与意义是什么 介绍花网页设计选题意义