System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向无服务器计算的多线程执行与资源安全共享的云计算系统技术方案_技高网

一种面向无服务器计算的多线程执行与资源安全共享的云计算系统技术方案

技术编号:44239793 阅读:12 留言:0更新日期:2025-02-11 13:39
本发明专利技术公开了一种面向无服务器计算的多线程执行与资源安全共享的云计算系统,涉及无服务计算领域。本发明专利技术提出了多线程资源共享并行安全执行模型,由多线程高效并行执行、多线程资源安全共享模块组成;所述多线程高效并行执行提出了一种针对函数单实例的线程级别资源管理机制,允许对每个线程的资源分配进行精确控制,同时设计了容器内顺序执行机制;在所述多线程资源安全共享模块中,MPK保护机制是线程内存安全的核心组成部分,MPK提供了每线程内存保护,允许在不同线程之间创建内存隔离区域,从而增强了数据安全性。本发明专利技术不仅保证了任务执行的顺序性,而且通过资源的恢复和共享,提高了容器的运行效率和资源利用率。

【技术实现步骤摘要】

本专利技术涉及无服务器计算领域,尤其涉及一种面向无服务器计算的多线程执行与资源安全共享的云计算系统


技术介绍

1、无服务器计算(serverless computing)是一种云计算模型,用户可以直接编写和运行代码,而无需管理底层服务器的基础设施。在无服务器模型中,应用程序通常部署在容器中,这些容器可以在任何计算环境中运行,并且能够根据需要自动启动。开发者将代码上传到云平台后,云服务提供商负责配置、扩展和服务器资源管理。无服务器应用程序是事件驱动的,它们响应特定事件或触发器,如web请求、数据库更新或队列消息。当这些事件发生时,无服务器平台会自动为代码分配资源,执行完毕后立即释放资源。在这种模型下,服务器的管理、扩展和维护由云服务提供商(如aws、阿里云)自动处理。无服务器计算按需自动扩展,根据实际资源使用收费,而不是预付的固定容量。

2、无服务器计算平台当前处于快速发展阶段。aws lambda是amazon的无服务器计算平台之一。lambda函数可以通过多种事件触发,如api gateway、s3文件上传、dynamodb数据库更改等。lambda支持多种编程语言,包括python、node.js、go、java等。aws lambda支持并发执行多个请求。它提供了保留并发度的功能,确保特定的lambda函数能够为突发负载预留资源。此外,aws lambda能够通过自动扩展处理高并发请求,允许成千上万个请求同时处理。阿里云的无服务器计算平台称为函数计算(function compute)。它允许用户编写代码并通过http请求、对象存储(oss)、消息服务等事件触发函数运行,支持多种编程语言(python、node.js、java、php等)。阿里云函数计算同样支持高并发。函数计算根据请求量自动扩展,分配相应的资源。通过配置,可以确保多个函数实例同时运行,处理大量的并发请求。

3、无服务器计算当前也面临着种种挑战。一方面,无服务器计算面临容器冷启动的问题。通常情况下,当某个无服务器函数在一段时间内未被调用时,提供商会将其关闭以节省能源和避免过度配置。下次有用户运行一个调用该函数的应用程序时,无服务器提供商将必须重新启动并重新开始托管该函数。这个启动时间增加明显的延迟,称为“冷启动”。一旦函数启动并运行,它在后续请求中将获得更快的服务速度(热启动),但如果在一段时间内没有再次被请求,就会重新进入休眠。这意味着下一个请求该函数的用户将经历冷启动。当冷启动发生时,serverless平台需要执行实例调度、镜像分发、实例创建、资源配置、运行环境初始化以及代码加载等一系列操作,这一过程引发的时延通常可达请求实际执行时间的数倍,从而导致影响用户体验,尤其是在依赖低延迟的应用程序中。其次,无服务器函数的并行执行仍然存在内存资源使用率低的问题。如果一个无服务器函数需要同时处理来自用户的多个事件或请求,平台可能需要为每个事件分配独立的资源。例如,当云服务提供商处理来自不同用户的多个机器学习推理任务的执行请求时,将启用多个容器来执行。为了执行相同的函数,调用执行相同的代码并且使用相同的环境,在初始化过程中,每个容器都会加载本次机器学习推理任务所需的库、模型等。这些预加载的库无法在容器之间的调用之间共享,这会导致内存资源利用率降低。

4、另一方面,无服务器计算也存在安全上的问题。尽管容器技术在提供轻量级、可移植的应用部署环境方面带来了许多优势,但与虚拟机相比,容器也面临一些独特的安全问题。由于容器在同一主机上共享操作系统内核,这与虚拟机相比可能导致较弱的隔离性。如果攻击者能够成功越过容器边界,他们可能能够影响其他容器和主机上运行的应用程序,这是安全隐患之一。无服务器计算采取多租户的模式,无服务器服务中的函数通常运行在为多个客户运行代码的共享基础设施上,当涉及敏感数据时,可能会出现用户之间敏感数据泄露的可能。同时云服务商出于商业目的可能会保留用户的敏感数据,使得敏感数据无法得到安全保护。镜像是容器的基本构建块,其中包含了应用程序及其依赖的所有文件系统层。如果使用未经验证或未更新的镜像,可能存在潜在的漏洞,从而引入安全风险。

5、因此,本领域的技术人员致力于开发一种多线程资源共享并行安全执行模型,这是一种多线程并行执行架构,利用函数的多线程执行性能,提高并行度,降低响应时间,确保在高并发负载下仍能有效地利用计算资源,提高系统的吞吐量。由多线程高效并行执行、多线程资源安全共享模块组成。


技术实现思路

1、有鉴于现有技术的上述缺陷,本专利技术所要解决的技术问题是如何高效安全执行。

2、为实现上述目的,本专利技术提供了一种面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,本专利技术提出了多线程资源共享并行安全执行模型,由多线程高效并行执行、多线程资源安全共享模块组成;所述多线程高效并行执行提出了一种针对函数单实例的线程级别资源管理机制,允许对每个线程的资源分配进行精确控制,同时设计了容器内顺序执行机制;在所述多线程资源安全共享模块中,mpk保护机制是线程内存安全的核心组成部分,mpk提供了每线程内存保护,允许在不同线程之间创建内存隔离区域,从而增强了数据安全性。

3、进一步地,所述多线程高效并行执行利用线程的轻量级特性,使得在同一个进程中可以并行运行多个线程,每个线程负责处理一部分任务。

4、进一步地,所述线程级别资源管理机制通过ptrace来拦截容器内进程的系统调用,实现系统调用注入,即systeminject,从而在任务执行完毕后,对容器环境进行恢复,确保新任务启动时能够回到容器初始化后的状态。

5、进一步地,所述线程级别资源管理机制的实现包括以下步骤:

6、步骤1、使用ptrace的ptrace_attach命令来附加到目标进程;

7、步骤2、通过ptrace_syscall命令让进程在每次系统调用前后暂停,以便进行干预;

8、步骤3、在任务执行结束后,利用ptrace提供的读写内存和寄存器的能力,将容器环境恢复到初始化状态,为下一个任务的执行做好准备。

9、进一步地,所述线程级别资源管理机制能够在多个线程中执行。

10、进一步地,在所述多线程资源安全共享模式中,用户会通过http trigger发送请求被api服务器接收,接着会进入相应的容器并且启动相应的线程进行处理。

11、进一步地,所述多线程资源安全共享模式涉及的功能有线程管理,cpu资源调度以及虚拟内存的管理。

12、进一步地,所述线程管理需要函数实例在多线程并行执行时保证共享资源的正确性和可靠性,保护用户的敏感数据不会在线程之间泄露,本专利技术采取mpk的保护模式来对线程安全进行保护。

13、进一步地,所述虚拟内存的管理通过cppparser对代码进行解析并生成对应的抽象语法树,确定变量之间的依赖关系,对每个线程的私有变量进行保护,共享变量作为共享资源在函数之间共享,有效提高内存利用本文档来自技高网...

【技术保护点】

1.一种面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,本专利技术提出了多线程资源共享并行安全执行模型,由多线程高效并行执行、多线程资源安全共享模块组成;所述多线程高效并行执行提出了一种针对函数单实例的线程级别资源管理机制,允许对每个线程的资源分配进行精确控制,同时设计了容器内顺序执行机制;在所述多线程资源安全共享模块中,MPK保护机制是线程内存安全的核心组成部分,MPK提供了每线程内存保护,允许在不同线程之间创建内存隔离区域,从而增强了数据安全性。

2.如权利要求1所述的面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,所述多线程高效并行执行利用线程的轻量级特性,使得在同一个进程中可以并行运行多个线程,每个线程负责处理一部分任务。

3.如权利要求2所述的面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,所述线程级别资源管理机制通过ptrace来拦截容器内进程的系统调用,实现系统调用注入,即systeminject,从而在任务执行完毕后,对容器环境进行恢复,确保新任务启动时能够回到容器初始化后的状态。

4.如权利要求3所述的面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,所述线程级别资源管理机制的实现包括以下步骤:

5.如权利要求4所述的面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,所述线程级别资源管理机制能够在多个线程中执行。

6.如权利要求5所述的面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,在所述多线程资源安全共享模式中,用户会通过http trigger发送请求被API服务器接收,接着会进入相应的容器并且启动相应的线程进行处理。

7.如权利要求6所述的面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,所述多线程资源安全共享模式涉及的功能有线程管理,cpu资源调度以及虚拟内存的管理。

8.如权利要求7所述的面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,所述线程管理需要函数实例在多线程并行执行时保证共享资源的正确性和可靠性,保护用户的敏感数据不会在线程之间泄露,本专利技术采取mpk的保护模式来对线程安全进行保护。

9.如权利要求8所述的面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,所述虚拟内存的管理通过cppparser对代码进行解析并生成对应的抽象语法树,确定变量之间的依赖关系,对每个线程的私有变量进行保护,共享变量作为共享资源在函数之间共享,有效提高内存利用率,节省内存资源。

10.如权利要求9所述的面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,将得到的所述抽象语法树中的各个变量的关系用图的形式表现,以数据的传入作为起点,通过图遍历算法进行遍历,找到所有和Input相关的变量,作为为privatestate进行保护;与用户input无关的内容作为shared state被多个线程共享,做好自动分类之后利用mpk对每个并行线程的private state进行隔离保护。

...

【技术特征摘要】

1.一种面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,本发明提出了多线程资源共享并行安全执行模型,由多线程高效并行执行、多线程资源安全共享模块组成;所述多线程高效并行执行提出了一种针对函数单实例的线程级别资源管理机制,允许对每个线程的资源分配进行精确控制,同时设计了容器内顺序执行机制;在所述多线程资源安全共享模块中,mpk保护机制是线程内存安全的核心组成部分,mpk提供了每线程内存保护,允许在不同线程之间创建内存隔离区域,从而增强了数据安全性。

2.如权利要求1所述的面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,所述多线程高效并行执行利用线程的轻量级特性,使得在同一个进程中可以并行运行多个线程,每个线程负责处理一部分任务。

3.如权利要求2所述的面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,所述线程级别资源管理机制通过ptrace来拦截容器内进程的系统调用,实现系统调用注入,即systeminject,从而在任务执行完毕后,对容器环境进行恢复,确保新任务启动时能够回到容器初始化后的状态。

4.如权利要求3所述的面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,所述线程级别资源管理机制的实现包括以下步骤:

5.如权利要求4所述的面向无服务器计算的多线程执行与资源安全共享的云计算系统,其特征在于,所述线程级别资源管理机制能够在多个线程中执行。

6.如权利要求5所述的面向无服务器计算的多线程执行与资源安...

【专利技术属性】
技术研发人员:马汝辉何天墨蔡子诺管海兵
申请(专利权)人:上海交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1