Linux内核结构进程管理.pptVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux内核结构进程管理.ppt

Linux 内核结构与进程管理 Linux系统结构 Linux内核组成 Linux启动流程 Linux中用户登陆流程 linux进程的四要素 程序 PCB (task_struct) 地址空间 系统堆栈空间 系统堆栈空间:进程运行在核心态时使用的堆栈,和PCB连在一起,共8KB,其中PCB约占1000字节,系统堆栈空间约占7200字节。 PCB:进程创建时内核为其分配的一个核心数据结构,进程自身不能直接存取。 2.2 内核中linux进程个数有最大值限制(4092)。但2.4以后,系统中的进程个数受限于系统的物理内存数,即限定所有进程的PCB及系统堆栈(8K)占用的空间≤1/2的物理内存总和。例64M内存:进程数≤64M/2/8K=4K PCB中的重要信息 身份信息:pid,uid,gid,euid,egid等; 状态信息:running, interruptible, non-interruptible, stopped, zombie 调度信息:policy, priority, rt_priorty, need_resched policy即进程的类别,分SCHED_FIFO, SCHED_RR, SCHED_OTHER三种,前两种为实时进程,后一种为非实时进程 SCHED_RR:适合实时性要求高,且运行时间可能比较长的进程; SCHED_FIFO:适合实时性要求高,且运行时间可能比较短的进程; IPC信息:信号处理等 家族信息:父进程、兄弟进程、子进程信息 时钟和定时信息 文件系统 存储管理 进程的创建 进程创建:fork ,vfork, clone 父子进程共享资源的形式:a.不共享;b.部分共享;c.完全共享 进程调度 调度时机 a. 用户进程自愿放弃CPU,如执行sleep()系统调用; b.系统调用中,需要等待时,直接调用schedule()进行调度; c.系统调用、中断或异常处理完成后,返回到用户空间前,若当前进程的need_resched = 1,发生调度。 由于linux的内核不能抢占,所以linux的实时性不够好 调度策略:基于进程的权值(weight,即动态优先级),将CPU指派给权值最高的进程。 实时进程: weight = 1000+rt_priority (1000) 分时进程: weight = counter + 20 – nice (1000) 其中:rt_priority:是实时进程的优先级 counter:进程还剩余的时间片值(时钟滴答tick值) nice:进程优先级的调整值,取值-20到+19 (均在进程的PCB中标识) Linux中的线程 linux不区分进程和线程,但Linux中的系统调用clone,vfork(最终调用do_fork)能够创建一个共享父进程地址空间的“子进程”。因此,这个子进程的作用和OS原理中的kernel-level thread(核心级线程)相当。但它不能说是一个线程,因为它不符合POSIX规范,因为它的PID和父进程的PID不同。Linux将这种共享父进程地址空间的子进程称为轻量级进程(light weight process)。 目前,世界上很多组织热衷于开发面向POSIX标准的线程。对linux来说,最著名的就是LinuxThread,即经常听到的Pthread。其实Pthread就是利用clone系统调用创建线程的。所有从本质上讲,pthread创建的是核心级线程。IBM已经实现了NPTL(Native Posix Thread Library),是一个面向POSIX标准的thread。 * * 1. 进程调度程序( S C H E D)负责控制进程访问C P U。保证进程能够公平地访问C P U,同时保证内核可以准时执行一些必需的硬件操作。 2. 内存管理程序( M M)使多个进程可以安全地共享机器的主存系统,并支持虚拟内存。 3. 虚拟文件系统( V F S)。通过提供一个所有设备的公共文件接口, V F S抽象了不同硬件设备的细节。此外, V F S支持与其他操作系统兼容的不同的文件系统格式。 4. 网络接口( N E T)提供对许多建网标准和网络硬件的访问。 5. 进程间通信( I P C)子系统为进程与进程之间的通信提供了一些机制。 这些子系统虽然实现的功能相对独立,但存在着较强的依赖性(调用依赖模块中相应的函数),所以说linux内核是单块结构(monolithic)的。 从BIOS到KERNEL MBR-KERNEL-KERNEL自解压-内核初始化-内核启动(start_kernel函数,在init/main.c) 2. 内核启动:自身为0#进程,

文档评论(0)

lingyun51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档