京东11.11大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

2024-11-4 17:11| 发布者: db4d5a85| 查看: 190| 评论: 0

摘要: 用户态切内核态 是用户步调在运行中的状态切换; 用户步调在运行中遇到[code]申请外部资源[/code], 比如步调实验中须要访问: [code]磁盘[/code]、[code]内存分配[/code]、[code]网卡[/code]、[code]声卡[/code]

用户态切内核态

是用户步调在运行中的状态切换;

用户步调在运行中遇到[code]申请外部资源[/code], 比如步调实验中须要访问: [code]磁盘[/code]、[code]内存分配[/code]、[code]网卡[/code]、[code]声卡[/code], 甚至[code]主板LED指示灯[/code]时, 就会发生用户态到内核态的切换.

比如读写文件: open/read/write 就会从用户态切换到内核态;

比如申请内存: C语言的: malloc/ java语言 new 一个对象 都须要申请内存空间;

包罗select/poll/epoll 都是系统调用;

切换方式

用户态到内核态的切换, 一样平常有三种方式: [code]系统调用[/code]、[code]非常[/code]、[code]中断[/code]; [code]系统调用[/code] 又有 [code]进程[/code]、[code]文件[/code]、[code]装备[/code]、[code]信息[/code]、[code]通讯[/code]等的调用;

查看内核提供的可用系统调用可以用: [code]man syscalls[/code]可以把[code]syscalls[/code]导出来看下:
[code]man syscalls|col -b >syscalls.txt[/code]

系统调用大要分类如下:

进程调用: 终端命令[code]exit[/code] [code]fork[/code];

文件调用: [code]chmod[/code] [code]chown[/code];

装备调用: [code]read[/code] [code]write[/code];

信息读取: 比如cpu信息 [code]getcpu[/code];

通讯: [code]pipe[/code] [code]mmap[/code](文件内存映射)

以上就是Linux用户态切换内核态方式详解的具体内容,更多关于Linux用户态切换内核态的资料请关注脚本之家其它相关文章!


来源:https://www.jb51.net/LINUXjishu/909905.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )

GMT+8, 2025-4-12 05:01 , Processed in 0.031546 second(s), 17 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部