网站大量收购独家精品文档,联系QQ:2885784924

linux高级编程-3答案.pptx

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux高级编程(三) 张勇涛 抽象 抽象来源于具体,但又超越具体 抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。 操作系统与抽象 内核态与用户态 内核态就是拥有多资源的状态,或者说访问资源多的状态,也称为特权态. 用户态就是非特权态. 内核态和用户态各有优势: 内核态 : 资源多, 但是安全性、可靠性要求高,维护较复杂 用户态:资源受限,但可靠性、安全性要求低,编写维护比较简单 态势的识别 所谓的用户态、内核态实际上是处理器的一种状态,而不是程序的状态。 通过设置状态字来设置用户态、内核态,以及其它状态 程序和进程 程序(program)是存放在磁盘文件中的可执行文件。 进程: 程序的执行实例被称为进程(process)。 进程ID: 每个linux进程都一定有一个唯一的数字标识符,称为进程ID(process ID)。进程ID总是一非负整数。 进程相关基本概念 进程的定义 进程是一个独立的可调度的活动 进程是一个抽象实体,当它执行某个任务时,将要分配和释放各种资源 进程是可以并行执行的计算部分 进程是一个程序的一次执行的过程 进程是程序执行和资源管理的最小单位 进程与程序的区别 进程是动态的,程序是静态的:程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念。进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和消亡的整个过程。 进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。 进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。 进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。 Linux下的进程的模式和类型 进程的执行模式划分为用户模式和内核模式 用户调用与内核调用关系 进程与内核的关系 进程的生命周期 创建 每个进程都是由其父进程创建 进程可以创建子进程,子进程又可以创建子进程的子进程 运行 多个进程可以同时存在 进程间可以通信 撤销 进程可以被撤销,从而结束一个进程的运行。 进程的状态 就绪状态(Ready): 阻塞状态(Blocked): 运行状态(Running): 进程的状态(运行态) 运行状态(Running): 占用处理器资源;处于此状态的进程的数目小于等于CPU的数目。 在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的idle进程(相当于空操作)。 进程的状态(就绪态) 就绪状态(Ready): 进程已获得除处理器外的所需资源,等待分配处理机资源;只要分配CPU就可执行。 可以按多个优先级来划分队列,如:时间片用完-低优,I/O完成-中优,页面调入完成-高优 进程的状态(堵塞态) 阻塞状态(Blocked): 由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理器分配给该进程,也无法运行。如:等待I/O操作的完成。 进程的状态 创建状态(New): 进程刚创建,但还不能运行(一种可能的原因是OS对并发进程数的限制);如:分配和建立PCB表项(可能有数目限制)、建立资源表格(如打开文件表)并分配资源,加载程序并建立地址空间表。 结束状态(Exit): 进程已结束运行,回收除PCB之外的其他资源,并让其他进程从PCB中收集有关信息(如记帐,将退出码exit code传递给父进程)。 进程状态转换图 进程控制块(PCB) 进程id。系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整数。 进程的状态,有运行、挂起、停止、僵尸等状态。 进程切换时需要保存和恢复的一些CPU寄存器。 描述虚拟地址空间的信息。 描述控制终端的信息。 当前工作目录(Current Working Directory)。 umask掩码。 文件描述符表,包含很多指向file结构体的指针。 和信号相关的信息。 用户id和组id。 控制终端、Session和进程组。 进程可以使用的资源上限(Resource Limit)。 fork和exec 进程中的内存分布 常用环境变量 PATH 可执行文件的搜索路径。 SHELL 当前Shell,它的值通常是/bin/bash。 TERM 当前终端类型,在图形界面终端下它的值通常是xterm,终端类型决定了一些程序的输出显示方式,比如图形界面终端可以显示汉字,而字符终端一般不行。 LANG 语言和locale,决定了字符编码以及时间、货币等信息的显示格式。 HOME 当前用户主目录的路径,很多程序需要在主目录下保存配置文件,使得每个用户在运行该程序时都有自己的一套配置。 获取环境变量 用environ指针可以查看所有环

文档评论(0)

1112111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档