操作系统实在是硬伤,每次面试几乎都被问到进程和线程的区别,那就总结一下吧。
根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位。
一个进程中可以有多个线程,他们共享进程的资源。
在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。
分页和分段是在面试过程中常被问到的两种内存管理技术。
计算机结构比较复杂,那么说到“存储”,我们一般就想到内存和外存,比如我们买手机买电脑,都要看看这些终端的内存够不够打游戏,外存够不够装照片这些。内存外存只是比较通俗的叫法,在实际的计算机存储体系当中,我们划分了四块区域:寄存器(CPU registers)、高速缓存(CPU cache)、主存(内存)、外存(磁盘)。
这篇文章主要是将这座金字塔结构自顶向下第三层的主存结构,也就是我们俗称的内存。
内存这东西不是一两篇文章就能看懂吃透的,无奈每次面试或多或少都被面试官问道这些东西,稍微捋一下这些概念性的东西。