252|2

7202

帖子

192

TA的资源

五彩晶圆(高级)

楼主
 

《Linux内核深度解析》第二章 进程 理论学习(结合代码分析) [复制链接]

进程进行状态之间的切换,这些工作都是有调度器来完成的

 

这一章学习结合了IMX6ULL的LINUX相关源码进行分析

内核调度器的入口是一个名为 schedule() 的函数,该函数会调用 pick_next_task() 来选择下一个要运行的进程。调度器需要先和一个具体的调度类相关联,然后由后者去挑选下一个该运行的进程。

 

 

 

 

切换进程的函数是context_switch函数,执行的工作如下

Switch_mm_irqs_off负责切换进程的用户虚拟地址空间

Switch_to负责切换处理器的寄存器

 

调度进程的时机如下:

  1. 进程主动调用schedule()函数
  2. 周期性的调度,抢占当前进程,强迫当前进程让出处理器
  3. 唤醒进程的时候,被唤醒的进程可能抢占当前进程
  4. 创建新进程的时候,新进程可能抢占当前进程

 

 

摘抄网络上的一段话:

fork创造的子进程复制了父进程资源,包括内存及进程描述符的内容,注意是资源的复制而不是指针的复制,当然,用户也不需要太大担心性能的问题,Linux采用的写时复制技术能让fork的性能大幅提升

vfork的行为更像一个线程(指没有自已独立的内存空间),更明显的是vfork的调用将挂起当前进程(即父进程)

相对上面两者而言,clone显得很复杂,根据flag的不同可以实现不同的功能

 

fork函数的实现主要是通过copy_process函数实现task_struct结构的创建和初始化,

 

fork系统调用代码

 

 

 

进程退出

①、进程主动终止: 从main()函数返回,链接程序会自动添加到exit()系统调用; exit系统调用在内核定义如下\kernel\exit.c:

 

 

 

②、进程被动终止: 进程收到一个自己不能处理的信号;进程收到 SIGKILL等终止信息。

最新回复

现在学Linux内核的帖子好少   详情 回复 发表于 6 天前
点赞 关注

回复
举报

7587

帖子

2

TA的资源

五彩晶圆(高级)

沙发
 

现在学Linux内核的帖子好少

点评

从入门到放弃,太难了,我这种门外汉  详情 回复 发表于 4 天前
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 

回复

7202

帖子

192

TA的资源

五彩晶圆(高级)

板凳
 
freebsder 发表于 2024-12-31 11:49 现在学Linux内核的帖子好少

从入门到放弃,太难了,我这种门外汉

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
Windows下常见Oracle服务介绍

注:SID - 数据库标识 HOME_NAME - Oracle Home名称,如OraHome92、OraHome81 (1)OracleServiceSID 数据库服务, ...

问一下关99SE的问题

我用的99SE电路板图画完了,可是要怎么样才能生成PCB板啊。我以前会,可是现在忘了。英语还看不懂。

【无线收发模块】资料汇总(欢迎上传++)

小爆一下我的无线收发模块:TI 的MSP430+CC2500 Zigbee开发套件、Digi公司的XBee-pro模块、nrf2401。现在都把资料上传。 nRF2401 ...

用SPI Flash IC做字库的方法(不提供源代码)

在很多应用中我们都需要使用到字库,常见的方法有: 1. 把字库放入SD卡中。需要带SD卡,需要使用文件系统,软硬件成本比较高 ...

使用AD14创建异形PCB板

前段时间同事需要按照AutoCAD的尺寸做一个PCB板。AD14支持导入DWG文件,于是选择了直接导入文件的方式来获得PCB板的外形尺寸。Au ...

三极管、场效应管、IGBT怎么用?

一、三极管   三极管是一种电流控制体器件,它的主要作用是把微弱信号放大,输入阻抗低,例如在基极b给一个很小的电流Ib, ...

zigbee终端向多个协调器发起请求的思路

一个ZigBee终端周围可能有多个协调器,如何让终端连接到指定的协调器? 先简单的谈一下终端的入网流程(相关代码自己去看源码) ...

众筹中的树莓派 LED 立方体套件 LumiCube

LumiCube 是终极树莓派套件,非常适合初学者和爱好者。它使用树莓派作为核心,在一个10厘米立方体中集成了传感器、扬声器,可以 ...

【DigiKey“智造万物,快乐不停”创意大赛】基于Arduino Uno R4智能床头灯项目&6调试6

本帖最后由 eew_cT3H5d 于 2024-1-12 14:26 编辑 第六部分调试:触摸电路调试 触摸电路作为与用户直接操作界面至关重要, ...

小熊派BearPi-Pico H2821星闪开发板测评(四)——多种有线数据传输测试

UART UART为通用异步收发器,在实际接线中,一个设备的RX引脚接到另一个设备的TX引脚,除此之外,还需要定义串口号,波特率, ...

关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表