TICK的作用
操作系统,Tick仿佛是人的脉搏,不停的向各个器官提供血液。 Tick在操作系统中,会进行调度,是分时调度最基础的组成部分。
每次Tick中断,进行一次调度,先将计数加一,然后进行任务切换;
在SylixOS 中,Tick以系统时钟为时钟源,采用芯片自带的Tick定时器或者通用定时器实现。
系统TICK实现
SylixOS Tick实现通常是采用通用定时器的周期性中断,一次中断表示一个tick。
系统Tick的时钟频率可以通过API_KernelStartParam函数修改内核启动参数进行配置。例如:hz=1000参数表示设置系统Tick频率为1ms。
(小于1个tick不会发生调度。tick到来后,操作系统会查看有无高优先级任务就绪。有则高优先级任务抢占执行,即使调度的时间片还没到)
base有个宏,默认是10个tick调度一次:
内核线程简介:
线程
|
功能
|
使用条件
|
是否可裁剪
|
裁剪宏
|
备注
|
t_idle
|
空闲线程
|
系统空闲线程
|
不可裁剪
| ||
t_itimer
|
系统普通定时器周期服务线程
|
应用程序使用定时器工作
|
可裁剪
|
LW_CFG_ITIMER_EN
|
就是应用程序使用timerfd定时
|
t_isrdefer
|
中断延时处理
|
中断延时处理
|
不可裁剪
|
LW_CFG_ISR_DEFER_EN
|
是否提供内核中断延迟处理工作队列管理(PCI的sio)
|
t_except
|
处理异常消息的线程
|
系统异常处理线程
|
不可裁剪
| ||
t_log
|
处理LOG 消息的线程
|
系统日志(应用调用)
|
可裁剪
|
LW_CFG_LOG_LIB_EN
|
SylixOS 日志系统(logPrintk)
|
t_power
|
资源管理线程(内核里写的是电源管理)
|
用于电源管理的
|
可裁剪
|
LW_CFG_POWERM_EN
| |
t_hotplug
|
hotplug 事件处理线程
|
用于热插拔支持
|
可裁剪
|
LW_CFG_HOTPLUG_EN
| |
t_reclaim
|
资源回收器系统线程
|
主要用于动态装载后的资源回收
|
可裁剪
|
LW_CFG_MODULELOADER_EN
|
这个是和模块动态 加载紧密联系的(比如进程资源) |
t_ahcimsg
|
AHCI 监测线程
|
是SATA线程
|
可裁剪
|
LW_CFG_AHCI_EN
| |
t_diskcache
|
磁盘高速缓冲控制器背景回写任务线程
|
磁盘缓存线程,提高磁盘读写速度
|
不可裁剪
| ||
t_dcwpipe
|
写管线线程
|
磁盘缓存线程,提高磁盘读写速度
|
不可裁剪
| ||
t_tpsfs
|
inode 回写线程
|
Tpsfs文件系统自带的线程
|
可裁剪
|
LW_CFG_TPSFS_EN
| |
t_console
|
控制台线程
|
控制台使用
|
可裁剪
|
暂无专门宏控制
| |
t_netjob
|
网络工作队列处理线程
|
网络协议栈使用
|
不可裁剪
|
如果不用网络功能LW_CFG_NET_EN 且注释Makefile整个lwip | |
t_netproto
|
TCP/IP处理线程
|
网络协议栈使用
|
不可裁剪
| ||
t_tftpd
|
tftp 服务器侦听服务线程
|
tftp服务器
|
可裁剪
|
LW_CFG_NET_TFTP_EN
| |
t_ftpd
|
ftp 服务器侦听服务线程
|
FTP服务器
|
可裁剪
|
LW_CFG_NET_FTPD_EN
| |
t_telnetd
|
telnet 侦听器线程
|
telnet监听线程
|
可裁剪
|
LW_CFG_NET_TELNET_EN
| |
t_ptyserver
|
telnet 服务器
|
telnet监听线程
|
可裁剪
| ||
t_ptyproc
|
telnet 服务器半双工网络服务
|
telnet监听线程
|
可裁剪
| ||
t_tshell
|
ttiny shell 服务线程
|
shell线程
|
可裁剪
|
LW_CFG_SHELL_EN
| |
t_xinput
|
xinput扫描线程
|
多重输入设备监听线程
|
可裁剪
|
暂无专门宏控制
|
只要不加载xinput.ko
|