Linux教程∶linux内核简介.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 Linux内核简介 主要内容 Linux核心的一般结构 进程的概念、进程的调度和进程通信 文件系统的构成和管理 内存管理 设备驱动及中断处理 5.1 概 述 p142 Linux系统大致可分为三层: 靠近硬件的底层是内核,即Linux操作系统常驻内存部分。 中间层是内核之外的shell层,即操作系统的系统程序部分。 最高层是应用层,即用户程序部分 从结构上看,Linux操作系统是采用单块结构的操作系统。 一般说来,可以将操作系统划分为内核和系统程序两部分。 ●进程控制系统用于进程管理、进程同步、进程通信、进程调度和内存管理等。 ●内存管理控制内存分配与回收。 ●文件系统管理文件、分配文件空间、管理空闲空间、控制对文件的访问并为用户检索数据。 ●Linux系统支持三种类型的硬件设备:字符设备、块设备和网络设备。 ●核心底层的硬件控制负责处理中断以及与机器通信。 5.2 进 程 管 理 p143 5.2.1 进程和线程的概念 1.进程及其状态 简单说来,进程就是程序的一次执行过程。 进程至少要有三种基本状态。这三种基本状态是:运行态、就绪态和封锁态(或等待态)。 进程的状态可依据一定的条件和原因而变化 2.Linux进程状态 p145 3.进程的模式和类型 p145 在Linux系统中,进程的执行模式划分为用户模式和内核模式 按照进程的功能和运行的程序来分,进程划分为两大类:一类是系统进程,另一类是用户进程 4.Linux线程 p146 Linux把线程定义为进程的“执行上下文” 具有一段可执行的程序、专用的系统堆栈空间、私有的“线程控制块”(即thread_struct数据结构) 缺少自己的存储空间 5.2.2 进程的结构 p146 1.task_struct结构 (PCB) task_struct结构包含下列几方面的信息: ·进程状态 ·调度信息 ·标志符 ·内部进程通讯 ·链接信息 ·时间和计时器 ·文件系统 ·虚拟内存 ·处理器信息 2.进程系统堆栈 p147 每个进程都有一个系统堆栈,用来保存中断现场信息和进程进入内核模式后执行子程序(函数)嵌套调用的返回现场信息。 每个进程的系统堆栈和task_struct数据结构之间存在紧密联系,因而二者物理存储空间也连在一起 系统堆栈的大小静态确定,用户堆栈可在运行时动态扩展 5.2.3 对进程的操作 p147 1.进程的创建 各个进程构成了树形的进程族系 内核在引导并完成了基本的初始化以后,就有了系统的第一个进程(即初始化进程,实际上是内核线程)。除此之外,所有其他的进程和内核线程都由这个原始进程或其子孙进程所创建。 除初始化进程外,其他进程都是用系统调用fork( )和clone( )创建的。 fork( )是全部复制 ,而clone( ) 有选择地复制 提问,以下程序运行后,内存中共有多少个进程 分析以下程序的结果 2.进程的等待/进程的同步 p147 wait() wait3() wait4() 使用系统调用wait(),可使进程与其执行的子进程的终止点同步。 原理:父进程执行wait(),暂停执行,处于等待状态,直到任一个子进程执行完毕唤醒父进程。 系统调用wait3( ) 功能和wait()类似,都是等待它的任一个子进程终止。 系统调用wait4(pid)等待某个特定的子进程终止。 3.进程的终止 进程可使用系统调用exit( )终止自己,变成僵死状态 其实现算法如下: (1)撤消所有的信号量。 (2)释放其所有的资源,包括存储空间、已打开的文件、工作目录、信号处理表等。 (3)置进程状态为“终止态”(TASK_ZOMBIE)。 (4)向它的父进程发送子进程终止的信号。 (5)执行进程调度。 Exit的调用方式为: exit(status); status是一个整数,作为一种状态在当前进程结束时传递给父进程。 exit(0)-----表示正常退出 exit(1)-----表示异常退出 4.进程映像的更换/指定进程执行另一程序的系统调用(exec系统调用) p148 为什么要使用exec系统调用? 在使用fork()创建子进程后,由于父子进程执行的是相同代码。如果我们需要父子进程完成不同的任务的时候,仅用fork()调用是做不到的。 因此常常将fork()和exec系统调用配合使用,达到实际需要 通常是fork()创建一个子进程,拷贝父进程的一个副本;再使用exec调用让子进程

文档评论(0)

153****9595 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档