进程与上下文

CAPL控制程控电源 汽车电子测试过程中,除了实车测试,还有台架测试,在进行台架测试时,都需要通过电源来模拟汽车电瓶给ECU供电,如果要进一步进行比较高效的压力测试或自动化测试,就需要用到程控电源,所以本章主要介绍CAPL是如何来控制程控电源的。 阅读详情
参考:  ChinaUnix博客
1. 进程状态

进程状态有:创建状态,就绪状态(内存,换出),执行状态(内核态,用户态),睡眠状态(内存,换出),僵死状态。

2. 进程地址空间
进程地址空间:内核空间(3G-4G),用户空间(0-3G)。用户空间中划分逻辑区。
进程逻辑区:正文段(代码和常量), 数据段(全局变量),(bss段对应未初始化的全局变量,合并到了数据段),堆栈段。(区和段一个意思)

编译器在虚地址空间上生成地址,由地址映射机构将虚地址转换成物理地址。因此,它不必知道内核以后会把程序装入内存的什么地方执行。

3.进程相关结构

1) 区表
多个进程可以共享一个正文区,但其数据区和堆栈区是各自私有的。
每个进程有一个私有的本进程区表pregion,每个区表项对应一个逻辑区,并含有该区在进程中的虚地址。
2) 页目录和页表
内存管理的基本单位称为页,大小512到4k字节(典型大小)。物理页面的分配不一定是连续的,内核中有空闲内存块表用于管理内存分配和回收。
每个进程有自己的页目录和页表,所以每个进程地址空间映射的物理内存是不一样的。两个进程的同一个虚拟地址处(如果都有物理内存映射)的值一般是不同的,因为他们往往对应不同的物理页。
3) u区
每个进程除了对应一个进程表项外,还有一个u区,存储进程的私有信息。只有内核才能访问u区,内核有一个结构变量u,存放当前正在运行进程的u区信息,内核通过u识别当前进程。内核只要通过一个新地址重写u区页表地址项,就能引用另一个进程的u区。
Unix进程控制块包含:proc结构——进程表项存放进程最基本的信息,常驻内存;user结构——主要包含那些只有进程执行时才会被使用的信息,在数据段内,执行时调到内存。

数据段U区中包括核心栈和user结构。仅当进程处于运行态时,各逻辑区才被加载到内存,数据段U区会被载入专门存放当前运行进程的内存U区页面中,从而使得proc结构与user结构结合,形成一个完整的pcb结构。

进程运行时,为了便于处理机从用户态转换到内核态,Unix在每个用户进程的PCB中建立一个针对系统的核心栈,通过核心栈共享核心正文段、以及与核心进程相关的系统数据结构和系统页表等。当进程请求系统服务时,可以通过该进程的核心栈直接链接到系统内核,实现从用户态到核心态的快速切换。Unix将每个进程中的核心栈其用户栈分开,不能互相传递参数。这样既方便核心程序执行又有利于内核保护。

Linux中有关一个进程的所有信息都保存在task_struct结构(1KB)中,紧挨进程核心栈(7KB),共2个页面大小。
4. 进程上下文
进程上下文包括:
用户上下文:进程正文区、数据区、堆栈区。
寄存器上下文:程序计数器、状态寄存器、栈指针、通用寄存器。
内核上下文:进程表项、进程u区、本进程区表和页表、核心栈,进程系统级上下文动态部分。
核心栈装有进程函数的调用序列,上下文层处理中断中的context压入和弹出等。一个进程在它的当前上下文层中运行。机器所能支持的中断级数目,限制了下下文层的数目。对于支持5层中断级的系统,一个进程最多可有7个上下文层:中断级5个、系统调用一个、用户级一个。
5. 上下文切换
进程上下文即是一个运行时环境,操作系统不允许随意的进程上下文切换(想想并发的目的)。
进程调度时机:1内核态执行使自己进入睡眠状态时。2内核态执行完毕,切换到用户态时。3内核态执行exit进入僵死状态时。
6. 进程地址空间的管理
allocreg 分配一个区数据结构,返回一个上锁的、已分配的区。

attachreg 将区附接到进程。在fork,exec期间,内核要使一个区和一个进程地址空间联系起来。

7. sleep和wakeup
在一个事件上睡眠,实际上是将一组时间映射到一组虚地址上,代表这些时间的地址被编码在内核中。
sleep将睡眠地址和优先级保存在进程表中,将进程放到睡眠进程的散列队列中。
wakeup对睡眠在输入的睡眠地址上的每个进程,将其状态置为就绪,并从睡眠进程队列移除,放到调度队列中。
【Unity】 预制体Prefab使用说明 在 Unity 中,Prefab 是一个可以预先制作并重复使用的 GameObject 或组件集合,Prefab 中的 GameObject 可以有子对象和其他组件。 阅读详情

相关推荐

从零搭建Synopsys EDA环境:Ubuntu系统下的完整安装与避坑指南

本文详细介绍了在Ubuntu系统下从零搭建Synopsys EDA环境的完整流程,包括系统配置、安装文件准备、核心工具安装、License配置及常见问题排查。特别针对数字IC设计场景,提供了VCS、Verdi、Design Compiler等EDA Tools的安装避坑指南和性能优化建议,帮助开发者高效搭建稳定的开发环境。

weixin_33738982的博客 491

非零基础自学计算机操作系统 第2章 进程、线程与作业 习题二

非零基础自学计算机操作系统 第2章 进程、线程与作业 习题二

代码改变世界 791

python数据处理与分析案例,python如何进行数据处理

大家好,本文将围绕基于python的数据处理案例展开说明,python数据处理与分析案例是一个很多人都想弄明白的事情,想搞清楚python如何进行数据处理需要先了解以下几个事情。大家好,小编来为大家解答以下问题,python数据处理案例步骤及其代码,python数据处理与分析教程,今天让我们一起来看看吧!哈喽~今天学习记录的是数据分析实训小案例。就用这个案例来好好巩固一下 python 数据分析三剑客。

a17348的博客 1238

操作系统进程、线程与作业(试题总结)

操作系统有关进程与线程方面的习题总结

改改的博客 1000

Petalinux-2018.3添加内核驱动(linux-xlnx源码打补丁)

大部分模块可以直接使用,需要添加自己的驱动文件时,可以通过linux-xlnx源码打补丁方式和使用PetaLinux编译为.ko文件加载运行,本文章介绍通过linux-xlnx源码打补丁方式添加内核驱动文件。根据查找资料,了解到可以通过打补丁方式添加到工程文件中。. /opt/tool-pkg/petalinux/2018.3/components/yocto/source/arm/layers/core/oe-init-build-env (该执行文件在Petalinux软件安装路径下)

sanyuedtaifen的博客 1554

各种逻辑漏洞

注册:短信轰炸验证码安全问题密码爆破邮箱轰炸用户任意注册、批量注册用户名枚举XSS(有框的地方就可以尝试插XSS)登录:短信轰炸、验证码安全问题、密码爆破、邮箱轰炸SQL注入撞库抓包把password字段修改为空值发送认证凭证替换、比如返回的数据包中包含账号,修改账号就能登录到其他账号Cookie仿冒修改返回包的相关数据,可能会登陆到其他的用户找回密码:短信邮箱轰炸、短信邮箱劫持重置任意用户账户密码、验证码手机用户未统一验证直接跳过验证步骤。

shirlly_的博客 2093

Linux:上下文,进程上下文和中断上下文概念,上下文切换

linux上下文状态机

W546556的博客 1564

[CSP-X2025山东小学组T4]勇者斗恶龙

[CSP-X2025山东小学组T4]勇者斗恶龙,动态规划

少儿编程乔老师 150

进程上下文与中断上下文的理解

内核态:在内核空间执行,通常是驱动程序,中断相关程序,内核调度程序,内存管理及其操作程序。用户态:用户程序运行空间。(1)进程上文:是指进程由用户态切换到内核态是需要保存用户态时cpu寄存器中的值,进程状态以及堆栈上的内容,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行。(2)进程下文:其是指切换到内核态后执行的程序,即进程运行在内核空间的部分。

lx123010的专栏 1715

泛微OA自定义post接口和路径(无侵入)

泛微OA自定义post接口和路径(无侵入)

技术分享 3870

TC397 EB MCAL开发从0开始系列 之 [17.1] ETH配置实战 - ping/发送

TC397 MCAL 从0开始之 ETH ping测试

yy九歌的博客 1506

进程上下文包括什么

进程上下文包括三个,用户及上下文,寄存器上下文和系统级上下文 用户级上下文:指令,数据,共享内存、用户栈 寄存器上下文:程序计数器,通用寄存器,控制寄存器,状态字寄存器,栈指针(用来指向用户栈或者内存栈) 系统级上下文:pcb,主存管理信息(页表&段表)、核心栈 ...

czsc03的博客 3567

【点云鸟瞰图BEV】点云鸟瞰图BEV原理与可视化

本节将介绍激光雷达等点云的鸟瞰图生成原理、代码及效果图。 1 BEV视图原理 点云BEV(Bird's Eye View)视图是指点云在垂直于高度方向的平面上的投影。通常,在获得bev视图前,会将空间分割成体素,利用体素对点云进行下采样,然后将每个体素作为一个点进行投影。体素是指将三维空间按照固定尺寸长方体进行划分时的长方体(Δl*Δw*Δh)。 体素投影时可以得到BEV视图的像素点坐标。每个像素点的特征取值则可以通过多种方式得到。 ...

叶子的博客 2万+

进程上下文与中断上下文详解

它没有进程的“身份”和“状态”供调度器管理,因此绝对不能睡眠或进行进程切换。简言之,中断处理程序和被中断进程之间,没有什么瓜葛,不具有绑定关系或代表关系,决不能通过进程调度恢复中断的执行。如果,非要在两者之间找一点关系的话,那就是中断处理程序借用被中断进程的内核栈(这一点也是可选地,linux允许设置独立内核栈)。在Linux内核中,“进程上下文”和“中断上下文”是两种截然不同的执行环境,理解它们的区别对于编写内核代码(尤其是驱动程序)至关重要。是 (可被更高优先级进程/中断抢占)(可被调度器切换出去)

sinat_56559405的博客 1086

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

进程上下文与线程上下文

转 C/C++ 内存对齐原则及作用 2015年10月04日 09:50:49 chy19911123 ...

cool grass's blog 1235

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

进程的上下文与进程的切换

1. 进程的上下文 用户级上下文:正文,数据,用户堆栈,以及共享存储区域 (都在用户空间) 寄存器上下文:通用寄存器,程序计数器,处理器状态寄存器,栈指针 (都在CPU中) 系统级上下文:进程控制块,内存管理信息,内核栈 (都在内核空间) 进程切换需要对上述全部信息进行切换,而模式切换(如有用户态切换到内核态)只是涉及寄存器上下文的切换。 2. 进程切换的步骤 切换新的页表,然后使用新的虚拟地址空间 切换内核栈,硬件(寄存器)上下文切换 注意:线程切换不需要进行步骤1 ...

weixin_44390164的博客 411

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

进程上下文切换与处理器上下文切换

文章目录1 进程上下文与中断上下文2 进程上下文切换2.1 概念2.2 步骤3 处理器模式切换3.1 概念3.2 步骤4系统任务与用户进程 1 进程上下文与中断上下文 进程上下文 所谓的“进程上下文”,就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容,当内核需要切换到另一个进程时,它需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,...

波点兔的博客 2245

进程与进程的上下文

异常控制流概念Q:程序的机器级代码的两种正常的执行顺序是什么?A:1、按顺序取下一条指令执行。     2、通过CALL/RET/Jcc/JMP等指令跳转到目标地址处执行。      q/a:CUP控制流:CPU所执行的指令的地址序列。      q/a:正常控制流:通过上述1、2方式得到的控制流。      q/a:异常控制流:某些特殊情况引起用户程序的正常执行被打断形成的意外控制流。     ...

haan的程序人生 1180

【Linux系统】进程切换与进程的上下文数据

本文详细讲解:进程上下文(CPU两类寄存器)、保存上下文的位置(task_struct)、上下文的作用、在进程切换中的运用

从不依靠,从不寻找,非常沉默,非常骄傲。 你必须非常努力,才能看起来毫不费力。 981

进程上下文与中断上下文

进程上下文与中断上下文   2011-11-19 00:16:56|  分类: LinuxDriver |  标签: |举报 |字号大中小 订阅       上下文context:上下文简单说来就是一个环境,相对于进程而言,就是进程执行时的环境。具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。        一个进程的上下文可以

lin111000713的专栏 529

进程上下文切换与线程上下文切换

进程上下文切换与线程上下文切换的区别 线程上下文切换 线程上下文切换在同一个进程中从一个线程切换到另一个线程。线程上下文切换非常有效且成本更低,因为它只涉及程序计数器,寄存器和栈指针的切换。线程上下文切换的成本与进入和退出内核的成本大致相同。 进程上下文切换 进程切换是一种上下文切换,它涉及将进程资源与新进程所需的资源进行切换,这意味着要切换内存地址空间,页表和内核资源,处理器中的缓存等。 区别 线程上下文切换 进程上下文切换 当CPU保存线程的当前状态并切换到同一进程的另一个线程时,就会发

qq_36553387的博客 1312
下一篇: c专家编程阅读笔记
cs064
博客等级 码龄17年 11粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值