操作系统

80 阅读2分钟

进程和程序的区别

  • 进程是动态的,有生命周期,而程序是静态的
  • 进程是运行的程序
  • 一个程序可能对应多个进程(比如抖音有主进程和push进程),但一个进程只会是一个程序

虚拟内存

虚拟存储让每个进程以为自己独占整个内存空间,其实这个虚拟空间是主存和磁盘的抽象,这样的好处是,每个进程拥有一致的虚拟地址空间,简化了内存管理,进程不需要和其他进程竞争内存空间,因为他是独占的,也保护了各自进程不被其他进程破坏,另外,他把主存看成磁盘的一个缓存,主存中仅保存活动的程序段和数据段,当主存中不存在数据的时候发生缺页中断,然后从磁盘加载进来,当物理内存不足的时候会发生 swap 到磁盘.页表保存了虚拟地址和物理地址的映射,页表是一个数组,每个元素为一个页的映射关系,这个映射关系可能是和主存地址,也可能和磁盘,页表存储在主存,我们将存储在高速缓冲区 cache 中的页表称为快表 TLAB .
定义虚拟地址来用磁盘扩展内存

线程和进程

进程是资源管理的最小单位,而线程是 CPU 调度执行的最小单位。

线程的上下文切换比进程小很多。

一个进程里可以有多个线程,这些线程共享进程里的资源。

缓存一致性

硬件之间的处理速度不相等,尤其是处理器和内存之间。一般都是内存跟不上处理器的处理速度。 所有在他们之间引入了缓存(cache)。