2019-2020-1 20199302《Linux内核原理与分析》第七周作业
第六章 进程的描述和进程的创建
(一)进程的描述
1、OS的三大管理功能:(1)进程管理(进程)(2)内存管理(虚拟内存)(3)文件系统(文件)
2、进程的描述:进程控制块PCB
3、在Linux内核中,struct task_struct描述进程,其中的变量state为进程状态,stack是堆栈。结构关系:进程状态,进程双向链表的管理,控制台tty,文件系统fs的描述,进程打开文件的文件描述符:files、内存管理的描述mm,进程间通讯的信号signal的描述等。
4、Linux进程的状态与操作系统原理中的进程状态的主要区别在于,Linux内核中的就绪态和运行态都
被称作TASK_RUNNING,在阻塞态的进程分为两种,一种是TASK_INTERUPTIBLE,可以被信号以及wake_up()唤醒,另一种是TASK_UNINTERUPTIBLE只能被wake_up()唤醒。i

5、进程的标识符PID,在进程描述符中用pid和tgid标识进程。
6、双向链表struct list_head tasks用于管理进程数据结构。
(二)进程的创建
1、init_task是第一个进程(0号进程)的进程描述结构体变量,它的初始化通过硬编码的方式固定下来,而其他进程的初始化都是通过do_fork复制父进程的方式初始化的。
2、内存管理相关代码。
mm和active_mm是和进程地址空间、内存管理相关的数据结构指针,包含多个数据段,代码段,堆栈段。
3、进程之间的父子、兄弟关系
struct task_struct数据结构中记录当前进程的父进程real_parent、parent,记录当前进程的子进程的是双向链表struct list_head children,记录当前进程的兄弟进程的是双向链表struct list_head sibling。父子兄弟之间复杂的链表关系都通过指针或者双向链表关联起来。
4、保存进程上下文中CPU相关一些状态信息的数据结构
struct thread_struct保存进程上下文中CPU相关的一些状态信息的数据结构。其中最重要的是sp和ip,在x86-32位系统中,sp用来保存进程上下文中的ESP寄存器状态,ip用来保存进程上下文中的EIP机寄存器状态。
5、进程的创建和过程分析
进程的创建大概就是把当前进程的描述符等相关进程资源复制一份,产生一个子进程,根据子进程的需要对复制的进程描述符做一些修改,然后将创建好的子进程放入运行队列(对应操作系统中的就绪队列)。
(三)分析进程创建过程

给menuOS添加断点,分别在sys_clone do_fork dup_task_struct copy_process``copy_thread处


在命令行中输入fork发现停在sys_clone处,说明系统调用函数是sys_clone继续执行会停在do_fork中
2019-2020-1 20199302《Linux内核原理与分析》第七周作业的更多相关文章
- 2019-2020-1 20199329《Linux内核原理与分析》第九周作业
<Linux内核原理与分析>第九周作业 一.本周内容概述: 阐释linux操作系统的整体构架 理解linux系统的一般执行过程和进程调度的时机 理解linux系统的中断和进程上下文切换 二 ...
- 2019-2020-1 20199329《Linux内核原理与分析》第二周作业
<Linux内核原理与分析>第二周作业 一.上周问题总结: 未能及时整理笔记 Linux还需要多用 markdown格式不熟练 发布博客时间超过规定期限 二.本周学习内容: <庖丁解 ...
- 20169212《Linux内核原理与分析》第二周作业
<Linux内核原理与分析>第二周作业 这一周学习了MOOCLinux内核分析的第一讲,计算机是如何工作的?由于本科对相关知识的不熟悉,所以感觉有的知识理解起来了有一定的难度,不过多查查资 ...
- 20169210《Linux内核原理与分析》第二周作业
<Linux内核原理与分析>第二周作业 本周作业分为两部分:第一部分为观看学习视频并完成实验楼实验一:第二部分为看<Linux内核设计与实现>1.2.18章并安装配置内核. 第 ...
- 2018-2019-1 20189221 《Linux内核原理与分析》第九周作业
2018-2019-1 20189221 <Linux内核原理与分析>第九周作业 实验八 理理解进程调度时机跟踪分析进程调度与进程切换的过程 进程调度 进度调度时机: 1.中断处理过程(包 ...
- 2017-2018-1 20179215《Linux内核原理与分析》第二周作业
20179215<Linux内核原理与分析>第二周作业 这一周主要了解了计算机是如何工作的,包括现在存储程序计算机的工作模型.X86汇编指令包括几种内存地址的寻址方式和push.pop.c ...
- 2019-2020-1 20209313《Linux内核原理与分析》第二周作业
2019-2020-1 20209313<Linux内核原理与分析>第二周作业 零.总结 阐明自己对"计算机是如何工作的"理解. 一.myod 步骤 复习c文件处理内容 ...
- 2018-2019-1 20189221《Linux内核原理与分析》第一周作业
Linux内核原理与分析 - 第一周作业 实验1 Linux系统简介 Linux历史 1991 年 10 月,Linus Torvalds想在自己的电脑上运行UNIX,可是 UNIX 的商业版本非常昂 ...
- 《Linux内核原理与分析》第一周作业 20189210
实验一 Linux系统简介 这一节主要学习了Linux的历史,Linux有关的重要人物以及学习Linux的方法,Linux和Windows的区别.其中学到了LInux中的应用程序大都为开源自由的软件, ...
- 2018-2019-1 20189221《Linux内核原理与分析》第二周作业
读书报告 <庖丁解牛Linux内核分析> 第 1 章 计算工作原理 1.1 存储程序计算机工作模型 1.2 x86-32汇编基础 1.3汇编一个简单的C语言程序并分析其汇编指令执行过程 因 ...
随机推荐
- 嵌入式02 STM32 实验08 外部中断
一.中断 由于某个事件的发生,CPU暂停当前正在执行的程序,转而执行处理事件的一个程序.该程序执行完成后,CPU接着执行被暂停的程序.这个过程称为中断.(我正在捉泥鳅,但是我妈喊我回家吃饭,我必须回家 ...
- day10——动态参数、函数注释、名称空间、函数的嵌套、global及nonlocal
day10 三元运算符: 变量 = 条件成立的结果 条件判断 条件不成立的结果 补充: # lst = [12,23,3,4,5,6] # def func(*args): # print(*args ...
- C语言:求π
1835: 圆的面积 本题的关键在于如何求π: 今天先给给大家介绍一种针对本题的方法——利用反三角函数求π. 在高数中arcsin(0)=arccos(1)=π,不过编译器中并没有arcsin和arc ...
- 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用
一般来说,删除节点可分为两个步骤: 首先找到需要删除的节点: 如果找到了,删除它. 说明: 要求算法时间复杂度为 O(h),h 为树的高度. 示例: root = [5,3,6,2,4,null,7] ...
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 18-22: ordinal not in range(128)
文件,放在site-package \Python27\Lib\site-packages sitecustomize.py # -*- coding: utf-8 -*- import sy ...
- ElasticSearch监控工具 - cerebro
官方地址:https://github.com/lmenezes/cerebro 需要有java环境 下载地址:https://github.com/lmenezes/cerebro/releases ...
- gin-swagger生成API文档
github地址:https://github.com/swaggo/gin-swagger 下载安装cmd/swag命令工具包 先下载cmd包,才能执行相关命令 go get -u github.c ...
- selenium中元素操作之简单的鼠标、键盘操作(三)
1.鼠标操作导入类:ActionChains --鼠标的操作形成一连串的动作链,由selenium的ActionChains类来完成模拟鼠标操作手表操作的过程:1.鼠标的操作,先放到一个列表中2.利用 ...
- ASP.NET SignalR 系列(三)之代码实现
说在前头: 因SignalR默认采用camel的编码规范,故前端调用后端的对象或者方法时,首字母均需要小写 创建集线器 创建完,文件中默认创建了一个不带参数Hello方法的示例,我们修改一下,带个参数 ...
- DNS原理及劫持问题
对于互联网,人们总是高谈阔论,却很少有人愿意去了解电脑.手机.电视这些设备到底是如何被“连接”起来的.本文通过“我”,一个普通的网络请求的视角,给大家介绍下“我”的工作流程是如何的. 人们动动手指,点 ...