写点什么

1 对 1 直播源码:运行多个任务,资源如何切换?

  • 2022 年 8 月 22 日
    湖北
  • 本文字数:908 字

    阅读完需:约 3 分钟

1 对 1 直播源码是个用户数规模庞大的 app,在系统运行的过程当中,后端服务能同时运作好几个任务,为很多客户提供服务,提升用户体验。实际上,1 对 1 直播源码并不是真正的同时运作好几个任务,而是靠 CPU 布置任务轮着运作,让日常任务体验起来好像同时运行,那 CPU 是怎样进行分配任务的呢?这和 CPU 寄存器和程序计数器相关。


一、CPU 上下文

在 1 对 1 直播源码的 CPU 运作每一个任务之前,一定要知道任务是在什么地方加载、如何开始运作的,这个时候就需要 CPU 上下文的支持。CPU 上下文便是 CPU 寄存器和程序计数器,是 CPU 运作一定要存在的自然环境。CPU 寄存器是 CPU 内置的内存,尽管存储量非常小,可是运作的时候特别快;程序计数器就是用来储存 CPU 指令的位置,包含正在执行或即将执行的指令位置。

二、CPU 如何实现任务切换

CPU 任务切换是 CPU 的上下文切换,1 对 1 活源将 CPU 执行任务之前的 CPU 上下文存储,然后加载新的任务上线,并存储在 CPU 寄存器和程序计数器中,然后把任务指令跳转到存储新的要求的程序计数器中,开始运行新的任务。


不管上一个任务的上下文是什么,还是新任务的上下文是什么,1 对 1 的活动源代码都将存储在系统内核中。当前一个任务再次运行时,它会再次加载到 CPU 中,这样既可以不影响原来任务的运行状态,又可以使任务看起来是连续运行的。

三、CPU 上下文是如何切换的

1、进程上下文切换

部署后端业务时,会部署 Linux 操作系统,方便操作。Linux 操作系统根据权限级别将进程运行空间划分为内核空间和运行空间,包括 Ring0、Ring1、Ring2 和 Ring3。CPU 特权级别包括 Ring0 和 Ring3。Ring0 是内核空间,Ring3 是用户空间。因此,进程上下文切换是内核模式和用户模式之间的转换。


2、线程上下文切换

线程上下文转换出现的场景,与进程有一定的关系,假如前后转换的两个线程,并不是归属于同一进程,是因为 2 个线程不能资源共享,因此线程切换就和进程切换都是一样的;假如前后切换的线程归属于相同的进程,在开展线程切换时,能保持虚拟内存设置中资源不动,只转换 1 对 1 直播源码的部分无法共享的数据信息。

3、中断上下文切换

有时候在 1 对 1 直播源码处理日常任务时,为了能快速反应硬件,会终止进程的调度与执行,为了后续日常任务持续执行,系统需要把中断时的工作任务状态保留下来。

用户头像

官网:nasinet.com 📞13085161899! 2022.06.06 加入

10年软件开发经验,专业app开发公司,专注APP开发、小程序定制、直播系统开发、区块链APP开发、短视频直播系统、直播带货系统,赛事直播系统,娱乐交友直播等。

评论

发布
暂无评论
1对1直播源码:运行多个任务,资源如何切换?_软件开发_开源直播系统源码_InfoQ写作社区