6、Linux内核设施与辅助函数详解

Linux内核设施与辅助函数详解

1. 动态节拍/无节拍内核

传统的内核配置中,无论系统是否处于空闲状态,内核每秒都会被中断 HZ 次以进行任务重新调度。例如,若 HZ 设置为 1000,那么每秒就会有 1000 次内核中断,这使得 CPU 难以长时间处于空闲状态,从而影响了 CPU 的功耗。

而无节拍内核则不同,它没有固定或预定义的节拍,在没有任务需要执行时,节拍会被禁用。实际上,节拍的激活是基于下一个动作进行调度的,更准确地说,应该称其为动态节拍内核。

内核负责任务调度,并维护着系统中可运行任务的列表(运行队列)。当没有任务需要调度时,调度器会切换到空闲线程,通过禁用周期性节拍来启用动态节拍,直到下一个定时器到期(即有新任务排队等待处理)。

内核还会维护一个任务超时列表,这样它就能知道何时以及需要休眠多长时间。在空闲状态下,如果下一个节拍的到来时间比任务列表中最小的超时时间还要远,内核会将定时器设置为该超时值。当定时器到期时,内核会重新启用周期性节拍并调用调度器,调度器随后会调度与该超时相关的任务。这种机制使得无节拍内核在空闲时能够消除周期性节拍,从而节省功耗。

2. 内核中的延迟与休眠

根据代码运行的上下文,内核中的延迟可分为两种类型:原子上下文和非原子上下文。处理内核延迟时,必须包含头文件 #include <linux/delay>

2.1 原子上下文

在原子上下文中(如中断服务程序 ISR),任务不能休眠,也不能被调度。因此,在原子上下文中,通常使用忙等待循

资源下载链接为: https://pan.quark.cn/s/9648a1f24758 MySQL SSH隧道连接是一种安全的远程访问MySQL数据库的方式,尤其适用于无法直接远程访问MySQL服务器的场景。通过SSH协议建立安全通道,将本地网络连接转发至远程服务器,从而实现本地对远程数据库的访问,就如同访问本地MySQL服务一样。 如果之前为root用户分配了远程访问权限,出于安全考虑,可以按照以下步骤收回权限: 登录MySQL服务器:mysql -uroot -p。 查看当前用户的远程访问权限:select user, host from mysql.user;。 删除不必要的远程访问权限(例如限制root用户从所有主机访问):delete from mysql.user where user='root' and host='%';。 刷新权限以应用更改:flush privileges;。 再次查询,确认root用户已无法从任何远程主机登录。 接下来,需要建立SSH隧道。通常使用SSH客户端(如OpenSSH)连接到远程服务器,并通过RSA密钥对进行身份验证,这是一种更安全的认证方式。如果本地尚未生成RSA密钥对,需要先生成密钥对,并将公钥(id_rsa.pub)添加到远程服务器的~/.ssh/authorized_keys文件中。建立SSH隧道的命令如下(需替换为实际的IP地址和端口号): 参数含义如下: -N:仅建立隧道,不执行远程命令。 -C:启用压缩(可选)。 -P:使用非特权端口。 -f:建立隧道后在后台运行。 [email protected]68.99.52:SSH用户名和目标服务器IP。 -L 3388:127.0.0.1:3306:将本地端口3388映射到远程服务器的MySQL端口3306。 之后,可以使用本地MySQL客户端工具(如MySQL Workben
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值