第章 Linux内核简介.ppt

  1. 1、本文档共183页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第章 Linux内核简介

第五章 Linux内核简介 5.1 概述 Linux系统大致可分为3层: 应用层:用户程序部分 shell层:操作系统的系统程序部分 内核:操作系统常驻内存部分 内核是Linux操作系统的主要部分,它实现进程管理、内存管理、文件系统、设备驱动和网络系统等功能。 系统程序及其他所有程序都在内核上运行,它们与内核之间的接口由操作系统提供的一组系统调用。 5.2 进程管理 5.2.1 进程和线程的概念 5.2.2 进程的结构 5.2.3 对进程的操作 5.2.1 进程和线程的概念 进程 简单的说,进程是指处于运行状态的程序。 Linux进程的组成 进程控制块: 它是内核数据结构,每个进程一个, 用来存储进程标志信息、现场信息和控制信息。 进程程序块: 它存放进程执行的指令代码。 进程内核栈 又称为核心栈,每个进程一个 进程在内核态下工作时使用 进程数据块: 存放各种私有数据。 用户栈 5.2.1 进程和线程的概念 说明: 如果只具备前3项,则称为“线程”。 Linux支持传统UNIX进程的概念,进程不但拥有资源,而且也参与调度。 Linux没有单独为线程定义数据结构,线程也使用task_struct结构描述。 Linux线程仅被看作是一个与其他进程共享资源的特殊进程。 5.2.1 进程和线程的概念 进程的运行模式 内核态(亦称核心态或系统态) 可执行特权指令,访问任意物理地址(包括系统空间) 用户态 只能在对应级别允许的范围内活动(用户空间) 5.2.1 进程和线程的概念 5.2.2 进程的结构 task_struct结构 定义位置: include/linux/sched.h 说明 Linux操作系统使用数据结构task_struct代表一个进程。 当一个进程被创建时,系统为该进程建立一个task_struct结构,当进程结束时,系统撤销该进程的task_struct结构。 Linux在操作系统的内核空间设置task数组。该数组的每个元素是指向task_struct结构的指针。 5.2.2 进程的结构 task_struct结构的主要成员: 进程状态信息(state, flags, ptrace) 调度信息(static_prio, normal_proi, run_list, array, policy) 内存管理(mm, active_mm) 进程状态位信息(binfmt, exit_state, exit_code, exit_signal) 身份信息(pid, tgid, uid, suid, fsuid, gid, egid, sgid, fsgid) 家族信息(real_parent, parent, children, sibling) 进程耗间信息(realtime, utime, stime, starttime) 文件系统信息(link_count, fs, files) IPC信息(sysvsem, signal, sighand, blocked, sigmask, pending) 5.2.2 进程的结构 进程状态 成员名: volatile long state 功能: 表征进程的可运行性 状态定义 5.2.2 进程的结构 类型定义说明 运行态/就绪态 TASK_RUNNING:正在运行或已处于就绪只等待CPU调度 被挂起状态(睡眠状态、等待状态) TASK_INTERRUPTIBLE:可被信号或中断唤醒进入就绪队列 TASK_UNINTERRUPTIBLE:等待硬件资源有效时唤醒,不可被信号唤醒 TASK_STOPPED:进程被暂停,或收到SIGSTOP等信号,通过其他进程的信号才能唤醒。 不可运行态 TASK_ZOMBIE:(僵死状态)正在终止(已释放内存、文件等资源,但内核数据结构信息未释放),等待父进程通过wait4()或waitpid()回收 TASK_DEAD:进程已退出,且不需父进程回收 5.2.2 进程的结构 进程标志符 成员名: pid_t pid 功能 内核通过pid标识每个进程 pid与进程之间一一对应关系 说明 pid_t实际上是一个int类型 取值范围:0 ~ 32767 获取进程pid ps命令 系统调用getpid() 5.2.2 进程的结构 通过ps命令获取进程信息 5.2.2 进程的结构 进程组标志 成员名: pid_t tgid 功能 标识进程是否属于同组,组ID是第一个组内线程(父进程)的ID 说明 单线程进程:tgid和pid相等 多线程进程:组内所有线程tgid都相等,且等于父进程pid 5.2.2 进程的结构 用户相关的进程标识信息 功能: 控制用户对系统资源的访问权限 分类 用户标识uid及组标识gid 通常是进程创建者的uid和g

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档