SylixOS 下内核线程简介

SylixOS 下内核线程简介

1.概述     

内核线程共享内核所有资源,例如内核文件描述符表,而进程内线程则共享使用进程内所有资源,例如进程文件描述符表。SylixOS 对于一些系统级功能是通过使用内核线程进行管理使用。

2.内核线程     

基于 SylixOS Version:2.1.6 的内核,在终端上输入命令“ts”如图 2.1所示。

                                                 图2.1  “ts”命令

2.1 内核线程工程

      SylixOS的内核线程功能以及能否裁剪如表 2.2所示。

线程
功能
是否可裁剪
裁剪宏
备注
t_idle 空闲线程
不可裁剪


t_itimer
系统普通定时器周期服务线程
可裁剪
LW_CFG_ITIMER_EN
应用程序使用timerfd定时
t_isrdefer
中断延时处理
不可裁剪
LW_CFG_ISR_DEFER_EN
是否提供内核中断延迟处理工作队列管理
t_except
处理异常消息的线程
不可裁剪


t_log
处理LOG消息的线程
可裁剪
LW_CFG_LOG_LIB_EN
SylixOS 日志系统(logPrintk)
t_power
资源管理线程(内核中是电源管理)
可裁剪
LW_CFG_POWERM_EN

t_hotplug
hotplug事件处理线程
可裁剪
LW_CFGHOTPLUG_EN

t_reclain
资源回收器系统线程
可裁剪
LW_CFG_MODULELOADER_EN
这个是和模块动态加载紧密联系的(比如进程资源)
t_ahcimsg
AHCI 监测线程
可裁剪
LW_CFG_AHCI_EN

t_diskcache
磁盘高速缓冲控制器背景回写任务线程
不可裁剪


t_dcvpipe
写管道线程
不可裁剪


t_tpsfs
inode 回写线程
可裁剪
LW_CFG_TPSFS_EN

t_console
键盘输入线程
不可裁剪


t_netjob
网络工作队列处理线程
可裁剪
LW_CFG_NET_EN
不用网络功能除了关闭 LW_CFG_NET_EN
且要注释Makefile整个lwip部分
t_netproto
TCP/IP 处理线程
可裁剪
LW_CFG_NET_EN
不用网络功能除了关闭 LW_CFG_NET_EN
且要注释Makefile整个lwip部分
t_tftp
tftp 服务侦听器线程
可裁剪
LW_CFG_NET_TFTP_EN

t_ftpd
ftp 服务器侦听服务线程
可裁剪
LW_CFG_NET_FTPD_EN

t_telnetd
Telnet 侦听器线程
可裁剪
LW_CFG_NET_TELNET_EN

t_ptyserver
Telnet 服务器
可裁剪
LW_CFG_NET_TELNET_EN

t_ptyproc
Telnet 服务器半双工网络服务
可裁剪
LW_CFG_NET_TELNET_EN

t_tshell
ttiny shell 服务线程
可裁剪
LW_CFG_SHELL_EN

t_xinput
xinput扫描线程
可裁剪
无专用控制宏
只用不加载xinput.ko
t_snmp
简单网路管理协议
可裁剪
LWIP_SNMP

表2.2  SylixOS内核线程功能

       

根据不同平台需要使用某些内核功能,可以通过宏控制裁剪。

3.参考资料

详见《SylixOS应用程序开发手册》





    • Related Articles

    • SylixOS 中 “ts” 查看线程打印信息都是什么含义?

      问:SylixOS 中 “ts” 查看线程打印信息都是什么含义? 答:对照下图中的 “ts” 命令线程打印信息含义为:线程名、ID 号、所属进程 ID、优先级、状态、线程锁、线程安全模式标志、等待计数器、缺页中断
    • SylixOS 功能介绍及版本差异

      SylixOS功能介绍及版本差异 SylixOS 标准版 SylixOS 标准版是 SylixOS 的基础版本,具备如下功能: 兼容 IEEE 1003(ISO/IEC 9945)操作系统接口规范; 兼容 POSIX 1003.1b(ISO/IEC 9945-1)实时编程标准; 支持国军标 GJB7714-2012 操作系统接口规范; 优秀的实时性能(任务调度与切换算法时间复杂度为 O(1)); 支持无限多任务; 抢占式调度支持 256 个优先级; 支持虚拟进程; ...
    • SylixOS lite 版—基于 STM32F767 资源使用情况

      1、基本概念     代码段(text):顾名思义,代码存放的位置,在 STM32 中代码段一般存放于内置 FLASH 中; 已初始化数据段(data):已初始化数据段会分别体现在 FlASH 中和 RAM 中。因为是全局变量,运行过程中需要进行读写操作,因此占用一段 RAM 空间。又因为有初始值,其初始值需要占用 FlASH 空间。   未初始化的数据段(bss):bss 与 data 相同的地方时它也是全局变量,运行过程中需要进行读写操作,因此占用一段 RAM ...
    • error: xxx-sylixos-elf-lzocom.exe

      Q:IDE 在编译工程时出现:xxxx-sylixos-elf-lzocom.exe  应用程序出错。 应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。信息如下图所示。 安装 vc2010_redist_x86.exe 即可解决此问题, 此文件在 IDE 软件安装包的 Tools 目录下(如 SylixOS IDE 3.9.11_professional\Tools) 。
    • 如果系统出现了异常,如何处理?

      Q:如果系统出现了异常,如何处理? 使用以下几个 shell 命令快速定位是否为系统问题: “ps” 查看 kernel 线程是否正常; “tp” 查看有无死锁; “ints” 查看中断; “top” 查看 cpu 的使用情况; “ss” 查看当前堆栈情况(达到临界值时会报警,溢出时会造成系统崩溃) 若程序运行时设备直接重启 检查 /etc/startup.sh 脚本中是否设置了 “shstack 120000” 语句,检查 shell 任务线程栈空间大小 查看系统/应用程序状态,有如下几种: ...