进程和线程的区别,虚拟地址、逻辑地址、线性地址、物理地址的区别

1、进程和线程的区别?

解析:(1)进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元
          (2)同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进行至少包括一个线程。
          (3)进程的创建调用fork或者vfork,而线程的创建调用pthread_create,进程结束后它拥有的所有线程都将销毁,而线程的结束不会影响同个进程中的其他线程的结束
          (4)线程是轻两级的进程,它的创建和销毁所需要的时间比进程小很多,所有操作系统中的执行功能都是创建线程去完成的
          (5)线程中执行时一般都要进行同步和互斥,因为他们共享同一进程的所有资源
          (6)线程有自己的私有属性TCB(线程控制块),线程id,寄存器、硬件上下文,而进程也有自己的私有属性进程控制块PCB(进程控制块),这些私有属性是不被共享的,用来标示一个进程或一个线程的标志

2、虚拟地址、逻辑地址、线性地址、物理地址的区别?

解析:
  分段机制把一个逻辑地址转换为线性地址;接着,分页机制把一个线性地址转换为物理地址。
(1)虚拟地址:虚拟内存映射出来的地址
(2)逻辑地址:程序的段加偏移量形成的,C/C++程序中取地址求出来的地址就是逻辑地址
(3)线性地址:是逻辑地址到物理地址的中间层,只有启动分页机制的时候才有线性地址,如果没有分页机制,那么线性地址就是物理地址
(4)物理地址:是内存中实实在在存在的硬件地址,
逻辑地址(启动分段)-->线性地址(启动分页)-->物理地址

猜你喜欢

转载自www.cnblogs.com/tianzeng/p/9196676.html