Linux进程模型.pptVIP

  1. 1、本文档共18页,可阅读全部内容。
  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进程模型 第2组 寇兆美 马文帅 杨林 1.Linux进程模型概述 1.1 Linux下的进程结构 Linux系统是一个多进程的系统,它的进程之间具有并行性、互不干扰等特点。    Linux中的进程中包含3个段,分别为“数据段”、“代码段”和“堆栈段”。    “数据段”存放的是全局变量、常数以及动态数据分配的数据空间,根据存放的数据,数据段又可以分成普通数据段(包括可读可写/只读数据段,存放静态初始化的全局变量或常量)、BSS数据段(存放未初始化的全局变量)以及堆(存放动态分配的数据)。    “代码段”存放的是程序代码的数据。 “堆栈段”存放的是子程序的返回地址、子程序的参数以及程序的局部变量。 如下图所示。 1.2 Linux下进程的模式和类型   在Linux系统中,进程的执行模式分为用户模式和内核模式。如果当前运行的是用户程序、应用程序或内核程序之外的系统程序,那么对应程序就在用户模式下进行;如果在用户程序的执行过程中出现系统调用或者发生中断事件,那么就要运行操作系统(内核)程序,进程模式就变成内核模式。在内核模式下运行的程序可以执行机器的特权指令,而且此时运行的程序不受用户的干扰,即使是root用户也不能干扰内核模式下进程的运行。   用户进程可以在用户模式下运行,也可以在内核模式下运行,如下图所示。 2.Linux初始化过程和进程层次 进程表中的task(0)和task(1)在Linux中是特别的进程。task(0)即init_task,是系统启动时第一个产生的进程,扮演一个特殊的角色。task(1)即PID为1的进程,是Linux系统中第一个“真正的”进程。因为它通常执行init程序,所以也成为init进程。这两个进程在核心中需要一直存在,因此它们的进程号(0和1)只负责“无主的”系统时间的使用,即空转进程。因此在调度等过程中需扫描进程表链,它通常被跳过。 Linux初始化过程图: Linux启动过程 3.Linux进程表和任务结构 在Linux中进程又称为任务。进程表是由NR_TASKS个task结构组成的静态数组: struct task_struct *task[NR_TASKS]; 每个进程在进程表中占有一项(一个task_struct结构)。在该表中,所有进程通过一个双向环形链相连,链头由外部变量init_task指定: struct task_struct init_task; init_task对应于系统的第一个任务INIT_TASK,它在进程表链被扫描时通常被跳过。当前进程由变量current指定: struct task_struct current; 4.Linux进程状态 运行态:该任务是“活的”,而且正在非特权的用户方式下运行。 中断处理状态:当硬件发出一个中断处理信号时(可能是用户键入一个字符,或时钟每隔10ms发出一次中断等),中断处理例程被激活 系统调用期间:系统调用通过软件中断启动。一个系统调用可能将相应程序进程挂起等待一个事件。 等待态:进程正等待一个外部事件。只有在这个事件发生后,进程才能继续工作。 从系统调用返回:每个系统调用后自动进入该状态,每个慢中断处理完毕后也自动进入该状态。在该状态下,要查看是否需要调用程序是否有信号要处理。调用程序可能将该进程切换为就绪态,同时激活另一进程。 就绪态:处于此状态的进程正在竞争处理机,但处理机正在被另一个进程占用。 5.LINUX常见系统进程 amd:自动安装NFS(网络文件系统)守侯进程。 apmd:高级电源管理。 Arpwatch:记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数 据库。 Autofs:自动安装管理进程automount,与NFS相关,依赖于NIS。 Bootparamd:引导参数服务器,为LAN上的无盘工作站提供引导所需的相关信 息,用于无盘客户端,通常都不需要。 crond:Linux下的计划任务。 Dhcpd:启动一个DHCP(动态IP地址分配)服务器。 Gated:网关路由守候进程,使用动态的OSPF路由选择协议。 Httpd:WEB服务器。 Inetd:支持多种网络服务的核心守候程序。 Innd:Usenet新闻服务器。 Linuxconf:允许使用本地WEB服务器作为用户接口来配置机器。 Lpd:打印服务器。 Mars-nwe:Netware文件和打印服务器。 Mcserv:Midnight命令文件服务器。 named:DNS服务器。 netfs:安装NFS、Samba和NetWare网络文件系统。 ne

文档评论(0)

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

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

1亿VIP精品文档

相关文档