- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 进程和调度.pdf
第二章 进程和调度 1、进程概念 2、进程同步 《高级操作系统》 3、进程调度 4 、调度策略 第二章 进程和调度 教师:苏曙光 华中科技大学软件学院
进程概念 1、进程概念 进程是程序在某个数据集合上的一次运行活动。 进程是程序和数据一起通过CPU的执行所发生的活动。 进程是一个程序在给定活动空间和初始环境下,在CPU上执 行的过程。
进程的特征 进程与程序的区别 动态性 动态/静态 进程是程序的一次执行过程,动态产生/消亡 进程是程序的一次具体执行过程 并发性 程序只是一组指令的集合 任何进程都可以同其他进程一起向前推进; 生命期 独立性 进程有生命期的,其存在是暂时的 进程是是系统分配资源和调度CPU的单位; 程序可以在介质上长期保存。 异步性 程序和进程的对应 一个程序可能对应多个进程。 进程按各自独立速度向前推进; 一个进程可以涉及多个程序。
进程的状态和变迁 Linux进程的状态 TASK_RUNNING状态 在CPU上执行或在就绪队列中等待调度。 TASK_INTERRUPTIBLE状态 可中断的等待状态,可被其他进程产生的信号或硬件中断所唤醒,使其状态 变为TASK_RUNNING状态。 TASK_UNINTERRUPTIBLE状态 不可中断的等待状态:等待进程不能被其他进程产生的信号唤醒或改变状 态。例打开设备文件会用到该状态。 TASK_ZOMBIE状态 进程终止执行,释放大部分资源。 TASK_STOPPED状态 进程被暂停。进程收到SIGSTOP/ SIGTSTP/ SIGTTIN/ SIGTOU等信号进入 暂停。 进程的描述 创建do_fork SIG_KILL SIG_CONT 进程控制块 Process Control Block,PCB wake_up 就绪TASK_RUNNING 描述进程所处状态、进程和相关进程间的关系、进程和系 统资源间的关系的一种数据结构。 资源可用 调度 资源可用,收到信号 PCB是进程的标志 wake_up wake_up 创建进程时创建PCB;进程撤销后PCB同时撤销。 不可中断等待 可中断等待 进程 = 程序 + PCB TASK_UNINTERRUPTIBLE TASK_INTERRUPTIBLE 申请资源未果 时间片 申请资源未果
SIG_KILL sleep_on interruptible_sleep_on SIG_CONT
wake_up 占有CPU运行 syscall_trace do_exit sys_exit、schedulle 停止TASK_STOPPED 僵死TASK_ZOMBIE PCB的数据结构 进程 = 程序 + PCB Name(ID):进程名称(标识符) Status:状态 PCB结构 Next:指向下一个PCB的指针 name PCB1PCB2PCB3 PCB start_addr:程序地址 status Priority:优先级 next cpu_status:现场保留区 all_q_next 代码 comm_info:进程通信机制 start_addr process_family:家族 …………….…. 进程 priority own_resource:资源 cpu_status 数据 comm_info process_family own_resource
Linux进程 Linux进程 Linux进程的四要素 PCB结构 程序 身份:pid,uid,gid,euid,egid等; PCB 状态:running, interruptible, non-interruptible, stopped, zombie 内核为进程分配的核心数据结构。 调度:policy, priority, rt_priorty, 大小:约1000字节 policy :SCHED_FIFO, SCHED_RR, SCHED_OTHER 地址空间 priority, rt_priorty:优先数 系统堆栈空间 IPC:定义对某些信号的处理 核心态堆栈,和PCB相连,约占7200字节。 家族:父进程、兄弟进程、子进程信息 关于进程最大数目 文件系统 2.2 内核:4092个 存储管理 2.4 以后内核,进程个数仅受限于物理内存数 时钟和定时信息 原则: (PCB+系统堆栈)空间≤1/2物理内存 …… 例子:256M 内存:进程数≤256M/2/8K 16K
Linux进程 PCB结构的实现—— PCB结构的实现 调度相关 struct task_struct //1680字节 p- counter, p- priority, p- policy, p- rt_priority 内存相关 ……… p- mm 和p- active_m
文档评论(0)