⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000009.htm

📁 水木社区 embeded 版精华区 下载
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>关于实时扩展POSIX.1b                   turbolinux </title></head><body><center><h1>BBS 水木清华站∶精华区</h1></center><a name="top"></a>发信人:&nbsp;plato&nbsp;(纯真年代),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;关于实时扩展POSIX.1b&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Tue&nbsp;Apr&nbsp;24&nbsp;22:22:05&nbsp;2001)&nbsp;<br />&nbsp;<br />A&nbsp;Vision&nbsp;for&nbsp;Linux&nbsp;2.2&nbsp;--&nbsp;POSIX.1b&nbsp;Compatibility&nbsp;and&nbsp;Real-Time&nbsp;Support&nbsp;<br />----------------------------------------------------------------------&nbsp;<br />Markus&nbsp;Kuhn&nbsp;--&nbsp;1996-07-22&nbsp;<br />[The&nbsp;latest&nbsp;version&nbsp;of&nbsp;this&nbsp;text&nbsp;can&nbsp;be&nbsp;found&nbsp;on&nbsp;&lt;URL:<a href="ftp://">ftp://</a>&nbsp;<br />ftp.informatik.uni-erlangen.de/local/cip/mskuhn/misc/linux-posix.1b&gt;.]&nbsp;<br />Today,&nbsp;the&nbsp;Linux&nbsp;kernel&nbsp;and&nbsp;libc&nbsp;are&nbsp;quite&nbsp;well&nbsp;compatible&nbsp;with&nbsp;the&nbsp;<br />POSIX.1&nbsp;and&nbsp;POSIX.2&nbsp;standards,&nbsp;which&nbsp;specify&nbsp;system&nbsp;calls,&nbsp;library&nbsp;<br />functions&nbsp;and&nbsp;shell&nbsp;command&nbsp;compatibility&nbsp;for&nbsp;UNIX-style&nbsp;operating&nbsp;<br />systems.&nbsp;Some&nbsp;Linux&nbsp;distributions&nbsp;have&nbsp;even&nbsp;passed&nbsp;POSIX.1&nbsp;conformance&nbsp;<br />tests.&nbsp;However,&nbsp;the&nbsp;POSIX.1&nbsp;system&nbsp;calls&nbsp;and&nbsp;library&nbsp;functions&nbsp;define&nbsp;<br />only&nbsp;a&nbsp;minimum&nbsp;core&nbsp;functionality&nbsp;required&nbsp;by&nbsp;anything&nbsp;that&nbsp;looks&nbsp;like&nbsp;<br />UNIX.&nbsp;Many&nbsp;slightly&nbsp;more&nbsp;advanced&nbsp;functions&nbsp;like&nbsp;mmap(),&nbsp;fsync(),&nbsp;<br />timers,&nbsp;modifiable&nbsp;scheduling&nbsp;algorithms,&nbsp;IPC,&nbsp;etc.,&nbsp;which&nbsp;are&nbsp;<br />essential&nbsp;for&nbsp;many&nbsp;real&nbsp;world&nbsp;applications,&nbsp;have&nbsp;not&nbsp;been&nbsp;standardized&nbsp;<br />by&nbsp;POSIX.1&nbsp;in&nbsp;1990.&nbsp;<br />The&nbsp;new&nbsp;POSIX.1b&nbsp;standard&nbsp;(now&nbsp;officially&nbsp;called&nbsp;IEEE&nbsp;Std&nbsp;<br />1003.1b-1993,&nbsp;ISBN&nbsp;1-55937-375-X,&nbsp;during&nbsp;development&nbsp;of&nbsp;the&nbsp;standard,&nbsp;<br />it&nbsp;was&nbsp;called&nbsp;POSIX.4)&nbsp;corrects&nbsp;this&nbsp;and&nbsp;I&nbsp;believe&nbsp;POSIX.1b&nbsp;contains&nbsp;a&nbsp;<br />large&nbsp;number&nbsp;of&nbsp;useful&nbsp;ideas&nbsp;for&nbsp;further&nbsp;development&nbsp;on&nbsp;Linux.&nbsp;<br />In&nbsp;the&nbsp;very&nbsp;short&nbsp;introduction&nbsp;below,&nbsp;I&nbsp;hope&nbsp;to&nbsp;rise&nbsp;your&nbsp;interest&nbsp;in&nbsp;<br />POSIX.1b&nbsp;and&nbsp;in&nbsp;real-time&nbsp;problems&nbsp;in&nbsp;general&nbsp;and&nbsp;to&nbsp;stimulate&nbsp;some&nbsp;<br />development&nbsp;work&nbsp;in&nbsp;this&nbsp;direction.&nbsp;Happy&nbsp;reading!&nbsp;<br />The&nbsp;new&nbsp;POSIX&nbsp;extensions&nbsp;focus&nbsp;on&nbsp;the&nbsp;requirements&nbsp;of&nbsp;real-time&nbsp;<br />applications&nbsp;and&nbsp;on&nbsp;applications&nbsp;which&nbsp;have&nbsp;to&nbsp;perform&nbsp;high&nbsp;<br />performance&nbsp;I/O.&nbsp;Many&nbsp;applications&nbsp;like&nbsp;interactive&nbsp;video&nbsp;games,&nbsp;high&nbsp;<br />performance&nbsp;database&nbsp;servers,&nbsp;multimedia&nbsp;players&nbsp;and&nbsp;control&nbsp;software&nbsp;<br />for&nbsp;all&nbsp;kinds&nbsp;of&nbsp;hardware&nbsp;require&nbsp;more&nbsp;deterministic&nbsp;scheduling,&nbsp;<br />paging,&nbsp;signaling,&nbsp;timing&nbsp;and&nbsp;inter&nbsp;process&nbsp;communication&nbsp;mechanisms&nbsp;<br />than&nbsp;what&nbsp;is&nbsp;available&nbsp;on&nbsp;traditional&nbsp;UNIX&nbsp;systems&nbsp;like&nbsp;BSD4.3.&nbsp;The&nbsp;<br />functionality&nbsp;of&nbsp;systems&nbsp;like&nbsp;BSD4.3&nbsp;has&nbsp;been&nbsp;optimized&nbsp;with&nbsp;mainframe&nbsp;<br />multi-user&nbsp;time-sharing&nbsp;scenarios&nbsp;in&nbsp;mind,&nbsp;while&nbsp;operating&nbsp;systems&nbsp;for&nbsp;<br />personal&nbsp;computers&nbsp;should&nbsp;also&nbsp;support&nbsp;real-time&nbsp;applications&nbsp;in&nbsp;<br />addition.&nbsp;On&nbsp;a&nbsp;personal&nbsp;computer,&nbsp;it&nbsp;is&nbsp;often&nbsp;acceptable&nbsp;and&nbsp;desired&nbsp;<br />that&nbsp;for&nbsp;example&nbsp;interactive&nbsp;games&nbsp;or&nbsp;CPU&nbsp;and&nbsp;memory&nbsp;intensive&nbsp;<br />multimedia&nbsp;applications&nbsp;are&nbsp;excluded&nbsp;from&nbsp;the&nbsp;normal&nbsp;paging&nbsp;and&nbsp;<br />scheduling&nbsp;strategies&nbsp;that&nbsp;try&nbsp;to&nbsp;be&nbsp;as&nbsp;fair&nbsp;as&nbsp;possible&nbsp;to&nbsp;all&nbsp;users&nbsp;<br />of&nbsp;a&nbsp;large&nbsp;mainframe.&nbsp;<br />The&nbsp;lack&nbsp;of&nbsp;real-time&nbsp;capability&nbsp;in&nbsp;Linux&nbsp;1.2&nbsp;has&nbsp;so&nbsp;far&nbsp;been&nbsp;the&nbsp;main&nbsp;<br />reason&nbsp;why&nbsp;still&nbsp;a&nbsp;number&nbsp;of&nbsp;interesting&nbsp;applications&nbsp;that&nbsp;run&nbsp;fine&nbsp;on&nbsp;<br />MS-DOS&nbsp;were&nbsp;unimplementable&nbsp;as&nbsp;user&nbsp;processes&nbsp;under&nbsp;Linux.&nbsp;Some&nbsp;<br />examples&nbsp;are&nbsp;for&nbsp;instance&nbsp;highly&nbsp;reliable&nbsp;audio&nbsp;recording/replay&nbsp;<br />tools,&nbsp;control&nbsp;software&nbsp;for&nbsp;astronomical&nbsp;CCD&nbsp;cameras,&nbsp;real-time&nbsp;signal&nbsp;<br />processing&nbsp;algorithms,&nbsp;serial&nbsp;port&nbsp;smartcard&nbsp;emulators,&nbsp;MIDI&nbsp;computer&nbsp;<br />music&nbsp;tools,&nbsp;etc.&nbsp;With&nbsp;the&nbsp;recent&nbsp;addition&nbsp;of&nbsp;POSIX.1b&nbsp;memory&nbsp;locking&nbsp;<br />and&nbsp;static&nbsp;priority&nbsp;scheduling&nbsp;functions&nbsp;to&nbsp;Linux&nbsp;1.3,&nbsp;this&nbsp;starts&nbsp;to&nbsp;<br />change&nbsp;now.&nbsp;A&nbsp;lot&nbsp;of&nbsp;things&nbsp;still&nbsp;have&nbsp;to&nbsp;be&nbsp;implemented&nbsp;and&nbsp;your&nbsp;<br />contributions&nbsp;are&nbsp;very&nbsp;welcome!&nbsp;This&nbsp;text&nbsp;summarizes,&nbsp;what&nbsp;functions&nbsp;<br />have&nbsp;not&nbsp;yet&nbsp;been&nbsp;implemented&nbsp;and&nbsp;which&nbsp;people&nbsp;have&nbsp;already&nbsp;started&nbsp;to&nbsp;<br />work&nbsp;on&nbsp;some&nbsp;of&nbsp;these.&nbsp;Please&nbsp;contact&nbsp;them&nbsp;if&nbsp;you&nbsp;want&nbsp;to&nbsp;know&nbsp;the&nbsp;<br />status&nbsp;of&nbsp;their&nbsp;work&nbsp;or&nbsp;if&nbsp;you&nbsp;want&nbsp;to&nbsp;contribute.&nbsp;Please&nbsp;let&nbsp;me&nbsp;know&nbsp;<br />about&nbsp;any&nbsp;progress&nbsp;so&nbsp;that&nbsp;I&nbsp;can&nbsp;keep&nbsp;this&nbsp;text&nbsp;up-to-date.&nbsp;<br />In&nbsp;order&nbsp;to&nbsp;use&nbsp;the&nbsp;first&nbsp;new&nbsp;POSIX.1b&nbsp;features&nbsp;that&nbsp;have&nbsp;recently&nbsp;<br />been&nbsp;added&nbsp;to&nbsp;Linux,&nbsp;please&nbsp;install&nbsp;a&nbsp;recent&nbsp;kernel,&nbsp;libc-5.3.12,&nbsp;and&nbsp;<br />man-pages-1.11&nbsp;or&nbsp;newer&nbsp;as&nbsp;available&nbsp;via&nbsp;ftp&nbsp;from&nbsp;sunsite.unc.edu&nbsp;or&nbsp;<br />tsx-11.mit.edu.&nbsp;The&nbsp;real-time-support&nbsp;is&nbsp;far&nbsp;from&nbsp;complete,&nbsp;but&nbsp;some&nbsp;<br />interesting&nbsp;features&nbsp;are&nbsp;already&nbsp;available.&nbsp;<br />POSIX.1b-1993&nbsp;defines&nbsp;in&nbsp;addition&nbsp;to&nbsp;POSIX.1-1990&nbsp;the&nbsp;following&nbsp;new&nbsp;<br />concepts&nbsp;and&nbsp;functions:&nbsp;<br />Improved&nbsp;Signals&nbsp;<br />----------------&nbsp;<br />POSIX.1b&nbsp;adds&nbsp;a&nbsp;new&nbsp;class&nbsp;of&nbsp;signals.&nbsp;These&nbsp;have&nbsp;the&nbsp;following&nbsp;new&nbsp;<br />features:&nbsp;<br />-&nbsp;there&nbsp;are&nbsp;much&nbsp;more&nbsp;user&nbsp;specified&nbsp;signals&nbsp;now,&nbsp;not&nbsp;only&nbsp;SIGUSR1&nbsp;<br />and&nbsp;SIGUSR2.&nbsp;<br />-&nbsp;The&nbsp;additional&nbsp;POSIX.1b&nbsp;signals&nbsp;can&nbsp;now&nbsp;carry&nbsp;a&nbsp;little&nbsp;bit&nbsp;data&nbsp;(a&nbsp;<br />pointer&nbsp;or&nbsp;an&nbsp;integer&nbsp;value)&nbsp;that&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;transfer&nbsp;to&nbsp;the&nbsp;<br />signal&nbsp;handler&nbsp;information&nbsp;about&nbsp;why&nbsp;the&nbsp;signal&nbsp;has&nbsp;been&nbsp;caused.&nbsp;<br />-&nbsp;The&nbsp;new&nbsp;signals&nbsp;are&nbsp;queued,&nbsp;which&nbsp;means&nbsp;that&nbsp;if&nbsp;several&nbsp;signals&nbsp;of&nbsp;<br />the&nbsp;same&nbsp;type&nbsp;arrive&nbsp;before&nbsp;the&nbsp;signal&nbsp;handler&nbsp;is&nbsp;called,&nbsp;all&nbsp;of&nbsp;<br />them&nbsp;will&nbsp;be&nbsp;delivered.&nbsp;<br />-&nbsp;POSIX.1b&nbsp;signals&nbsp;have&nbsp;a&nbsp;well-defined&nbsp;delivery&nbsp;order,&nbsp;i.e.&nbsp;you&nbsp;can&nbsp;<br />work&nbsp;now&nbsp;with&nbsp;signal&nbsp;priorities.&nbsp;<br />-&nbsp;A&nbsp;new&nbsp;function&nbsp;sigwaitinfo()&nbsp;allows&nbsp;to&nbsp;wait&nbsp;on&nbsp;signals&nbsp;and&nbsp;to&nbsp;<br />continue&nbsp;quickly&nbsp;after&nbsp;the&nbsp;signal&nbsp;arrived&nbsp;with&nbsp;program&nbsp;execution&nbsp;<br />without&nbsp;the&nbsp;overhead&nbsp;of&nbsp;calling&nbsp;a&nbsp;signal&nbsp;handler&nbsp;first.&nbsp;<br />The&nbsp;new&nbsp;queued&nbsp;signals&nbsp;are&nbsp;a&nbsp;necessary&nbsp;prerequisite&nbsp;for&nbsp;the&nbsp;<br />implementation&nbsp;of&nbsp;the&nbsp;POSIX.1b&nbsp;asynchronous&nbsp;I/O&nbsp;interface&nbsp;(see&nbsp;below).&nbsp;<br />They&nbsp;might&nbsp;also&nbsp;provide&nbsp;a&nbsp;good&nbsp;interface&nbsp;for&nbsp;delivering&nbsp;hardware&nbsp;<br />interrupts&nbsp;to&nbsp;user&nbsp;processes.&nbsp;<br />New&nbsp;functions&nbsp;for&nbsp;signals&nbsp;are:&nbsp;<br />sigwaitinfo(),&nbsp;sigtimedwait(),&nbsp;sigqueue().&nbsp;<br />Implementation&nbsp;status:&nbsp;not&nbsp;yet&nbsp;implemented.&nbsp;Kevin&nbsp;Tran&nbsp;<br />&lt;<a href="mailto:ttran@cs.UCR.edu>">ttran@cs.UCR.edu></a>&nbsp;has&nbsp;sent&nbsp;me&nbsp;a&nbsp;short&nbsp;note&nbsp;that&nbsp;he&nbsp;has&nbsp;started&nbsp;to&nbsp;do&nbsp;<br />some&nbsp;work&nbsp;on&nbsp;POSIX.1b&nbsp;signals&nbsp;for&nbsp;Linux.&nbsp;<br />Inter&nbsp;Process&nbsp;Communication&nbsp;(IPC)&nbsp;and&nbsp;memory&nbsp;mapped&nbsp;files&nbsp;<br />---------------------------------------------------------&nbsp;<br />POSIX.1b&nbsp;now&nbsp;defines&nbsp;shared&nbsp;memory,&nbsp;messages,&nbsp;and&nbsp;semaphores.&nbsp;The&nbsp;<br />functionality&nbsp;and&nbsp;design&nbsp;of&nbsp;these&nbsp;is&nbsp;similar&nbsp;or&nbsp;better&nbsp;than&nbsp;the&nbsp;System&nbsp;<br />V&nbsp;IPC&nbsp;mechanisms&nbsp;which&nbsp;we&nbsp;have&nbsp;already&nbsp;in&nbsp;Linux.&nbsp;The&nbsp;major&nbsp;extensions&nbsp;<br />compared&nbsp;to&nbsp;System&nbsp;V&nbsp;IPC&nbsp;are:&nbsp;<br />-&nbsp;Strings&nbsp;(like&nbsp;filename&nbsp;paths)&nbsp;instead&nbsp;of&nbsp;integers&nbsp;are&nbsp;used&nbsp;now&nbsp;to&nbsp;<br />identify&nbsp;IPC&nbsp;resources.&nbsp;This&nbsp;will&nbsp;allow&nbsp;to&nbsp;avoid&nbsp;IPC&nbsp;resource&nbsp;<br />collisions&nbsp;much&nbsp;easier&nbsp;than&nbsp;in&nbsp;SysV&nbsp;IPC.&nbsp;The&nbsp;POSIX&nbsp;IPC&nbsp;name&nbsp;space&nbsp;<br />should&nbsp;probably&nbsp;be&nbsp;made&nbsp;visible&nbsp;as&nbsp;a&nbsp;/proc/ipc&nbsp;subdirectory,&nbsp;such&nbsp;<br />that&nbsp;the&nbsp;usual&nbsp;tools&nbsp;like&nbsp;ls&nbsp;and&nbsp;rm&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;locate&nbsp;and&nbsp;<br />remove&nbsp;stale&nbsp;persistent&nbsp;IPC&nbsp;resources.&nbsp;<br />-&nbsp;Semaphores&nbsp;come&nbsp;in&nbsp;two&nbsp;flavors:&nbsp;kernel&nbsp;based&nbsp;semaphores&nbsp;(as&nbsp;in&nbsp;<br />System&nbsp;V,&nbsp;which&nbsp;requires&nbsp;a&nbsp;system&nbsp;call&nbsp;for&nbsp;each&nbsp;P/V&nbsp;operation)&nbsp;and&nbsp;<br />now&nbsp;also&nbsp;user&nbsp;memory&nbsp;based&nbsp;semaphores.&nbsp;Kernel&nbsp;based&nbsp;semaphores&nbsp;are&nbsp;<br />sometimes&nbsp;necessary&nbsp;for&nbsp;security&nbsp;reasons,&nbsp;however&nbsp;they&nbsp;are&nbsp;a&nbsp;real&nbsp;<br />pain&nbsp;if&nbsp;you&nbsp;want&nbsp;to&nbsp;build&nbsp;e.g.&nbsp;a&nbsp;high&nbsp;performance&nbsp;database:&nbsp;<br />Suppose&nbsp;there&nbsp;are&nbsp;20&nbsp;server&nbsp;processes&nbsp;operating&nbsp;on&nbsp;a&nbsp;single&nbsp;huge&nbsp;<br />B-tree&nbsp;in&nbsp;a&nbsp;memory&nbsp;mapped&nbsp;database&nbsp;file.&nbsp;Inserting&nbsp;a&nbsp;node&nbsp;with&nbsp;<br />minimal&nbsp;blocking&nbsp;of&nbsp;concurrent&nbsp;accesses&nbsp;by&nbsp;the&nbsp;other&nbsp;19&nbsp;processes&nbsp;<br />in&nbsp;a&nbsp;large&nbsp;B-tree&nbsp;can&nbsp;require&nbsp;around&nbsp;100&nbsp;semaphore&nbsp;operations,&nbsp;and&nbsp;<br />this&nbsp;means&nbsp;currently&nbsp;100&nbsp;kernel&nbsp;calls&nbsp;:-(.&nbsp;With&nbsp;POSIX.1b's&nbsp;user&nbsp;<br />memory&nbsp;based&nbsp;semaphores,&nbsp;you&nbsp;put&nbsp;all&nbsp;your&nbsp;semaphores&nbsp;in&nbsp;a&nbsp;piece&nbsp;of&nbsp;<br />shared&nbsp;memory&nbsp;and&nbsp;the&nbsp;library&nbsp;accesses&nbsp;them&nbsp;with&nbsp;highly&nbsp;efficient&nbsp;<br />test-and-set&nbsp;machine&nbsp;code.&nbsp;System&nbsp;calls&nbsp;will&nbsp;then&nbsp;only&nbsp;be&nbsp;<br />necessary&nbsp;in&nbsp;the&nbsp;rare&nbsp;case&nbsp;of&nbsp;a&nbsp;blocking&nbsp;P&nbsp;operation.&nbsp;A&nbsp;high&nbsp;<br />performance&nbsp;database&nbsp;programmer's&nbsp;dream&nbsp;and&nbsp;easy&nbsp;to&nbsp;implement!&nbsp;<br />-&nbsp;In&nbsp;POSIX.1b,&nbsp;both&nbsp;memory&nbsp;mapped&nbsp;files&nbsp;and&nbsp;shared&nbsp;memory&nbsp;are&nbsp;done&nbsp;<br />with&nbsp;the&nbsp;mmap()&nbsp;system&nbsp;call.&nbsp;<br />The&nbsp;new&nbsp;functions&nbsp;for&nbsp;IPC&nbsp;are:&nbsp;<br />mmap(),&nbsp;munmap(),&nbsp;shm_open(),&nbsp;shm_close(),&nbsp;shm_unlink(),&nbsp;ftruncate(),&nbsp;<br />sem_init(),&nbsp;sem_destroy(),&nbsp;sem_open(),&nbsp;sem_close(),&nbsp;sem_unlink(),&nbsp;<br />sem_wait(),&nbsp;sem_trywait(),&nbsp;sem_post(),&nbsp;sem_getvalue(),&nbsp;mq_open(),&nbsp;<br />mq_close(),&nbsp;mq_mq_unlink(),&nbsp;mq_send(),&nbsp;mq_receive(),&nbsp;mq_notify(),&nbsp;<br />mq_setattr(),&nbsp;mq_getattr(),&nbsp;mprotect().&nbsp;<br />Implementation&nbsp;status:&nbsp;POSIX&nbsp;IPC&nbsp;has&nbsp;not&nbsp;yet&nbsp;been&nbsp;implemented&nbsp;<br />(although&nbsp;a&nbsp;part&nbsp;of&nbsp;the&nbsp;basic&nbsp;mechanisms&nbsp;is&nbsp;already&nbsp;available&nbsp;in&nbsp;the&nbsp;<br />existing&nbsp;SysV&nbsp;IPC&nbsp;code).&nbsp;Since&nbsp;Linux&nbsp;1.3,&nbsp;mmap()&nbsp;is&nbsp;fully&nbsp;implemented.&nbsp;<br />Eric&nbsp;Dumas&nbsp;&lt;<a href="mailto:dumas@freenix.fr>">dumas@freenix.fr></a>&nbsp;has&nbsp;written&nbsp;me&nbsp;that&nbsp;he&nbsp;has&nbsp;done&nbsp;some&nbsp;<br />work&nbsp;on&nbsp;POSIX&nbsp;IPC,&nbsp;however&nbsp;there&nbsp;are&nbsp;no&nbsp;patches&nbsp;available,&nbsp;yet.&nbsp;<br />Memory&nbsp;locking&nbsp;<br />--------------&nbsp;<br />Four&nbsp;new&nbsp;functions&nbsp;mlock(),&nbsp;munlock(),&nbsp;mlockall()&nbsp;and&nbsp;munlockall()&nbsp;<br />allow&nbsp;to&nbsp;disable&nbsp;paging&nbsp;for&nbsp;either&nbsp;specified&nbsp;memory&nbsp;regions&nbsp;(mlock())&nbsp;<br />

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -