要了解二者的区别与联系,首先得对进程与线程有一个宏观上的了解。 进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大 ...
分类:
编程语言 时间:
2016-08-30 10:55:19
阅读次数:
171
我们知道,系统函数都是以DLL封装起来的,应用程序应用到系统函数时,应首先把该DLL加载到当前的进程空间中,调用的系统函数的入口地址,可以通过GetProcAddress函数进行获取。当系统函数进行调用的时候,首先把所必要的信息保存下来(包括参数和返回地址,等一些别的信息),然后就跳转到函数的入口地 ...
进程使用更多的系统资源,因为每个进程需要独立的地址空间。而线程只有一个内核对象及一个堆栈。如果有空间资源和运行效率上的考虑,则优先使用多线程。正因为每个地址有自已独立的进程空间,所以每个进程都是独立互不影响的。而一个进程中所有线程是共用进程的地址空间的,这样一个线程出问题可能影响到所有线程。像多标签 ...
分类:
编程语言 时间:
2016-08-15 14:11:29
阅读次数:
137
页表:用于建立用户进程空间的虚拟地址空间和系统物理内存(内存、页帧)之间的关联。 向每个进程提供一致的虚拟地址空间。 将虚拟内存页映射到物理内存,因而支持共享内存的实现。 可以在不增加物理内存的情况下,将页换出到块设备来增加有效的可用内存空间。 内核内存管理总是假定使用四级页表。 3.3.1 数据结 ...
分类:
系统相关 时间:
2016-08-10 16:13:45
阅读次数:
545
首先,让我们看下linux虚拟内存:
第一层理解
1. 每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构
2. 一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表中的task_struct记录,task_struct中记录中一条链表,...
分类:
系统相关 时间:
2016-06-06 17:06:53
阅读次数:
306
00×0 docker概念 Docker包括三个基本概念:镜像(Image)、容器(Container)、仓库(Repository) 镜像 在此基础上对该镜像进行二次改造,大家可以使用该镜像来扩展开发。 容器 可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间 ...
分类:
其他好文 时间:
2016-05-22 20:07:22
阅读次数:
227
当应用程序生成一个新的线程的时候,该线程变成应用程序进程空间内的一个实体。每个线程都拥有它自己的执行堆栈,由内核调度独立的运行时间片。一个线程可以和其他线程或其他进程通信,执行I/O操作,甚至执行任何你想要它完成的任务。因为它们处于相同的进程空间,所以一个独立应用程序里面的所有线程共享相同的虚拟内存 ...
分类:
移动开发 时间:
2016-05-16 21:57:51
阅读次数:
187
进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位,每一个进程都有一个自己的地址空间,即进程空间或虚空间,进程空间的大小只与处理机的位数有关,一个16位长处理机的进程空间大小为216,而32位处理机的进程空间大小为232,进程至少有5种基本状态:初始态、执行态、等待状态、就绪状态、终止状态
线程,在网络或多用户环境下,一个服务器通常需要接收大...
分类:
编程语言 时间:
2016-05-12 15:03:55
阅读次数:
162
进程
一个进程,包括了代码、数据和分配给进程的资源(内存)。在计算机系统里直观地说一个进程就是一个PID,操作系统保护进程空间不受外部进程干扰,即一个进程不能访问到另一个进程的内存。有时候进程间需要进行通信,这时可以使用操作系统提供进程间通信机制。通常情况下,执行一个可执行文件操作系统会为其创建一个进程以供它运行。但如果该执行文件是基于多进程设计的话,操作系统会在最初的进程上创建出多个进程出来,...
分类:
编程语言 时间:
2016-05-07 08:37:36
阅读次数:
158
一、进程和线程的基本概念进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。每一个进程都有自己的地址空间(进程空间或虚空间)。进程有五种基本状态:初始态、执行态、等待状态、就绪状态、终止状态。线程,是进..
分类:
编程语言 时间:
2016-05-05 11:14:17
阅读次数:
162