開啟主選單
求真百科
搜尋
檢視 十字转门 的原始碼
←
十字转门
由於下列原因,您沒有權限進行 編輯此頁面 的動作:
您請求的操作只有這個群組的使用者能使用:
用戶
您可以檢視並複製此頁面的原始碼。
{| class="wikitable" align="right" |- | style="background: #008080" align= center| '''<big>十字转门</big> ''' |- | [[File:Ac6eddc451da81cbb3e8f6d95d66d01609243193.jpg|缩略图|居中|[https://baike.baidu.com/pic/%E8%92%99%E5%A5%87%C2%B7D%C2%B7%E8%B7%AF%E9%A3%9E/726966/1/a8014c086e061d95f662155f76f40ad162d9cab5?fr=lemma&ct=single 原图链接][https://baike.baidu.com/item/蒙奇•D•路飞/726966?fr=aladdin 来自百度的图片]]] |- | style="background: #008080" align= center| |- | align= light| |} 十字转门,又叫turnstile。Turnstile是一种数据抽象,用来封装休眠队列和与互斥锁和读/写锁相关的优先级继承信息。Turnstiles在Solaris7大幅改变,但基本前提仍然是相同的。首先,我们要看着2.5.1/2.6机制,然后看看在Solaris7发生什么改变。 =='''简介'''== tstile_mod的结构是这样展开的。它保持turnstiles的链接,以及实施所需的各个领域,如pool,活跃的数字行在tsm_chunk阵列的活跃入turnstiles,链接到pool中的turnstiles,一个数组的指针到pool中的turnstiles块(tsm_chunk[] -这些都是活跃的pool中的turnstiles)。turnstiles本身维护名单上的其他pool中的turnstiles,前向链路的结构与优先级继承信息(pirec),数组有两个休眠队列,读/写锁,读操作和写操作都保存在单独的休眠队列,而只有其中之一是用于互斥锁。正如上个月我们所看到的,休眠队列点上的队列(sq_first)内核线程。其他环节结合在一起,包括内核线程链接turnstiles(KTHREAD阻塞时,对一个同步对象设置),如果一个点从KTHREAD结构pirec的内核线程的优先级改变,由于优先级反转。由于继承是接收者(高优先级),benef领域pirec点回的内核线程更好的优先级。 =='''评价'''== 在这两种情况下,我们现在有一个同步对象(可适应互斥)的turnstile,并且我们能通过关联turnstile继续改变线程状态以休眠和设置休眠序列。内核的t_block()函数就是以这个目的被调用的,同时CL_SLEEP宏也为此调用。从之前的列中应该记住,调度特定类的函数是通过宏调用的,这些宏用于实现正确的基于调度内核线程类的功能。在TS和IA类线程情况下,ts_sleep()函数被调用,并且线程的优先级设置为SYS优先级。这是一个优先级的提升——当他被唤醒是,他会得到优先于TS和IA而运行的优先级——同时线程的状态被设置为TS_SLEEP。内核线程的t_wchan域(等待渠道)设置为同步对象操作向量的地址——一个有可适应互斥对象特定功能的数组。回想从上个月一个到相似函数设定的连接为休眠序列完成了。在这种turnstile的情况下,不同的同步对象的turnstile被用以定义一个操作的向量,这向量是一种简单的包含对象种类,拥有者的地址,和未休眠的优先级修改独特对象函数的数据结构。一个同步对象的操作结构为了所有同步对象而被声明,这存在于Solaris内核中。 <ref>[https://baike.baidu.com/reference/757860/1067RJdLe8f5fhzJhp-xGRdyBd178vQgibEDvxIl7PLuvxs6eK4br_Zc6O3Tl79B7utlaR99EClz8PQ-hqS0LK5QhA--zoPqjIji 十字转门]百度</ref> =='''参考文献'''== [[Category:441 土木工程;建築工程]]
返回「
十字转门
」頁面