原创文章,转载请注明:Linux内核学习笔记-2.进程管理) By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert Love,陈莉君等译. 1.进程 进程是正在执行的程序代码的实时结果,包含打开的文件.挂起的信号等.线程是进程中的活动的对象,内核调度的对象是线程.在Linux内核对线程与进程并不加以区分,线程只不过是一种特殊的进程. 2.进程描述符 内核把进程的信息存放在task list的双向循环链表中,链表中的…
进程优先级 硬实时进程 软实时进程 普通进程 O(1)调度.完全公平调度器 抢占式多任务处理(preemptive multitasking):各个进程都分配到一定的时间段可以执行.时间段到期后,内核会从进程收回控制权,让下一个不同的进程运行,而不考虑前一进程所执行的上一个任务. 进程生命周期 进程状态:运行.等待.睡眠.终止 抢占式多任务处理 从用户态进入核心态的方法: 系统调用:处于核心态时,与当前运行进程相关 硬件中断:处于核心态时,与当前运行进程不相关 普通进程总是可能被抢占,甚至是由其…
 作为Linux开发爱好者,从事linux 开发有三年多时间.做过bsp移植,熟悉u-boot代码执行流程:看过几遍<linux 设备驱动程序开发>,分析过kernel启动流程,写过驱动,分析过网卡驱动,制作过文件系统.但,仍无法对kernel有全局认识.为了更清晰的展示kernel概念,结构,实现,以思维导图的形式记录关键点,以便以记忆.增强理解.该部分主要梳理进程管理与调度相关知识点.…
进程就是出于执行期的程序.进程的另一个名字是任务. 执行线程,简称线程(thread),是在进程中活动的对象.每个线程都有一个独立的程序计数器.进程栈和一组进程寄存器.内核调度的对象是线程,而不是进程. 在现代操作系统中,进程提供两种虚拟机制:虚拟处理器和虚拟内存. 注意:在线程之间可以共享虚拟内存,但每个都拥有各自的虚拟处理器.…
转自:http://www.jb51.net/article/79960.htm 这篇文章主要介绍了Linux内核的基本的模块管理与时间管理操作,包括模块加载卸载函数的使用和定时器的用法等知识,需要的朋友可以参考下   内核模块管理Linux设备驱动会以内核模块的形式出现,因此学会编写Linux内核模块编程是学习linux设备驱动的先决条件. Linux内核的整体结构非常庞大,其包含的组件非常多.我们把需要的功能都编译到linux内核,以模块方式扩展内核功能. 先来看下最简单的内核模块 ? 1…
"万子恵 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 " 万子恵 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验部分 跟踪调试 1)更新menu rm menu -rf //强制删除 git clone https://gi…
分析Linux内核创建一个新进程的过程 task_struct结构体分析 struct task_struct{ volatile long state; //进程的状态 unsigned long flags; //调用fork时候给出的进程号 long nice; //进程的基本时间片 unsigned long policy; //进程的调度策略 struct mm_struct *mm; //进程内存管理信息 struct list_head run_list; //指向运行队列的指针…
分析Linux内核创建一个新进程的过程 实验过程 要求:使用gdb跟踪分析一个fork系统调用内核处理函数sys_clone ,验证对Linux系统创建一个新进程的理解,推荐在实验楼Linux虚拟机环境下完成实验. cd LinuxKernel qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S 课程内容 阅读理解task_struct数据结构: 进程控制块PCB——task_struct 1.操作系统…
实验六:分析Linux内核创建一个新进程的过程 作者:王朝宪  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 进程 1.进程即处于执行期的程序,并不局限于一个可执行的代码,是处于执行期程序以及其相关资源的总称. 2.Linux系统中,对于进程和线程并没有明显的区分,线程是一种特殊的进程. 3.Linux系统中,常用fork()进程创建子进程.调用fork()进程的成之为其子进程的父进程. 4.fork()继承…
20135311傅冬菁 分析Linux内核创建一个新进程的过程 一.学习内容 进程控制块——PCB  task_struct数据结构 PCB task_struct中包含: 进程状态.进程打开的文件.进程优先级信息 操作系统管理的三个功能: 1.进程管理 2.内存管理 3.文件系统 Linux进程的状态: 进程状态分析: long state是进程的运行状态,-1是未执行,0是执行中,大于0则是暂停: *stack 是建立一个内核堆栈: flags 是定义了每个进程的标识符: list_head…