设为首页收藏本站
天天打卡

 找回密码
 立即注册
搜索
查看: 69|回复: 17

Linux用户态切换内核态方式详解

[复制链接]

4

主题

78

回帖

224

积分

中级会员

积分
224
发表于 2024-4-19 20:15:04 | 显示全部楼层 |阅读模式

用户态切内核态

是用户程序在运行中的状态切换;
用户程序在运行中遇到
  1. 申请外部资源
复制代码
, 比如程序执行中需要访问:
  1. 磁盘
复制代码
  1. 内存分配
复制代码
  1. 网卡
复制代码
  1. 声卡
复制代码
, 甚至
  1. 主板LED指示灯
复制代码
时, 就会发生用户态到内核态的切换.
比如读写文件: open/read/write 就会从用户态切换到内核态;
比如申请内存: C语言的: malloc/ java语言 new 一个对象 都需要申请内存空间;
包括select/poll/epoll 都是系统调用;
切换方式

用户态到内核态的切换, 一般有三种方式:
  1. 系统调用
复制代码
  1. 异常
复制代码
  1. 中断
复制代码
;
  1. 系统调用
复制代码
又有
  1. 进程
复制代码
  1. 文件
复制代码
  1. 设备
复制代码
  1. 信息
复制代码
  1. 通信
复制代码
等的调用;
查看内核提供的可用系统调用可以用:
  1. man syscalls
复制代码
可以把
  1. syscalls
复制代码
导出来看下:
  1. man syscalls|col -b >syscalls.txt
复制代码
系统调用大体分类如下:

进程调用: 终端命令
  1. exit
复制代码
  1. fork
复制代码
;
文件调用:
  1. chmod
复制代码
  1. chown
复制代码
;
设备调用:
  1. read
复制代码
  1. write
复制代码
;
信息读取: 比如cpu信息
  1. getcpu
复制代码
;
通信:
  1. pipe
复制代码
  1. mmap
复制代码
(文件内存映射)
以上就是Linux用户态切换内核态方式详解的详细内容,更多关于Linux用户态切换内核态的资料请关注脚本之家其它相关文章!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

2

主题

42

回帖

130

积分

注册会员

积分
130
发表于 2024-4-22 16:22:50 | 显示全部楼层
能给个链接吗?我想深入了解一下。

3

主题

40

回帖

148

积分

注册会员

积分
148
发表于 2024-4-25 02:37:43 | 显示全部楼层
这个话题很有趣,我想多了解一些

0

主题

48

回帖

95

积分

注册会员

积分
95
发表于 2024-4-29 18:50:37 | 显示全部楼层
这个话题真是有趣,我也对它感兴趣。

1

主题

76

回帖

166

积分

注册会员

积分
166
发表于 2024-5-2 20:10:43 | 显示全部楼层
说得太好了,完全同意!

1

主题

61

回帖

145

积分

注册会员

积分
145
发表于 2024-6-25 11:39:23 | 显示全部楼层
我完全同意你的观点

0

主题

67

回帖

135

积分

注册会员

积分
135
发表于 2024-6-26 21:25:51 | 显示全部楼层
说得太好了,完全同意!

4

主题

49

回帖

148

积分

注册会员

积分
148
发表于 2024-7-27 10:34:21 | 显示全部楼层
我完全同意你的观点

0

主题

51

回帖

103

积分

注册会员

积分
103
发表于 2024-8-1 10:16:37 | 显示全部楼层
每日一回

1

主题

45

回帖

113

积分

注册会员

积分
113
发表于 2024-8-31 02:00:51 | 显示全部楼层
我们一起努力,共同解决问题吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|爱云论坛 - d.taiji888.cn - 技术学习 免费资源分享 ( 蜀ICP备2022010826号 )|天天打卡

GMT+8, 2024-11-15 11:44 , Processed in 0.091197 second(s), 27 queries .

Powered by i云网络 Licensed

© 2023-2028 正版授权

快速回复 返回顶部 返回列表