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目录内容文件系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值