张惠娟副教授Mszhj163com.ppt
《张惠娟副教授Mszhj163com.ppt》由会员分享,可在线阅读,更多相关《张惠娟副教授Mszhj163com.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、张惠娟副教授Mszhj163com Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望内容 进程组成 进程环境 进程管理内容 进程控制块 进程状态 进程调度 进程控制 进程通信2进程组成Linux是一个多任务多用户操作系统,采用进程模型。进程都具有一定的功能和权限,运行在各自独立的虚拟地址空间,彼此独立,且通过通信机制实现同步互斥,通过调度程序实现合理调度。3 进程组成正文段 存放进程要运行的程序,描述了进程要完成的功能用户数据段 存放正文段在执行时所需要的数据和工作
2、区系统数据段 存放了进程的控制信息,其中最重要的数据结构是task_struct。进程组成4进程环境 Linux进程有两种状态:内核态和用户态核心态又称系统态 Linux在执行内核程序时是处于核心态下用户态是进程的普通执行状态一个进程在运行过程中,总是在两种执行状态之间不断地转换。5 进程虚拟地址空间分为:用户空间和系统空间。用户空间 用户进程本身的程序和数据(可执行映象)进程运行用户程序时使用的堆栈,即进程堆栈。系统对进程进行控制和管理的信息,如进程控制块等系统空间内核被映射到所有进程的系统空间中。只允许进程在核心态下访问。进程运行在用户态下时,不允许直接访问系统空间。进程只能通过系统调用转
3、换为核心态后,才能访问系统空间进程环境6进程环境进程上下文 系统提供给进程处于动态变化的运行环境总和称为进程上下文系统上下文系统完成自身任务时的运行环境称为系统上下文内核在系统上下文中执行时不会阻塞。78进程管理内容进程管理由进程控制块、进程调度、中断处理、任务队列、定时器,bottom half队列、系统调用、进程通信等部分组成。进程管理是Linux存储管理,文件管理,设备管理的基础。9进程控制块 进程控制块是Linux系统最复杂的数据 结构之一。Linux在内存空间中开辟了一个专门区域存 放所有进程的进程控制块。系统初始化后,建立第一个task_struct数 据结构INIT_TASK。新
4、进程创建时,系统从内存分配新 task_struct,占据1680个字节。10进程状态和标志进程标识进程控制块11进程的族亲关系进程控制块12进程间链接信息进程调度信息进程控制块13进程的时间信息 进程的虚存信息进程控制块14进程的文件信息 与进程间通信有关的信息进程控制块15其它信息 进程控制块16进程状态定义了六种状态进程状态#define TASK_RUNNING0#define TASK_INTERRUPTIBLE1#define TASK_UNINTERRUPTIBLE2#define TASK_ZOMBIE4#define TASK_STOPPED8#define TASK_SWA
5、PPING161718进程调度调度方法调度策略调度参数调度方法调度时机 19调度方法Linux进程调度方式 采用抢占调度方式(内核不抢占)进程分为普通进程和实时进程,分别采用不同的调度策略,实时进程的优先级高于普通进程。进程调度20调度策略进程调度21调度参数 policy 进程调度策略,可通过系统调用 sys_sched_setscheduler()更改 (kernel/sched.c)。SCHED_OTHER 非实时进程,基于优先级的轮转法SCHED_FIFO 实时进程,用先进先出算法SCHED_RR 实时进程,用基于优先权的轮转法进程调度22priority进程优先级(静态),给出进程每
6、次获取cpu后可使用的时间(按jitty计算)。通过系统调用sys_setpriority()改变。Linux 的基准时间(kernel/timer.c)。系统初始化时清零,以后每隔10ms由时钟中断服务程序,do_timer增1。进程调度23rt_priority 实时进程的优先级,可通过系统调用sys_sched_setscheduler()改变.Counter进程动态优先级表示进程当前还可运行多久进程开始运行时被赋为priority值,以后,每隔一个tick(时钟中断)递减1,减到0时引起新一轮调度。重新调度将从run-queue队列中选出counter值最大的就绪进程获得cpu。进程调
7、度24进程调度调度方法采用动态优先级法,调度对象是可运行队列。进程在运行中,counter代表动态优先级。Linux采取了加权的方法来保证实时进程优先于普通进程。普通进程的权值就是它的counter的值,实时进程的权值是它的rt_priority的值加1000。调度过程中,调度程序检查可运行队列中所有进程的权值,选择其中权值最大的进程做为下一个运行进程。25static inline int goodness(struct task_struct*p,struct task_struct*prev,int this_cpu)int weight;if(p-policy!=SCHED_OTHER
8、)return 1000+p-rt_priority;weight=p-counter;return weight;进程调度26调度时机时机1:进程状态发生变化时处于运行态下的进程要等待某种资源运行态下的进程在程序执行完毕后,通过调用内核函数do_exit()终止运行并转入僵死态。处于等待态的进程被唤醒后,将加入到可运行队列中时进程从运行态转入暂停态时进程从暂停态成为可运行态时进程调度27时机2 当前进程时间片用完时时机3 进程从系统调用返回到用户态时时机4 中断处理后,进程返回到用户态时。进程调度28进程控制 进程创建过程 进程状态间转换29 进程创建过程为新进程分配任务结构体内存空间把父进
9、程任务结构体拷贝到子进程任务结构体为新进程在其虚拟内存建立内核堆栈对子进程任务结构体中部分进行初始化设置把父进程有关信息拷贝给子进程,建立共享关系把子进程的counter设为父进程counter值的一半把子进程加入到可运行队列中结束do_fork()函数返回PID值进程控制30创建过程具体描述系统启动时创建第一个进程(0号进程)此时,系统只有这一个进程:初始化进程,运行在核心态 初始化结束时,初始进程启动一个核心进程:init进程,也称为1号进程,然后执行空闲循环。系统空闲时,调度程序运行这个空闲进程。这个空闲进程的task_struct是唯一一个不是动态分配而是在核心连接时静态定义的,为了不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 张惠娟 副教授 Mszhj163com
限制150内