计算机操作系统心得(随时更新)
计算机操作系统心得(随时更新)
由于最近正在找工作,所以会偶尔看到一些面试题,而这些面试题其实好多都是来自大学里面的一些基础知识。由于大学时候看不起那些,所以只能现在恶补一下(后悔)。
进程大家族之 孤儿进程和僵尸进程
今天刷到了一个公众号里面的文章,其中一个Linux命令是关于 top的进程监控命令,不由得想起了大学时候学过的孤儿进程和僵尸进程,特此记录一下:
- 孤儿进程
想象一下孤儿的字面意思,就是没有了爹和妈。这样比较好理解一下程序中的具体含义:
子进程还在进行中,父进程呢? 啪 ! 结束了。他们的pid 突然就结束了,这样子进程没有了爹妈就变成了孤儿进程
- 僵尸进程
僵尸的字面意思是什么? 死而未僵。
在程序里面的含义就是,你父进程 Fork了子进程,结果呢,没有wait或者waitAll回收他们,子进程进行完毕之后,没有回收,他们子进程的状态描述符就依然存在于系统之中
内存家族之 内存泄漏和内存溢出
内存泄漏和内存溢出其实我个人感觉是密不可分的,为啥嘞?且听我道来~
- 内存泄漏
意思就是内存里面有太多的没用垃圾(不用,但是没有释放的对象,最让我印象深刻的就是c语言里面的malloc 函数,你创建完了但是没有release),让你感觉你的可用内存越来越少。
- 内存溢出(OOM)
Java程序员最不想看到的Exception,OOM可以算一个了,通俗的来讲就是内存不够了,但是现在立马需要一个大的内存,结果就是溢出了。
我的个人感觉来说,好多时候,其实在Java程序在运行的过程中,就是由于代码编写不规范等原因,造成的内存泄漏,从来导致了OOM