CPU进程与线程的关系和区别Word格式.docx
《CPU进程与线程的关系和区别Word格式.docx》由会员分享,可在线阅读,更多相关《CPU进程与线程的关系和区别Word格式.docx(8页珍藏版)》请在冰豆网上搜索。
简而言之,一个程序至少有一个进程,一个进程至少有一个线程.
线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。
每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。
但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。
但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。
这就是进程和线程的重要区别。
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
一个线程可以创建和撤销另一个线程;
同一个进程中的多个线程之间可以并发执行.
和"
stdio.h"
区别
#include"
当要调用某个函数时
先在用户自已编写的文件中查找,如果找不到再到库文件里去找,
而#include是直接到库文件里去找
所以如果是调用自己写的函数的话就用#include"
这种形式
而调用标准库函数的话就用#include这种形式,可以提高速度
篇二:
进程线程区别与联系
定义:
一程序只是一组指令的有序集合
二进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位;
三线程是进程的一个实体,是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程;
一进程与线程区别与联系
(1)划分尺度:
线程更小,所以多线程程序并发性更高;
(2)资源分配:
进程是资源分配的基本单位,同一进程内多个线程共享其资源;
(3)地址空间:
进程拥有独立的地址空间,同一进程内多个线程共享其资源;
(4)处理器调度:
线程是处理器调度的基本单位;
(5)执行:
每个线程都有一个程序运行的入口,顺序执行序列和程序的出口,但线程不能单独执行,必须组成进程,一个进程至少有一个主线程。
二进程和程序区别和联系
(1)程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。
而进程则不同,它是程序在某个数据集上的执行。
进程是一个动态的实体,它有自己的生命周期。
反映了一个程序在一定的数据集上运行的全部动态过程。
(2)进程和程序并不是一一对应的,一个程序执行在不同的数据集上就成为不同的进程,可以用进程控制块来唯一地标识每个进程。
而这一点正是程序无法做到的,由于程序没有和数据产生直接的联系,既使是执行不同的数据的程序,他们的指令的集合依然是一样的,所以无法唯一地标识出这些运行于不同数据集上的程序。
一般来说,一个进程肯定有一个与之对应的程序,而且只有一个。
而一个程序有可能没有与之对应的进程(因为它没有执行),也有可能有多个进程与之对应(运行在几个不同的数据集上)。
(3)进程还具有并发性和交往性,这也与程序的封闭性不同。
进程和程序区别和联系表现在以下方面:
1)程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。
它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消。
2)进程和程序并不是一一对应的,一个程序执行在不同的数据集上就成为不同的进程,可以用进程控制块来唯一地标识每个进程。
3)进程还具有并发性和交往性,这也与程序的封闭性不同。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高
了程序的运行效率。
作业进程程序之间的联系
程序与进程之间的区别:
(1)进程更能真实地描述并发,而程序不能。
(2)进程由程序和数据两部分组成,进程是竞争计算机系统有限资源的基本单位,也是进程处理机调度的基本单位。
(3)程序是静态的概念;
进程是程序在处理机上一次执行的过程,是动态的概念。
(4)进程有生存周期,有诞生有消亡。
是短暂的;
而程序是相对长久的。
(5)一个程序可以作为多个进程的运行程序;
一个进程也可以运行多个程序。
(6)进程具有创建其他进程的功能;
而程序没有。
作业与进程的区别:
一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。
作业是用户需要计算机完成的某项任务,是要求计算机所做工作的集合。
一个作业的完成要经过作业提交、作业收容、作业执行和作业完成4个阶段。
而进程是对已提交完毕的程序所执行过程的描述,是资源分配的基本单位。
其主要区别如下。
(1)作业是用户向计算机提交任务的任务实体。
在用户向计算机提交作业后,系统将它放入外存中的作业等待队列中等待执行。
而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。
任一进程,只要它被创建,总有相应的部分存在于内存中。
(2)一个作业可由多个进程组成,且必须至少由一个进程组成,反过来则不成立。
(3)作业的概念主要用在批处理系统中,像unIx这样的分时系统中就没有作业的概念。
而进程的概念则用在几乎所有的多道程序系统中。
作业、进程和程序之间的联系:
一个作业通常包括程序、数据和操作说明书3部分。
每一个进程由pcb、程序和数据集合组成。
这说明程序是进程的一部分,是进程的实体。
因此,一个作业可划分为若干个进程来完成,而每一个进程有其实体————程序和数据集合。
篇三:
线程与进程有什么区别?
简单的说,你每启动一个程序,就启动了一个进程。
在windows3.x下,进程是最小运行单位。
在windows95/nT下,每个进程还可以启动几个线程,比如每下载一个文件可以单独开一个线程。
在windows95/nT下,线程是最小单位。
wInDows的多任务特性使得线程之间独立运行,但是它们彼此共享虚拟空间,也就是共用变量,线程有可能会同时操作一片内存。
什么是系统的进程?
发布:
狱火华衣分类:
进程知识发布日期:
20XX.08.21
下面针对hejb的提问,我先让朋友们了解一下在任务管理器里的进程。
其实在谈到进程时,还要涉及到线程的概念。
进程是指在系统中正在运行的一个应用程序;
线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。
对于操作系统而言,其调度单元是线程。
一个进程至少包括一个线程,通常将该线程称为主线程。
一个进程从主线程的执行开始进而创建一个或多个附加线程,就是所谓基于多线
程的多任务。
那进程与线程的区别到底是什么?
进程是执行程序的实例。
例如,当你运行记事本程序(nodepad)时,你就创建了一个用来容纳组成
notepad.exe的代码及其所需调用动态链接库的进程。
每个进程均运行在其专用且受保护的地址空间内。
因此,如果你同时运行记事本的两个拷贝,该程序正在使用的数据在各自实例中是彼此独立的。
在记事本的一个拷贝中将无法看到该程序的第二个实例打开的数据。
我这里以沙箱为例进行阐述。
一个进程就好比一个沙箱。
线程就如同沙箱中的孩子们。
孩子们在沙箱子中跑来跑去,并且可能将沙子攘到别的孩子眼中,他们会互相踢打或撕咬。
但是,这些沙箱略有不同之处就在于每个沙箱完全由墙壁和顶棚封闭起来,无论箱中的孩子如何狠命地攘沙,他们也不会影响到其它沙箱中的其他孩子。
因此,每个进程就象一个被保护起来的沙箱。
未经许可,无人可以进出。
实际上线程运行而进程不运行。
两个进程彼此获得专用数据或内存的唯一途径就是通过协议来共享内存块。
这是一种协作策略。
下面让我们分析一下任务管理器里的进程选项卡。
这里的进程是指一系列进程,这些进程是由它们所运行的可执行程序实例来识别的,这就是进程选项卡中的第一列给出了映射名称的原因。
请
注意,这里并没有进程名称列。
进程并不拥有独立于其所归属实例的映射名称。
换言之,如果你运行5个记事本拷贝,你将会看到5个称为
notepad.exe的进程。
它们是如何彼此区别的呢?
其中一种方式是通过它们的进程ID,因为每个进程都拥有其独一无二的编码。
该进程ID由windowsnT或windows2000生成,并可以循环使用。
因此,进程ID将不会越编越大,它们能够得到循环利用。
第三列是被进程中的线程所占用的cpu时间百分比。
它不是cpu的编号,而是被进程占用的cpu时间百分比。
此时我的系统基本上是空闲的。
尽管系统看上去每一秒左右都只使用一小部分cpu时间,但该系统空闲进程仍旧耗用了大约99%的cpu时间。
第四列,cpu时间,是cpu被进程中的线程累计占用的小时、分钟及秒数。
请注意,我对进程中的线程使用占用一词。
这并不一定意味着那就是进程已耗用的cpu时间总和,因为,如我们一会儿将看到的,nT计时的方式是,当特定的时钟间隔激发时,无论谁恰巧处于当前的线程中,它都将计算到cpu周期之内。
通常情况下,在大多数nT系统中,时钟以10毫秒的间隔运行。
每10毫秒nT的心脏就跳动一下。
有一些驱动程序代码片段
运行并显示谁是当前的线程。
让我们将cpu时间的最后10毫秒记在它的帐上。
因此,如果一个线程开始运行,并在持续运行8毫秒后完成,接着
,第二个线程开始运行并持续了2毫秒,这时,时钟激发,请猜一猜这整整10毫秒的时钟周期到底记在了哪个线程的帐上?
答案是第二个线程。
因此,nT中存在一些固有的不准确性,而nT恰是以这种方式进行计时,实际情况也如是,大多数32位操作系统中都存在一个基于间隔的计时机制。
请记住这一点,因为,有时当你观察线程所耗用的cpu总和时,会出现尽管该线程或许看上去已运行过数十万次,但其cpu时间占用量却可能是零或非常短暂的现象,那么,上述解释便是原因所在。
上述也就是我们在任务管理器的进程选项卡中所能看到的基本信息列。