浅析linux中的进程和中断

浅析linux中的进程和中断

ID:11931192

大小:422.50 KB

页数:7页

时间:2018-07-15

浅析linux中的进程和中断_第1页
浅析linux中的进程和中断_第2页
浅析linux中的进程和中断_第3页
浅析linux中的进程和中断_第4页
浅析linux中的进程和中断_第5页
资源描述:

《浅析linux中的进程和中断》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一进程和进程调度1.进程1.1什么是进程正在执行的程序代码的实时结果,即处于执行期的程序及相关资源。系统进行资源分配和调度的基本单元Linux系统中的进程:交互式进程shell命令进程、文本编辑器批处理进程编译实时进程视频应用程序1.2Linux下的进程结构内核将所有进程存放在进程链表,链表的每一项的类型为task_struct这个类型就称为进程描述符,一个进程描述符包含了具体进程的所有信息,包括进程的状态、进程标识值、进程间的关系、打开的文件信息等1.进程标识内核通过唯一的进程标识值PID来标识每一个来标志每一个进程PID存放在进程描述符中getpid()获得当前进程

2、的进程号getppid()获得当前进程的父进程号2.进程的状态TASK_RUNNING运行状态(运行就绪、正在运行)TASK_INTERRUPTIBLE可中断的阻塞状态TASK_UNINTERRUPTIBLE不可中断的阻塞状态TASK_TRACED跟踪状态TASK_STOPPED暂停状态设置当前进程的状态:set_current_state(current,state);进程家族树:Linux系统的进程之间存在继承关系,所有的进程都是PID为1的init进程的后代,内核在系统启动的最后阶段启动init进程。1.3Linux下进程的创建和终止1.创建fork()拷贝当前进

3、程创建一个子进程exec()读取可执行文件并将其载入地址空间开始运行其中,fork()使用写时复制技术,避免拷贝大量用不到的数据,使系统具有快速执行能力2.终止do_exit()释放与进程相关的资源,进程僵死不可运行,处于退出状态但仍保留了进程描述符,此时进程的存在只为父进程能获得它的信息wait()终止进程,占用的所有资源被释放1.4Linux下的进程调度1.进程的优先级Linux采用两种不同的优先级范围1)nice值-20~+19默认值为0值越大优先级越低2)实时优先级可配置0~99值越大优先级越高内核将进程分为两个级别:普通进程和实时进程,任何实时进程的优先级都高

4、于普通进程,实时优先级和nice 优先级处于互不相交的两个范畴1.时间片进程被抢占前持续运行的时间时间片过长系统对交互响应表现欠佳时间片过短明显增大进程切换带来的处理器耗时Linux的CFS调度器并没有直接分配时间片到进程,而是划分了处理器的使用比,它还会受到nice值得影响2.Linux下的进程调度Linux的调度器类主要实现两类进程调度算法:实时调度算法和完全公平调度算法(CFS)1)对实时进程的调度按优先级执行,一般不会被抢占。直到实时进程执行完,才会执行普通进程。如果有多个可执行状态的同优先级的实时进程,有两种调度策略:a)SCHED_FIFO先进先出b)SHE

5、D_RR轮转调度内核为实时进程分配时间片2)完全公平调度算法Completely Fair SchedulerCFS完全公平调度针对普通进程的调度类CFS基于一个简单的理念:所有任务都应该公平的分配处理器。理想情况下,n个进程的调度系统中,每个进程获得1/n处理器时间CFS使用vruntime变量记录一个进程运行多长时间以及还应该再运行多久,它是一个通过优先级和系统负载等加权过的时间,nice值在CFS中被作为进程获得的处理器运行比的权重,越低的nice值(越高的优先级)进程获得更多的处理器使用权重CFS在所有可运行进程总数基础上计算出一个进程应该运行多久可运行进程数量

6、趋于无限时,处理器使用比趋于0,为此CFS引入了每个进程时间片底线,称为最小粒度,默认为1msCFS就是通过追踪这个vruntime来进行任务调度,CFS选择具有最小vruntime值的进程作为下一个可执行进程,用红黑树来组织调度实体,而键值就是vruntime。在每个tick中断的时候,会更新进程的信息,并检查这个红黑树,判断某些进程是不是要被替换掉。那么CFS只要选择最左叶子节点作为下一个可执行进程即可。实际上CFS缓存了最左叶子,可以直接选取left_most叶子_pick_next_entity()。二:中断和中断处理2.1什么是中断硬件在需要的时候向内核发出信

7、号由于处理器的速度远大于外围硬件设备的速度,内核可以线处理其它事物,等到硬件真正完成请求再对该请求进行处理2.2中断处理的上半部和下半部为了让中断处理既运行的快,又完成多工作量,中断处理程序从概念上分为上半部分(tophalf)和下半部分(bottomhalf),内核把上半部和下半部分开处理。1.上半部——登记中断中断处理程序收到一个中断,它就立即开始执行,但只做有严格时间限制的工作,如对中断的应答和拷贝数据等,应该尽量减少上半部的工作量,此时完全屏蔽中断,要求快速,否则其它中断得不到处理1.下半部——可以推迟处理的部分执行与中断处理密切

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。