如何解析INFORMIX-ONLINE动态服务器多线索结构

发布时间:2021-11-30 16:40:14 作者:柒染
来源:亿速云 阅读:147

如何解析INFORMIX-ONLINE动态服务器多线索结构,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1.什么是线索?
一个线索可以被认为是程序中正在执行的一组指令的序列。当线索在同一实体中运行时则称为多线索。
2.单线索和多线索
一个通常没有实现线索的UNIX进程可被认为是一个单线索进程。在这样的进程中,只有一处指令序列执行,操作系统的责任是调度并执行该进程。
多线索是一种方法,使用这种方法,可以为不同的用户执行同一进程而不必在操作系统级形成多个进程。
多线索是一个系统级别的概念,在这里,程序实际执行机器指令操纵进程,使该进程可以为许多用户而不仅仅是单用户执行,程序完全在用户级别上这些指令,而不是在Unix核心级别。就Unix而言,这个多线索进程就像其他进程一样,是一单个进程。
3.虚处理器
组成数据库服务器的进程称之为虚拟处理器(virtual processor),每个虚拟处理器(VP)都属于一个虚拟处理器(VP类)。一个VP类是一组以线索形式完成指定工作的进程的集合,诸如写磁盘逻辑日志,或从磁盘读数据。这意味着属于某一特定的VP只能运行同类的线索。每个虚拟处理器(VP)类可以包含一个或多个VP,在大多数情况下,其个数可由online管理员配置。所有VP执行程序均为oninit。
4.运行一个线索
一个线索要么在一个指定的处理器上运行,要么在一系列中的某一队列中。就绪队列中保存了准备运行线索的上下文。
同类的虚拟处理器共享就绪队列,由此,一个线索在其生命期内可由不同的虚拟处理器调度运行。这种机制能平衡各处理器之间的负载,并能保证只要有可用处理器,就能运行线索。
5.online多线索结构的优点
做同样的工作只需少量的数据库服务进程。
多个数据库服务进程可为同一用户服务。
在数据库服务进程内部进行线索的上下文切换要比操作系统执行的快。
数据库服务器可以进行自行的线索调度策略。
很容易利用硬件厂商提供的某些调度特点。
6.虚处理器类
CPU 所有用户线索和一些系统线索可运行在这一类上,这些线索中不能有阻塞的系统调用。
PIO 运行写物理日志的内部线索。
LIO 运行写逻辑日志的内部线索。
AIO 运行除写日志外的所有磁盘I/O操作的内部线索。
ADT 运行安全审计线索。
6.客户/服务器连接
客户应用与数据库服务的连接可通过共享内存、sockets或ITL运行。
探询线索(poll)负责侦听客户应用新的连接请求。
侦听线索为用户设置一个称之为  会话数据块的数据结构。
一旦会话控制设置完成,sqlexec线索负责将online处理结果返回给应用程序,poll线索负责接受来自应用的消息。
7.VPs如何处理操作?
以一条select语句由数据库服务进程处理的过程为例
CPU类的虚拟处理器中的sqlexec线索(客户的主线索)将分析并优化select语句,它将读取缓冲区中符合条件的页。
如果sqlexec线索在缓冲区中找不到合适的页,它将把从磁盘读页的请求放进AIO vp队列。然后,sqlexec线索将控制转到就绪队列中的另一个线索,并将自己放到睡眠队列,,等待IO虚拟处理器磁盘请求。
AIO虚拟处理器从磁盘读数据也并放进缓冲区,当操作完成后,它唤醒sqlexec线索并使之重新回到就绪队列,由此可以继续select语句的执行。
online系统的每个chunk都有一个AIO请求队列。

看完上述内容,你们掌握如何解析INFORMIX-ONLINE动态服务器多线索结构的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. erlang string to term   如何把字符串动态解析成为Erlang数据结构
  2. 【数据结构】线索化二叉树中序线索化的递归写法和非递归写法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

informix online

上一篇:怎么在Java中调用C/C++本地库

下一篇:C/C++ Qt TreeWidget单层树形组件怎么应用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》