一、进程与线程之间的区别
(1)进程是拥有资源的最小单位;线程是拥有调度的最小单位;
(2)进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵
(3)线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。
(4)线程之间通信更方便,同一个进程下,线程共享全局变量,静态变量等数据,进程之间的通信需要以通信的方式(IPC)进行;
二、段页存储管理
(1)分页存储管理:用户程序的逻辑地址空间被划分为若干个固定大小的地址空间,称为“页”,内存物理地址空间也分成相对应的若干个物理块,页和块的大小相等,可将用户程序的任一页放在任一块中,实现离散分配 。有效提高内存利用率。
(2)分段存储管理:将用户程序空间分成若干个大小不等的段 ,每段可以定义一组相对完整的逻辑信息。 存储分配时,以段为单位 ,段与段在内存中可以不相邻接,也实现了离散分配。能反映程序的逻辑结构,便于段的共享与保护。
(3)段页式存储管理:程序的 地址空间首先被分成若干个逻辑分段 ,每段都有自己的段号,然后再将 每段分成若干个大小相等的页 ,对于主存空间也分层若干个大小相等的页,主存的分配以页为单位。
分页存储管理和分段存储管理的区别:
1)页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。段则是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好地满足用户的需要。
2)页的大小固定且由系统决定;而段的长度却不固定,决定于用户所编写的程序。
3)页的地址空间是一维的,程序员只需利用一个记忆符,即可表示一个地址;而分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。
三、锁
原文地址:https://www.cnblogs.com/hdc520/p/12559258.html