[發明專利]基于EPOLL的IO多路復用偽終端的實現方法、裝置及設備在審
| 申請號: | 202210631609.3 | 申請日: | 2022-06-06 |
| 公開(公告)號: | CN114996030A | 公開(公告)日: | 2022-09-02 |
| 發明(設計)人: | 姚鈺宸;李嘉銘;韓笑;孫晨菲;汲美辰 | 申請(專利權)人: | 中國銀行股份有限公司 |
| 主分類號: | G06F9/52 | 分類號: | G06F9/52;G06F9/54;G06F11/30 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 楊儻月 |
| 地址: | 100818 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 epoll io 多路復用 終端 實現 方法 裝置 設備 | ||
1.一種基于EPOLL的IO多路復用偽終端的實現方法,其特征在于,所述方法包括:
在客戶端輸入和服務端輸出時獲取文件鎖,以保證并發讀寫時輸入輸出的順序;
利用Linux文件的管道機制,將目標偽終端的輸入映射到服務端的輸出,以及將所述目標偽終端的輸出映射到服務端的輸入,實現對服務器和客戶端之間輸入輸出的中繼處理;
利用Linux內核的Hook機制,將所述目標偽終端的負責監聽輸入的回調函數注冊到服務端,以實現對客戶端輸入的攔截,并在攔截后將獲取的輸入當作命令行進行解析,以傳送給Shell應用程序執行相應的操作;
利用EPOLL機制對客戶端的輸入和服務端的輸出進行監聽,并通過預設傳輸方式,將應用程序執行指令返回的結果和服務端的輸出傳輸給對應的客戶端進行回顯,以實現IO多路復用。
2.根據權利要求1所述的方法,其特征在于,所述在客戶端輸入和服務端輸出時獲取文件鎖之后,所述方法還包括:
若獲取鎖成功,則將自身進程的PID寫入鎖文件后給文件加互斥鎖;或者,若獲取鎖失敗,則所述目標偽終端將設置客戶端的輸入進程進入阻塞狀態,等待鎖的釋放,直到指令被捕獲并解析完畢,所述目標偽終端的進程才會釋放文件鎖,以確保同一時刻只執行一個客戶端的指令。
3.根據權利要求1所述的方法,其特征在于,所述在攔截后將獲取的輸入當作命令行進行解析之后,所述方法還包括:
若解析失敗,則通過Linux終端繼續進行解析;或者,若解析成功,則會調用指令對應的回調函數,將所述指令傳給Shell應用程序執行相應的操作,并將操作執行的結果再次捕獲,并輸出到所述目標偽終端的輸出文件區。
4.根據權利要求1-3任一項所述的方法,其特征在于,所述利用EPOLL機制對客戶端的輸入和服務端的輸出進行監聽,并通過預設傳輸方式,將應用程序執行指令返回的結果和服務端的輸出傳輸給對應的客戶端進行回顯,以實現IO多路復用,包括:
利用EPOLL機制對客戶端的輸入和服務端的輸出進行監聽,并通過水平觸發的方式,將應用程序執行指令返回的結果和服務端的輸出傳輸給對應的客戶端進行回顯,以實現IO多路復用。
5.一種基于EPOLL的IO多路復用偽終端的實現裝置,其特征在于,所述裝置包括:
獲取單元,用于在客戶端輸入和服務端輸出時獲取文件鎖,以保證并發讀寫時輸入輸出的順序;
映射單元,用于利用Linux文件的管道機制,將目標偽終端的輸入映射到服務端的輸出,以及將所述目標偽終端的輸出映射到服務端的輸入,實現對服務器和客戶端之間輸入輸出的中繼處理;
解析單元,用于利用Linux內核的Hook機制,將所述目標偽終端的負責監聽輸入的回調函數注冊到服務端,以實現對客戶端輸入的攔截,并在攔截后將獲取的輸入當作命令行進行解析,以傳送給Shell應用程序執行相應的操作;
回顯單元,用于利用EPOLL機制對客戶端的輸入和服務端的輸出進行監聽,并通過預設傳輸方式,將應用程序執行指令返回的結果和服務端的輸出傳輸給對應的客戶端進行回顯,以實現IO多路復用。
6.根據權利要求5所述的裝置,其特征在于,所述裝置還包括:
第一處理單元,用于在客戶端輸入和服務端輸出時獲取文件鎖之后,若獲取鎖成功,則將自身進程的PID寫入鎖文件后給文件加互斥鎖;或者,若獲取鎖失敗,則所述目標偽終端將設置客戶端的輸入進程進入阻塞狀態,等待鎖的釋放,直到指令被捕獲并解析完畢,所述目標偽終端的進程才會釋放文件鎖,以確保同一時刻只執行一個客戶端的指令。
7.根據權利要求6所述的裝置,其特征在于,所述裝置還包括:
第二處理單元,用于在攔截后將獲取的輸入當作命令行進行解析之后,若解析失敗,則通過Linux終端繼續進行解析;或者,若解析成功,則會調用指令對應的回調函數,將所述指令傳給Shell應用程序執行相應的操作,并將操作執行的結果再次捕獲,并輸出到所述目標偽終端的輸出文件區。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國銀行股份有限公司,未經中國銀行股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210631609.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種壓水堆臨界棒位測量方法及測量系統
- 下一篇:一種破冰除雪車





