Advertisement

疯狂内核的进程管理子系统。

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
目录1 进程的组织 51.1 进程相关数据结构 51.1.1 进程的基本信息 51.1.2 进程状态 101.1.3 TASK_RUNNING状态的进程链表 111.1.4 进程间关系 121.2 Linux的线程——轻量级进程 151.3 进程的创建——do_fork()函数详解 191.4 执行进程间切换 331.4.1 进程切换之前的工作 331.4.2 进程切换实务 —— switch_to宏 371.4.3 __switch_to函数 391.5 fork与vfock系统调用的区别 421.6 内核线程 461.7 挂起状态进程的组织 491.7.1 等待队列头 491.7.2 等待队列的操作 501.7.3 进程资源限制 551.8 系统调用execve() 561.8.1 拷贝用户态参数 571.8.2 重要的数据结构 6060606060606060606060606060 | | | | | | | | | | | || || || || || || || || //这里是为了增加字数,可以删除。 //原有的内容 //这里可以根据需要调整格式,但保持原有结构和内容不变。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 之——
    优质
    本文章深入探讨Linux操作系统的核心组件之一——进程管理子系统,分析其原理与实现机制,适合技术爱好者和开发人员阅读。 目录 1 进程的组织 1.1 进程相关数据结构 1.1.1 进程的基本信息 1.1.2 进程状态 1.1.3 TASK_RUNNING状态的进程链表 1.1.4 进程间关系 1.2 Linux线程——轻量级进程 1.3 进程创建——do_fork()函数详解 1.4 执行进程切换 1.4.1 进程切换之前的工作 1.4.2 进程切换实务 —— switch_to宏 1.4.3 __switch_to函数 1.5 fork与vfork系统调用的区别 1.6 内核线程 1.7 挂起状态进程的组织 1.7.1 等待队列头 1.7.2 等待队列的操作 1.7.3 进程资源限制 1.8 系统调用execve() 1.8.1 拷贝用户态参数 1.8.2 重要的数据结构 1.8.3 search_binary_handler函数 1.8.4 目标文件的装载和投入运行 1.8.5 库函数 2 中断控制 2.1 中断分类 2.2 中断硬件环境 2.2.1 外部中断请求IRQ 2.2.2 中断描述符表 2.2.3 中断和异常的硬件处理 2.3 中断描述符表 2.3.1 中断门、陷阱门及系统门 2.3.2 IDT初步初始化 2.4 异常处理 2.5 中断处理 2.5.1 中断向量 2.5.2 IRQ数据结构 2.5.3 do_IRQ()函数 2.5.4 中断服务例程 2.5.5 IRQ线的动态分配 2.6 下半部分 2.6.1 软中断 2.6.2 tasklet 2.6.3 工作队列 2.7 定时器中断 2.7.1 时钟与定时器 2.7.2 定时器中断相关的数据结构 2.7.3 定时器中断的上半部分 3 进程调度 3.1 进程调度概念 3.2 进程调度的数据结构和优先级 3.2.1 进程的优先级 3.2.2 数据结构 3.3 调度程序所使用的函数 3.3.1 scheduler_tick函数 3.3.2 try_to_wake_up函数 3.3.3 recalc_task_prio函数 3.4 schedule()函数 3.4.1 直接调用 3.4.2 延迟调用 3.4.3 进程切换之前所做的工作 3.4.4 完成进程切换时所执行的操作 3.4.5 进程切换后所执行的操作 3.5 多处理器运行队列的平衡 3.5.1 调度域 3.5.2 rebalance_tick()函数 3.5.3 load_balance()函数 3.5.4 move_tasks()函数 3.6 进程退出 3.6.1 进程终止 3.6.2 进程删除 4 进程的并发性体现 4.1 内核抢占 4.1.1 内核抢占概念 4.1.2 同步技术总揽 4.2 每CPU变量 4.3 原子操作 4.4 优化屏障和内存壁垒 4.4.1 优化屏障 4.4.2 内存壁垒 4.5 自旋锁 4.6 读写自旋锁 4.6.1 获取与释放一个锁 4.6.2 获取或释放一个写锁 4.7 序列化锁 4.8 RCU机制 4.9 信号量 4
  • Linux预备知识之.pdf
    优质
    本书《Linux预备知识之疯狂内核》深入浅出地介绍了Linux操作系统的核心概念与原理,适合对Linux内核感兴趣的读者阅读。 1.1 体系架构 1.1.1 Linux体系结构 1.1.2 一般程序的执行 1.2 用户态向内核态切换 1.2.1 Linux的堆栈切换 1.2.2 80x86分段总结 1.2.3 Linux的指针 1.3 C语言基本功 1.3.1 Linux内核中的链表 1.3.2 Linux双循环链表综合实例 1.4 内核汇编语言规则 1.4.1 GNU的x86汇编语言 1.4.2 嵌入式汇编语言 1.5 必要的硬件知识 1.5.1 EU模块 1.5.2 SU模块 1.5.3 PU模块 1.5.4 高速缓存 1.6 __attribute__ 机制 1.6.1 函数属性 1.6.2 变量属性 1.6.3 类型属性 1.6.4 变量属性与类型属性举例 1.7 必要的编译知识
  • 道鸡游戏.html
    优质
    疯狂管道鸡是一款充满创意和挑战性的益智游戏,玩家需巧妙布置水管网络,确保每一颗鸡蛋安全送达目的地。游戏中色彩鲜艳、关卡丰富,适合各个年龄段的玩家体验解谜乐趣。 关于游戏“疯狂管道鸟”的源码介绍可以在博客文章中找到相关信息。该文章详细介绍了如何获取并理解该游戏的HTML代码结构。
  • JAVA讲义配套光盘
    优质
    《疯狂JAVA讲义》配套光盘包含了书中的所有源代码、开发工具及多媒体教程,帮助读者更高效地学习和掌握Java编程技能。 疯狂JAVA讲义光盘内容包含了整本书的代码。
  • 篇——初始化
    优质
    狂热内核篇——内核初始化深入探讨了操作系统启动过程中内核加载与初始化的关键步骤和技术细节,是计算机系统架构和操作系统的进阶学习资料。 目录 1. 引子 1.1 上电 1.2 BIOS时代 1.3 内核引导程序 2. 内核映像的形成 2.1 MakeFile预备知识 2.1.1 Makefile书写规则 2.1.2 Makefile变量 2.1.3 条件判断 2.1.4 函数 2.1.5 隐含规则 2.1.6 定义模式规则 2.1 KBuild体系 2.1.1 内核目标 2.1.2 主机程序 2.1.3 编译标志 2.2 内核编译分析 2.2.1 编译配置 2.2.2 寻找第一个目标 2.2.3 prepare和scripts目标 2.2.4 递归编译各对象 2.2.5 链接vmlinux 2.2.6 制作bzImage 3 实模式下的内核代码 3.1 内核映像内存布局 3.2 实模式汇编代码header.S 3.2.1 无用的bootsect代码 3.2.2 初始化头变量hdr 3.2.3 准备实模式下C语言环境 3.3 实模式代码main函数 3.3.1 复制初始化头变量 3.3.2 初始化堆 3.3.3 确保支持当前运行的CPU 3.3.4 设置BIOS的x86模式 3.3.5 内存的检测 3.3.6 设置键盘属性 3.3.7 填充系统环境配置表 3.3.8 填充IST信息 3.3.9 设置Video模式 3.4 实模式代码go_to_proteced_mode函数 3.4.1 禁止可屏蔽和不可屏蔽中断 3.4.2 打开A20地址线 3.4.3 安装临时全局描述符表 3.4.4 第一次启动保护模式 4 保护模式下的内核代码 4.1 32位x86保护模式代码 4.1.1 内核解压缩的前期工作 4.1.2 解压缩内核 4.1.3 第二次启动保护模式 4.1.4 第一次启动分页管理 4.1.5 初始化0号进程 4.2 向start_kernel进发 4.2.1 初始化中断描述符表 4.2.2 第三次启动保护模式 4.2.3 启动x86虚拟机 5 走向现代:start_kernel函数 5.1 初始化同步与互斥环境 5.1.1 屏蔽中断 5.1.2 启动大内核锁 5.1.3 注册时钟通知链 5.1.4 激活第一个CPU 5.1.5 初始化地址散列表 5.1.6 打印版本信息 5.2 执行setup_arch()函数 5.2.1 拷贝可用内存区信息 5.2.2 获得总页面数 5.2.3 着手建立永久内核页表 5.2.4 第二次启动分页管理 5.2.5 建立内存管理架构 5.2.6 添砖加瓦 5.3 设置每CPU环境 5.4 初始化内存管理区列表 5.5 利用early_res分配内存 5.6 触碰虚拟文件系统 5.7 初始化异常服务 5.8 初始化内存管理 5.8.1 启用伙伴算法 5.8.2 初始化slab分配器 5.8.3 初始化非连续内存区 5.9 初始化调度程序 5.10 初始化中断处理
  • 想曲之——虚拟文件
    优质
    《内核狂想曲之——虚拟文件系统》带领读者深入探索操作系统核心模块之一的虚拟文件系统,解析其架构、工作原理及实现机制,为开发者提供设计和优化文件系统的理论支持与实践指导。 目录 1. 虚拟文件系统概述 1.1 通用文件模型 1.2 VFS所处理的系统调用 2. 虚拟文件系统架构 2.1 VFS对象数据结构 2.1.1 超级块对象 2.1.2 索引节点对象 2.1.3 文件对象 2.1.4 目录项对象 2.2 把Linux中的VFS对象串联起来 2.2.1 与进程相关的文件 2.2.2 索引节点高速缓存 2.2.3 目录项高速缓存 2.2.4 VFS对象的具体实现 2.3 文件系统的注册与安装 2.3.1 文件系统类型注册 2.3.2 文件系统安装数据结构 2.3.3 安装普通文件系统 2.3.4 分配超级块对象 2.3.5 安装根文件系统 2.3.6 卸载文件系统 2.4 路径名的查找 2.4.1 查找路径名的一般流程 2.4.2 父路径名查找 2.4.3 符号链接的查找 2.5 VFS系统调用的实现 2.5.1 open()系统调用 2.5.2 read()和write()系统调用 2.5.3 close()系统调用 3 第二扩展文件系统 3.1 Ext2磁盘数据结构 3.1.1 文件系统的整体布局与元数据管理 3.2 磁盘块的分配和释放机制 4 直接I/O与异步I/O 4.1 直接I/O 4.2 异步I/O 4.2.1 Linux 2.6中的异步I/O 4.2.2 异步I/O环境 4.2.3 提交异步I/O操作 5 块设备读写流程 5.1 文件的读取过程 5.1.1 创建bio请求 5.1.2 得到文件逻辑块号 5.1.3 普通文件readpage方法 5.1.4 块设备文件readpage方法 5.1.5 文件预读 5.2 文件的写入过程 5.2.1 generic file_write函数 5.2.2 普通文件prepare_write方法 5.2.3 块设备文件prepare_write方法 5.2.4 将脏页写到磁盘 6 直接I/O与异步I/O处理机制 6.1 直接I/O操作 6.2 异步I/O操作 6.2.1 Linux中异步I/O实现细节 6.2.2 提交异步IO请求流程 以上为虚拟文件系统及块设备读写相关章节概述。
  • 飞机器编队
    优质
    《疯狂飞机器编队程序》是一款创新的编程游戏,玩家通过编写代码指挥无人机团队完成复杂的任务挑战。游戏中包含了多种关卡和飞行模式,让玩家在享受编程乐趣的同时,体验到策略与创意结合的游戏魅力。 Crazyflie编队程序可以帮助用户系统地了解基于Crazyflie的编队实验。
  • Java讲义第6版 电PDF版
    优质
    《疯狂Java讲义》第六版是一本深入浅出讲解Java编程语言的经典教程,以清晰易懂的方式帮助读者掌握Java的核心概念和技术。本书特别适合初学者及中级程序员阅读和参考。 寻找《疯狂Java讲义》的电子版PDF格式文档。
  • Java讲义第17版电版PDF
    优质
    《疯狂Java讲义》第17版是一本全面深入讲解Java编程语言及其应用的经典教程,提供大量实例和练习,适合初学者及进阶读者。此版本为便于携带与阅读的电子PDF格式。 寻找《疯狂Java讲义》的电子版PDF格式文档。
  • FVTT_COC7_列表:FVTT平台上使用7版CoC随机表
    优质
    FVTT_COC7_疯狂列表是一款专为FVTT平台设计的游戏模组,适用于克苏鲁神话角色扮演游戏《混沌工程师》第七版。此工具包含各种随机事件和遭遇,用于增加游戏中的不确定性和恐怖感。 Fvtt_coc7_crazylist 是在 FVTT 平台上用于《克苏鲁的呼唤》(CoC)第七版跑团的游戏模组中的疯狂随机表插件,仅供KP或调查员使用。 启用此mod的方法如下: 1. 下载并解压包含module.json文件的压缩包。 2. 将解压后的文件夹移动到FVTT本地数据日期文件夹里的mod子文件夹中,并将该文件夹的名字修改为module.json(记事本打开查看前几栏名字)。 3. 重启FVTT,完成安装。 使用方法: 1. 进入合集包后右击coc7自用随机表,点击“引入全部内容”; 2. 点开一个开始使用。