操作系统面试之——程序、进程、线程
上一篇 /
下一篇 2012-08-23 10:16:31
/ 个人分类:杂谈
51Testing软件测试网
\
~5@2d:]3P(G|Oe 1、程序和进程
)_z7j#}7q2{x0s0S0nQ8_!_0 进程由两个部分组成:1)操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。2)地址空间。它包含所有可执行模块或DLL模块的代码和数据。它还包含动态内存分配的空间。如线程堆栈和堆分配空间。51Testing软件测试网#}8_2sM$aJ0\ ZQkr
51Testing软件测试网6Y&f5e~!Gz1o;nt | 定义 T/m
Vf6u$R0 | 使用系统运行资源情况51Testing软件测试网%~}|;rV"FP6q |
程序51Testing软件测试网&O+sKSB
C.M]sN?#zm | 计算机指令的集合,它以文件的形式存储在磁盘上。程序是静态实体(passive Entity),在多道程序系统中,它是不能独立运行的,更不能与其他程序并发执行。51Testing软件测试网km6k(}2sF
^k_ | 不使用【程序不能申请系统资源,不能被系统调度,也不能作为独立运行的单位,因此,它不占用系统的运行资源】。 *nC
\\#k(}]5B\0 2j.YB1A
e#lJ0 |
进程 BiFmY0 | 通常被定义为一个正在运行的程序的实例,是一个程序在其自身的地址空间中的一次执行活动。 'x3j.O Cm5A0定义:进程是进程实体(包括:程序段、相关的数据段、进程控制块PCB)的运行过程,是系统进行资源分配和调度的一个独立单位。 qU$YY
e6y;Q0 | 使用【进程是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源。】 t1o#W@Z-A_0 |
2、进程与线程
:Y$OL
A;mJ$\p_0 如果说操作系统引入进程的目的是为了提高程序并发执行,以提高资源利用率和系统吞吐量。那么操作系统中引入线程的目的,则是为了减少进程并发执行过程中所付出的时空开销,使操作系统能很好的并发执行。51Testing软件测试网&[S [4B-v"z
s6p|
进程process定义了一个执行环境,包括它自己私有的地址空间、一个句柄表,以及一个安全环境;线程则是一个控制流,有他自己的调用栈call stack,记录了它的执行历史。
BZc^*}1`*bg']S0
线程由两个部分组成:1)线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。2)线程堆栈,它用于维护线程
在执行代码时需要的所有参数和局部变量。当创建线程时,系统创建一个线程内核对象。该线程内核对象不是线程本身,而是操作系统用来管理线程的较小的数据结
构。可以将线程内核对象视为由关于线程的统计信息组成的一个小型数据结构。
fy%DeB}h@0 进程与线程的比较如下:
i*O@*F+k.v\n/i/E/A(e0比较 5z\ h8`9`f0 | 进程 cxD9Bc OH0 | 线程 |