欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > RH442关于操作系统的一点基础

RH442关于操作系统的一点基础

2025/5/11 20:39:21 来源:https://blog.csdn.net/2401_84019227/article/details/145167994  浏览:    关键词:RH442关于操作系统的一点基础

CPU

平均负载:每个CPU上的运行的进程数

利用率:CPU的使用率

操作系统负责进程的调度

CPU有个时钟中断

操作系统和硬件是有关联的,不是相互独立的

内核空间有一些特权的操作

操作系统跑在内核空间

用户写的程序跑在用户空间

用户空间程序不能访问硬件

必须通过内核空间

操作系统运行在内核空间

操作系统可以访问硬件

linux把物理内存映射为虚拟内存(不是swap,是操作系统原理里面,说以进程的角度去看内存,怎么去看),对于应用软件来说,物理内存是透明的

应用软件需要使用内存时会向内核发起申请,内核返回一个虚拟内存的映射,虚拟内存可以映射到物理内存分区

写Python不涉及内存分配,写C语言涉及栈内存是系统分的,堆内存是程序员自己去分,C语言的程序员写到系统级程序的时候,很多内存得自己去分,自己分完了之后,还得回收。如果不回收的话会导致内存泄漏。

内存泄漏一般发生在动态请求内存之后,函数结束之后,堆内存没有释放

堆内存和数据结构的堆好像没有太大关系

什么是内存泄漏?

memory leak

也就是内存跑了,内存被某些进程占用之后不释放,就一点一点没有了,这个程序每跑一次,内存就被占用了一点,而且不释放,这样一点一点,久而久之内存就漏完了,系统崩溃。所以叫memory leak

很多高级语言都有GC垃圾回收机制来解决这个问题。C++没有自动回收,需要程序员手动去写回收代码,类似于delete指针的这种

内存映射,把虚拟内存和物理内存做映射

linux:swap 交换空间

windows: 虚拟内存

脏内存释放不了,在内存里面改了,但是还没有写到硬盘上的数据,叫脏数据,这一部分数据占用的内存,叫脏内存

当应用请求内存时,如果没有足够的空闲内存,则内核会使用LRU最近最少使用原则,尝试释放特定的内存,这个过程叫回收。

buff和cache是缓存硬盘上的数据的

buff/cache只会占用那些应用程序暂时没用的内存空间。应用程序需要时,可以立刻还给应用程序。

buff和cache就是从硬盘上先多读到内存上的数据,如果程序要用,就给用就好了,不用就先缓存着硬盘上的数据。

Dirty 脏数据(内存缓存与磁盘不同步的数据)

reboot之前两个sync; sync 脏数据写入

/proc目录内容文件系统

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词