malloc申请内存时为什么如此占用CPU?

malloc内存分配在操作系统中属于重的系统调用,由于CPU权限限制,进程通常只能在ring3权限运行,无法直接操作硬件资源。内存管理涉及复杂的Linux Kernel代码,大部分由Intel员工贡献。此外,ABI标准确保编译器能在遵循该标准的系统上编译代码,使得跨平台成为可能。早期的Lisp语言就已经具备跨平台、内存管理和GC,展现了前瞻性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作系统保护的部分叫做kernel space,

然后每一个process不需要调用操作系统的接口就可以完成的操作,就叫做user space,很多工作都不需要系统调用的就叫做user space,

很多工作都不需要系统调用,比如做数学运算,呼叫自己写的函数等等,需要操作系统调用的操作都是开销比较大的操作,比如I/O,但是

对于一些特别频繁的输入输出,都有特定芯片去处理,不需要消耗CPU的资源,比如键盘的输入,但是对于内存的分配属于一种特别重的系统

调用。现在的cpu权限分为ring0 到ring3,只有操作系统可以执行一些直接和硬件关键资源打交道的CPU指令,这些指令需要ring0权限,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值