当前位置| 科技 > > 列表>详情

进程和线程的主要区别是什么?DOS可执行文件是什么意思?

2023-02-03 08:51:29 来源:创视网

进程和线程的区别

基本意义:进程:操作系统分配资源(内存空间等)的基本单位,系统中正在运行的一个应用程序,程序一旦运行就是进程。线程:是进程的一条执行路径,操作系统CPU独立调度执行的基本单位

包含关系:线程是进程的一部分,一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。

空间使用:每个进程有独立的代码区和内存空间;,系统不会为线程分配内存,不同线程共享所在进程的内存空间,不同线程共用堆,但是不同线程有各自的栈。

开销:1. 创建和终止进程耗时,消耗内存资源更多,线程更少。2. 程序之间的上下文切换会有较大的开销时间和内存,同一类线程共享代码和数据空间,线程之间切换的开销小,因为不需要切换地址空间。

相互影响:进程之间不会相互影响,而多线程之间影响较大。一个进程挂了对其他进程没影响,而一个线程挂了,则数据很可能出错,也很可能整个进程就挂了。进程之间相互独立,而不同线程之间更多是协作关系。

DOS可执行文件中的内容是由源程序中所写的代码和数据定义转换而来的。惟一的例外是带覆盖部分(Overlay)的exe文件,它在基本的exe文件后附加了一些自定义的数据,其中可执行部分的长度由文件头偏移0002h和0004h中的长度给出,该长度之后到文件实际长度这部分就是Overlay部分。这样,即使一个带覆盖的exe文件大小远远超过640 KB,在DOS下也能运行,因为操作系统只装入真正的可执行部分,然后由程序自己去读取覆盖部分的数据。一些打包软件生成的奇大无比的自解压包就采用这种结构,可执行部分是解包代码,覆盖部分是被压缩的数据。DOS对可执行文件覆盖部分的数据格式并没有规定,它是程序员按自己的方式组织的。如果程序员愿意,也可以把这些数据单独放在另外一个文件中。

标签: 进程和线程 主要区别 DOS可执行文件 是什么意思