上下文

进程上下文、中断上下文及原子上下文***

試著忘記壹切 提交于 2019-12-02 07:56:38
谈论进程上下文 、中断上下文 、 原子上下文之前,有必要讨论下两个概念: a -- 上下文 上下文是从英文 contex t翻译过来,指的是一种 环境 。相对于进程而言,就是进程执行时的环境; 具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。 b -- 原子 原子(atom) 本意是“不能被进一步分割的最小粒子”,而 原子操作(atomic operation )意为"不可被中断的一个或一系列操作" ; 一、为什么会有上下文这种概念 内核空间和用户空间是现代 操作系统 的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信任,而应用程序运行在较低级别(用户态)。在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内存映射,即自己的地址空间。 其中处理器总处于以下状态中的一种: 内核态 ,运行于 进程上下文 ,内核代表进程运行于内核空间; 内核态 ,运行于 中断上下文 ,内核代表硬件运行于内核空间; 用户态 ,运行于用户空间。   上下文的切换,用户空间和内核空间具有不同的 地址映射,通用或专用的寄存器组,而用户空间的进程要传递很多变量、参数给内核,内核也要保存用户进程的一些寄存器、变量等

Go标准库Context

半腔热情 提交于 2019-12-02 06:51:57
Go标准库Context 在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的 goroutine 通常需要访问一些与请求特定的数据,比如终端用户的身份认证信息、验证相关的token、请求的截止时间。 当一个请求被取消或超时时,所有用来处理该请求的 goroutine 都应该迅速退出,然后系统才能释放这些 goroutine 占用的资源。 为什么需要Context 基本示例 package main import ( "fmt" "sync" "time" ) var wg sync.WaitGroup // 初始的例子 func worker() { for { fmt.Println("worker") time.Sleep(time.Second) } // 如何接收外部命令实现退出 wg.Done() } func main() { wg.Add(1) go worker() // 如何优雅的实现结束子goroutine wg.Wait() fmt.Println("over") } 全局变量方式 package main import ( "fmt" "sync" "time" ) var wg sync

《统计自然语言处理》第九章

99封情书 提交于 2019-12-02 06:47:10
词义消歧 词义消歧又称之为词义标注,任务是确定 一个多义词在给定的上下文语境当中的具体含义 。 发展概述 早期多采用基于规则的分析方法; 20世纪80年代以后,基于大规模语料库的统计机器学习方法在自然语言领域得到了广泛应用; 除此之外,还有一个重要来源是基于词典信息的消歧方法。 有监督的消歧方法当中,可以认为 多义词的语义是与不同上下文进行对应 的,所以说多义词的识别问题也就是词语的 上下文分类 问题; 无监督的消歧方法当中,首先利用 聚类算法 对于同一个 多义词的上下文进行等价类划分 ,如果一个词的上下文出现在多个等价类当中,认为该词是一个多义词。 有监督的词义消歧办法 基于互信息的词义消歧办法 基本思路 是为每一个需要消歧的多义词 寻找一个上下文特征 ,而使得这个 特征可以可靠的指示 该多义词在特定上下文语境中使用的是哪种 语义 。 在双语料库中,可以将英语单词看作是汉语词语的语义,将决定汉语词语的条件看作是语义指示器。 具体求解过程: 训练 使用Flip-Flop算法 T 1 . . . T m T_1...T_m T 1 ​ . . . T m ​ 是语义, V 1 . . . V m V_1...V_m V 1 ​ . . . V m ​ 是语义指示器的取值,那么算法执行步骤如下。 (1)随机将 T 1 . . . T m T_1...T_m T 1 ​ . . . T

SpringBoot-2.2.0版本启动过程

蹲街弑〆低调 提交于 2019-12-02 06:06:32
启动流程图如下: 第一步,先进入启动类 @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } 第二步,执行run方法,实际上执行的是 【 org.springframework.boot.SpringApplication# run (java.lang.Class<?>[], java.lang.String[])】 public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) { return run(new Class<?>[] { primarySource }, args); } public static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) { // 初始化SpringApplication,然后执行run方法 return new SpringApplication(primarySources

PendSV异常介绍

倾然丶 夕夏残阳落幕 提交于 2019-12-02 04:42:29
PendSV 的典型使用场合是在上下文切换时(在不同任务之间切换)。 例如, 一个系统中 有两个就绪的任务,上下文切换被触发的场合可以是: 1 执行一个系统调用 2 系统滴答定时器(SYSTICK)中断,(轮转调度中需要) 让我们举个简单的例子来辅助理解。假设有这么一个系统,里面有两个就绪的任务,并 且通过 SysTick 异常启动上下文切换。如图 7.15 所示。 上图是两个任务轮转调度的示意图。但若在产生 SysTick 异常时正在响应一个中断,则SysTick 异常会抢占其 ISR。在这种情况下, OS 不得执行上下文切换,否则将使中断请求被延迟,而且在真实系统中延迟时间还往往不可预知——任何有一丁点实时要求的系统都决不能容忍这种事。因此,在 CM3 中也是严禁没商量——如果 OS 在某中断活跃时尝试切入线程模式,将触犯用法 fault 异常。 为解决此问题,早期的 OS 大多会检测当前是否有中断在活跃中,只有没有任何中断需 要响应时,才执行上下文切换(切换期间无法响应中断)。然而,这种方法的弊端在于,它 可以把任务切换动作拖延很久(因为如果抢占了 IRQ,则本次 SysTick 在执行后不得作上下 文切换,只能等待下一次 SysTick 异常),尤其是当某中断源的频率和 SysTick 异常的频率比较接近时,会发生“共振”。 现在好了, PendSV 来完美解决这个问题了

JS基础-函数

冷暖自知 提交于 2019-12-02 03:52:19
函数 JS运行分三步: 语法分析(通篇扫描是否有语法错误),预编译(发生在函数执行的前一刻),解释执行(一行行执行)。 预编译执行分五步: 一、创建AO对象(Activation Object 执行期上下文) 二、找形参和变量声明,将变量和形参名作为AO属性名,值为undefined. 变量声明提升(变量放到后面也不会报错,只是未定义类型)如:console.log(a);var a=10;结果undenfined; 三、将实参值和形参统一(传参) 四、在函数体里面找到函数声明{函数声明整体提升(相当于放到程序最前面)} 五、值赋予函数体,执行(声明函数和变量的部分直接不看了) 函数作用域[[scope]] 每个javascript函数都是一个对象,对象中有的属性可以访问,有的不能,这些属性仅供javascript引擎存取,如[[scope]]。 [[scope]]就是函数的作用域,其中存储了执行期上下文的集合。 执行期上下文 : 当函数执行时,会创建一个称为执行期上下文的内部对象(AO)。一个执行期上下文定义了一个函数执行时的环境,函数每次执行时对应的执行期上下文都是独一无二的,所以多次调用一个函数会导致创建多个执行期上下文,当函数执行完毕,它所产生的执行上下文被销毁。 作用域链 [[scope]] 中所存储的执行期上下文对象的集合,这个集合呈链式链接

BiseNet阅读总结

北城余情 提交于 2019-12-02 03:38:59
一、思路 语义分割既需要 丰富的空间信息 ,又需要 较大的感受野 。然而,现代方法通常会牺牲空间分辨率来实现实时推理速度,导致性能低下。本文提出了一种新的双边分割网络(BiSeNet)来解决这一难题。我们首先设计一个空间路径以较小的步幅保存空间信息并生成高分辨率特征。同时,采用快速下采样策略的上下文路径获取足够的接受域。在此基础上,提出了一种新的特征融合模块,实现了特征的有效融合。 二、语义分割研究现状 实时语义分割的算法表明,模型的加速方法主要有三种。1)尝试通过裁剪或调整大小来限制输入大小,降低计算复杂度。虽然该方法简单有效,但空间细节的丢失会破坏预测,特别是边界附近的预测,导致度量和可视化精度下降。2)一些工作不是调整输入图像的大小,而是对网络的通道进行修剪以提高推理速度,特别是在基础模型的早期阶段。然而,它削弱了空间能力。3)对于最后一种情况,ENet建议放弃模型的最后一个阶段,追求一个非常紧密的框架。然而,这种方法的缺点是显而易见的:由于ENet在最后阶段放弃了向下采样操作,模型的接受域不足以覆盖较大的对象,导致识别能力较差。总的来说,以上方法都是在精度和速度之间进行折衷,在实际应用中效果较差。 为了弥补上述空间细节的损失,研究者们广泛采用了U型结构。通过融合骨干网的层次特征,u形结构逐渐提高了空间分辨率,填补了一些缺失的细节。然而,这种技术有两个缺点。 1

线程的上下文切换

Deadly 提交于 2019-12-02 03:30:27
   利用时间片轮转的方式,CPU给每个任务都服务一定的时间,然后把当前任务的状态保存下来,在加载下一个任务后,继续服务下一个任务,这个过程叫做 上下文切换 。   时间片轮转的方式使得多个任务在同一颗CPU上执行变成可能。       1、进程 (有时也称为任务)是指一个程序运行的实例。在Linux系统中,线程就是能并行运行并且与它们父进程(创建它们的进程)共享同一地址空间(一段内存区域)和其他资源的轻量级的进程。    2、上下文: 指某一时间点CPU寄存器和程序计数器的内容。    3、寄存器: 是CPU内部的数量较少但是速度很快的内存(与之对应的是CPU外部相对较慢的RAM主内存)。寄存器通过对常用值(通常是运算的中间值)的快速访问来提高计算机程序运行的速度。    4.程序计数器: 是一个专用的寄存器,用于表明指令序列中CPU正在执行的位置,存的值为正在执行的指令的位置或下一个将要被执行的指令的位置,具体依赖特定的系统。    5.PCB-“切换桢”: 上下文切换可以认为是内核(操作系统的核心)在CPU上对于进程(包括线程)进行切换,上下文切换过程中的信息是保存在进程控制块中的。PCB还经常被称作“切换桢”。信息会一直保存到CPU的内存中,直到它们被再次使用。    6.上下文切换的活动     1)挂起一个进程,将这个进程在CPU中的状态(上下文)存储于内存中的某处。

5g NR 38.300 中文 翻译

别等时光非礼了梦想. 提交于 2019-12-02 03:12:12
4.整体架构和功能区分 4.1 整体架构 NG-RAN 可以是: gNB:向 UE 提供 NR 用户平面和控制平面协议端接 ng-eNB: 向UE提供E-UTRA用户面和控制面协议端接 4.2 功能区分 gNb和ng-eNB承载如下功能: 无线资源管理功能:无线承载控制、无线接入控制、移动性控制、在上行链路和下行链路(调度)中动态分配资源到UE; IP头压缩,加密和完整性保护; 在 UE接入时,无法从 UE 提供的信息确定到 AMF 的路由时,为UE选择AMF; 将用户面数据路由到UPF; 将控制面数据路由到AMF; 连接建立和释放; Paging的调度和传输; 系统广播信息的调度和传输(源自AMF或者OAM); 移动性和调度的测量和测量报告配置; 上行链路中的传输级分组标记(?) 会话管理; 支持网络切片; QoS Flow 管理和到drb的映射; 支持UE 的RRC_INACTIVE态; NAS消息的分发; 无线网络共享; 双链接; NR-EUTRA间的紧密互通; AMF承载如下功能: NAS信令的终止; NAS信令的安全 AS安全控制; 3GPP网络间移动,CN节点间的信令; 空闲模式 UE 可达性(包括Paging重传的控制和执行); 注册区管理; 支持系统内和系统间移动性; 接入鉴权; 漫游的接入授权; 移动性管理控制(订阅和策略) 支持网络切片; SMF选择;

app测试自动化之混合APP(之前的三篇为原生APP的操作)

大城市里の小女人 提交于 2019-12-02 03:10:55
混合开发的 App中,经常会有内嵌的 H5页面:定位方法与原生APP不同,需要上下文切换 #获取所有上下文 contexts=dr.contexts print(contexts) #打印当前上下文(有点问题应该是webview) cur_context=dr.current_context print(cur_context) #切换到webview界面 dr.switch_to.context('WEBVIEW_com.wondershare.drfone') 来源: https://www.cnblogs.com/saran/p/11728095.html