-
进程和线程的区别
img
- 进程是系统进行资源分配和调度的一个独立单位, 线程是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,最小的 CPU 执行单元。
- 地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。
- 资源拥有:同一进程内的线程共享本进程的资源如内存、I/O、cpu等,但是进程之间的资源是独立的。
- 执行过程:每个独立的进程有一个程序运行的入口、顺序执行序列和程序入口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制
- 进程切换时,消耗的资源大,效率不高。所以涉及到频繁的切换时,使用线程要好于进程。
- 作用:进程,使多个程序并发执行,以提高系统的资源利用率和吞吐量;线程,减少程序在并发执行时所付出的时空开销,提高操作系统的并发性能。
- 一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。
-
什么是死锁?死锁的四个必要条件
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞现象,若无外力作用,它们都将无法推进下去。此时系统处于死锁状态或系统产生了死锁。
四个必要条件
-
互斥
资源一次只有被一个进程使用。如果另一进程申请该资源,那么申请进程应等到该资源释放为止。
-
占有并保持
—个进程应占有至少一个资源,并等待另一个资源,而该资源为其他进程所占有。
-
不可剥夺
进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放。
-
循环等待
指在发生死锁时,必然存在一个进程——资源的环形链:有一组等待进程 {P0,P1,…,Pn},P0 等待的资源为 P1 占有,P1 等待的资源为 P2 占有,……,Pn-1 等待的资源为 Pn 占有,Pn 等待的资源为 P0 占有。
-
-
什么是虚拟内存?虚拟内存机制是通过什么手段来实现的?操作系统页面置换算法?重点其中的LRU算法->延伸leetcode146题
参考:https://blog.csdn.net/u014454538/article/details/99882141
-
虚拟内存实质
将进程的地址空间叫做虚拟地址空间,对这片空间进行分块;使用某些机制,如分页机制、分段机制、段页式机制,将每个页映射到物理内存中,即将虚拟地址映射为物理地址。这样进程访问的是虚拟地址,内部会被转化成存储了代码或数据的物理地址,从而访问到想要的代码或数据。
-
优点
- 通过使用虚拟内存技术,可以将物理内存扩大成更大的虚拟内存,从而不用担心小容量的内存对程序设计的限制。
- 逻辑内存与物理内存分开外,虚拟内存允许文件和内存通过共享页而为多个进程所共享。
-
如何实现虚拟内存?
通过分页、分段、段页式三种机制,实现虚拟内存。
-
分页
将进程的虚拟地址空间划分成页,虚拟地址由页号 + 偏移量组成。通过查找页表中的页表项(PTE),可以获得该页对应的物理内存页框号,页框号 + 虚拟地址中的偏移量构成物理地址,进程便可以访问到代码或数据。
-
分段
我们可以把内存看作多个段,每个段构成一个独立的地址空间。与分页相比,每个段的大小是不固定的,且可以动态增长。
-
段页式
将进程的地址空间划分成多个段,每个段有划分成多个页。
这样可以既拥有分段共享和保护的优点,还能拥有分页的虚拟内存功能。
-
-
页面置换算法
-
最佳置换算法(OPT)
选择置换下次访问距离当前时间最长的那些页。
-
先进先出置换算法(FIFO)
总是选择在主存中停留时间最长(即最老)的一页置换,即先进入内存的页,先退出内存。
-
最近最少使用(LRU)
选择上次访问时间距离当前最远的页进行置换。理论基础:根据局部性原理,这样的页是最近最不可能访问的。
-
-
-
计算机内存和磁盘的关系
计算机系统出了内存之外,还有一个非常重要的硬件,那就是磁盘。他们都是用于计算机存储,但是内存是利用电流来实现存储,而磁盘是利用磁效应来实现存储,并且,从存储容量来看, 内存是高速高价,而磁盘则是低速廉价。在计算机这个系统中,高速小容量的内存与低速高容量的磁盘进行协同作业。
我们知道计算机是利用CPU进行数据的运算的,但CPU只能对内存中的数据进行运算,而对于磁盘中的数据是不能运算的。如果要运算磁盘中的数据,必须先把磁盘中的数据读入内存,CPU才能进行运算。
网友评论