进程控制块pcb——task_struct

操作系统三大功能:

  • 进程管理(核心)
  • 内存管理
  • 文件系统

为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息:

  • 进程状态
  • 进程打开的文件
  • 进程优先级信息

进程状态切换图

需要注意的是进程的运行态和就绪态使用同种名称,区别仅在于是否确实占用内存

运行新进程总是从ret_from_fork开始

进程的创建

fork创建进程:

  • fork系统调用在父进程和子进程各返回一次
  • 子进程中返回的是0,父进程中返回值是子进程的pid

fork、vfork和clone三个系统调用都可以创建一个新进程,而且都是通过调用do_fork来实现进程的创建

具体创建过程如下:

  • 复制当前进程作为子进程

    • 由do_fork实现
  • 复制父进程的pcb
  • 给子进程分配内核堆栈
  • 修改子进程的pid等相关信息

实验:分析linux内核创建一个新进程的过程

过程同上次类似,首先更新MenuOS

gdb调试fork

设置断点并调试

linux如何创建一个新进程:Linux通过复制父进程来创建一个新进程,通过调用do_ fork来实现并为每个新创建的进程动态地分配一个task_ struct结构

linux及安全第六周总结的更多相关文章

  1. Linux内核设计第六周 ——进程的描述和创建

    Linux内核设计第六周 ——进程的描述和创建 第一部分 知识点总结 一.进程描述符task_struct数据结构 1.操作系统的三大功能: 进程管理.内存管理.文件系统 2.进程的作用: 将信号.进 ...

  2. LINUX内核分析第六周学习总结——进程的描述与创建

    LINUX内核分析第六周学习总结--进程的描述与创建 标签(空格分隔): 20135321余佳源 余佳源 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc ...

  3. linux内核分析第六周学习笔记

    LINUX内核分析第六周学习总结 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.c ...

  4. LINUX内核分析第六周学习总结——进程的描述和进程的创建

    LINUX内核分析第六周学习总结——进程的描述和进程的创建 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/cours ...

  5. Linux内核分析第六周学习笔记——分析Linux内核创建一个新进程的过程

    Linux内核分析第六周学习笔记--分析Linux内核创建一个新进程的过程 zl + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/U ...

  6. Linux内核分析——第六周学习笔记20135308

    第六周 进程的描述和进程的创建 一.进程描述符task_struct数据结构 1.操作系统三大功能 进程管理 内存管理 文件系统 2.进程控制块PCB——task_struct 也叫进程描述符,为了管 ...

  7. linux内核分析 第六周 分析Linux内核创建一个新进程的过程

    进程的描述 操作系统的三大管理功能:进程管理.内存管理.文件系统 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. 进程控制块PCB task_struct:进 ...

  8. Linux内核分析第六周学习总结:进程的描述和进程的创建

    韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.进程的描述 ...

  9. "Linux内核分析"第六周实验报告

    张文俊 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.进程的描述 ...

随机推荐

  1. Linux 小知识翻译 - 「分区」

    安装Linux的时候,需要对硬盘进行分区.那么「分区」到底是什么呢? 「分区」在日语中有区分,分割的意思.计算机术语中有时会说「对一个磁盘进行分区」,整个意思就是指定如何分割磁盘的意思. 「对磁盘进行 ...

  2. switch语句(初学者)

    C语言提供了另一种用于多分支选择的switch语句(常用于开关),一般形式为: switch ( 常量表达式 ) { case 常量1 :语句; case 常量2 :语句; case 常量3 :语句; ...

  3. GUI概述与Frame演示

    java 图形化界面的对象存在这两个包中: java.awt :Abstract WindowsToolkit(抽象窗口工具包)需要调用本地系统方法实现功能,属重量级控件 javax.swing:在a ...

  4. 阿里巴巴Java开发手册要点笔记 (一)

    1:[强制]Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals. 正例:"test".equals(object); 反例:obj ...

  5. Redis String类型的API使用

    package com.daxin.jedis_datastructure; import org.junit.After; import org.junit.Before; import org.j ...

  6. 牛客小白D题(STL的迭代器)

    「只要我拉动绳线,你就得随之起舞.」          ——泰兹瑞        泰兹瑞来到卡拉德许之后,由于他精湛的神器制造技术,可谓是过的如鱼得水.这次,他为自己打造了一个编辑器,称为威穆(Vei ...

  7. 双目SLAM(2) opencv

    一步步实现ORB-SLAM2 http://www.fengbing.net/ 1 opencv 测试 http://blog.csdn.net/u010480194/article/details/ ...

  8. M100 X3云台安装

    http://bbs.dji.com/thread-38587-1-1.html

  9. oracle备份信息查询

    SELECT TRIM(START_TIME || '#'),       TRIM(END_TIME || '#'),       TRIM(CASE OUTPUT_DEVICE_TYPE      ...

  10. MATLAB——神经网络pureline激活函数