- 1、本文档共62页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]4_Linux 进程编程
Linux 进程编程 Linux Process programme 课程目标 进程的概念 进程的内存布局 Linux下进程的控制 创建新进程 进程间同步 僵尸进程 Exec执行进程 守护进程 进程的概念 通俗的讲,进程就是一个在运行的程序. 进程是一个具有独立功能的 程序 关于某个数据集合的一次可以并发执行的运行活动,是处于活动状态的计算机 程序 。 有一些特殊情况,多进程程序.一个程序的主进程,可能创建若干个子进程. 进程作为构成 系统 的基本细胞,不仅是 系统 内部独立运行的实体,而且是独立竞争资源的基本实体。 这里资源一般指CPU运行时间,内存,外部设备访问权 可执行文件 一般讲软件是一个包含可以执行代码的文件,或者说是一些规定格式的二进制文件. 存在计算机的文件系统里面.而进程是一个开始执行但是还没有结束的程序的实例. 存在系统的内存之中.就是可执行文件的具体实现.? 不同操作系统可执行程序的格式都不一样,如Linux下采用称为ELF的格式.而Windows采用称为PE的可执行格式.但总体上大体的结构类似.每一个程序都有一些固定段.而运行时进程操作系也是一样,大体上分为比较固定的几个段. Linux 查看进程的命令 ps 查看进程的标准状况 top 看进程的CPU占用率和内存使用情况 /proc/进程编号 这是一个虚拟目录,下面各个文件表示进程各种情息,可以用cat 查看 比如1号进程,可以用查看各种状态 cat /proc/1/status 进程内存分局 在长期计算机科学的发展当中,程序在内存分区已经形成固定的布局.无论Linux/Unix下的应用程序.还是Windows下的程序,甚至是在没有操作系统的下运行底层程序,如bootloader,以及ARM的单纯的C程序.它们都按大致固定的段来进行布局. 其它的开发语言,如Java之类也采用同样布局方式 保存时的分段 对于一个C程序而言,当一个程序还是一个可执行文件时.至少包含如下几个段 Text 段: 保存是机器代码 Data段 : 保存是已经初始化变量 BSS段(Block Storage Start).:保存是未初始化的变量 这里只保存变量所占用空间尺寸一个数值,并未在内存中开展所有数 清晰的知道不同类型的变量分布在哪一个段里,是一个C开发者必备知识之一 可执行程序段的分配原则 代码段(text segment):存放CPU执行的机器指令(machine instructions)。也就是存储你的程序代码编译后的机器代码,在内存中,这一段是只读的.所有可执行代码即C的语句和函数都会被编译到可执行段中. 初始化数据段/数据段(initialized data segment/data segment,包含静态初始化的数据,所以有初值的全局变量和static变量在data区。 未初始化数据段/bss段,,bss是英文Block Started by Symbol的简称,通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域,在程序载入时由内核清0,所有未初始化的全局变量,包括括静态或非静态的,均保存在这一个段. 因为没有初始化数据,,为了节约可执行文件空间,所以所有在BSS段里的程序只占一个标识符空间,和记录所占空间大小,其变量所占空间没有展开, 所有在BSS段里变量在装入时由操作系统统一清0 注意在可执行文件是不会有局域变量的空间的,因为他们要等于执行后在进程的空间动态在stack区创建. 分配实例 验证分配空间 在Linux下,可以用nm导出符号表来查看变量是否分配在哪一个段中 nm proc symbol.txt 运行后内存分区 当程序运行后.除了上述段会装入进程空间,还有两个新的区分配在进程空间中. 栈段(stack), 保存函数的局部变量和函数参数。是一种“后进先出”(Last In First Out,LIFO)的数据结构,这意味着最后放到栈上的数据,将会是第一个从栈上移走的数据。 对于哪些暂时存贮的信息,和不需要长时间保存的信息来说,LIFO这种数据结构非常理想。在调用函数或过程后,系统通常会清除栈上保存的局部变量、函数调用信息及其它的信息。栈另外一个重要的特征是,它的地址空间“向下减少”,即当栈上保存的数据越多,栈的地址就越低。栈(stack)的顶部在可读写的RAM区的最后。因为栈是有限度的.因此.无限递归之类调用会将栈空间用关. 堆段(heap):用于动态内存分配(dynamic memory allocation)。所有malloc的分配的内存空间都是从这一个区域分配出来.保存函数内部动态分配内存,是另外一种用来保存程序信息的数据结构,更准确的说是保存程序的动态变量。 堆是“先进先出”(First I
您可能关注的文档
- [理学]3xtk高等数学 微分中值定理习题.ppt
- [理学]35 两个随机变量的函数的分布.ppt
- [理学]35迭代法.ppt
- [理学]3_1 CCSpart 1.ppt
- [理学]3影响瓦斯赋存的地质条件.pdf
- [理学]3分子物理学.ppt
- [理学]3模拟信号的数字化传输.ppt
- [理学]3数学期望.ppt
- [理学]3电路的暂态分析.ppt
- [理学]3碎屑岩的成分.ppt
- 2025年市总工会党组书记、市委组织部部长生活会“四个带头”个人对照检查发言材料2篇(含上年度整改+个人情况、个人事项+典型案例).docx
- 2025年部编版小学六年级下册《道德与法治》第四单元 让世界更美好第10课 我们爱和平教学课件.pptx
- 公司领导班子2025年围绕“四个带头”主题检视问题整改落实方案与组织生活会批评意见(20条)2篇文.docx
- 教育系统党组班子2025年对照“四个带头”含意识形态、以典型案例举一反三解析检视材料【2篇文】.docx
- 2025年国有企业领导班子、学校副校长生活会“四个带头”方面对照个人检视发言材料2篇文(附:上年度整改情况、典型案例解析).docx
- 2025年生活会“四个带头”个人对照检查材料2篇文(含对其他领导批评意见,个人公开事项申报、意识形态).docx
- 2025年国有企业党委书记、领导班子生活会“四个带头”方面对照检查发言材料2篇文(上年度整改情况).docx
- 乡镇领导班子、市委组织部常务副部长2025年对照“四个带头”含违纪行为为典型案例的剖析与反思检视剖析材料{2篇文}.docx
- 市委社会工作部2025年生活会领导班子对照检视发言材料2篇文(含以案为鉴,深刻反思存在问题、反面典型案例举一反三解析、其他需要说明情况).docx
- 2025年民主生活会、组织生活会批评意见(20条)与市直单位领导班子“四个带头”对照检查材料【含上年度查摆问题整改落实情况】2篇文.docx
最近下载
- (人教版)数学六年级下册计算题“天天练”习题卡,含112份题组.doc
- 2025年教师资格考试小学教育教学知识与能力重点难点题库解析.docx VIP
- 钢梯结构详图1_1_15J401.pdf VIP
- O-Sepa选粉机简介资料.ppt
- 2024年1月上海市春季高考英语全真模拟试卷04A4含答案(附听力音频).docx VIP
- 互助学习亮点大家一起进步主题班会PPT课件.pptx VIP
- 普通地质学名词解释大全(免费)普通地质学名词解释大全(免费).pdf
- 2024年1月上海市春季高考英语全真模拟试卷03A4含答案(附听力音频).docx VIP
- 三年中考物理试题汇编:压强.doc
- 交通管理与控制(第四版)全书知识点重点部分总结.pdf
文档评论(0)