|
|
| | -文章搜索 - 最新文章 - | |
第4912篇:问:任务、进程和线程有何不同? |
| 发布时间:2006年3月4日 点击次数:4018 |
| 来源: 作者: |
问:任务、进程和线程有何不同? 答:三个词中,任务(task)是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操作。例如,读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。 进程(process)常常被定义为程序的执行。可以把一个进程看成是一个独立的程序,在内存中有其完备的数据空间和代码空间。一个进程所拥有的数据和变量只属于它自己。 线程(tread)则是某一进程中一路单独运行的程序。也就是说,线程存在于进程之中。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据,但各有其自己的堆栈。由于堆栈是每个线程一个,所以局部变量对每一线程来说是私有的。由于所有线程共享同样的代码和全局数据,它们比进程更紧密,比单独的进程间更趋向于相互作用,线程间的相互作用更容易些,因为它们本身就有某些供通信用的共享内存:进程的全局数据。 一个进程和一个线程最显著的区别是:线程有自己的全局数据。线程存在于进程中,因此一个进程的全局变量由所有的线程共享。由于线程共享同样的系统区域,操作系统分配给一个进程的资源对该进程的所有线程都是可用的,正如全局数据可供所有线程使用一样。 在20世纪60年代初期,麻省理工学院的MULTICS操作系统中首先引入“进程”这个概念,IBM公司的CTSS/360系统中则使用“任务”这个术语。“线程”概念的出现就更晚了。 征答 我们做了一个s80296sa系统,ROM是0F00000H-0FFFFFFH(2个AM29SF040-90),RAM是0H-1FFFFH(61C6416-15K)。我用了#pragma md(np)和ROM(0F00000H-0FFFFFFH) RAM(0-1FFFFH)控制项,结果是用C196(V5.3)无法生成HEX文件。我只好将FF页的芯片配置部分用ASM编写,芯片配置完后再把F0页的程序代码读到0页,然后再(从FF页)跳到0页的2080处执行,用C196(V5.3) #pragma md(kr)编写的程序,固化在F0页,驱动1个 240×128 LCD,运行很好。可这样用C语言写的程序ROM和RAM只能用0页的部分空间,因为我想把整个0页做DATA和STACK空间,1页做全速CODE空间,FF页用做初始化代码空间。我想问一下用C语言如何把代码定位于其它页而非0页,如FF~F0的任一页? 王东征 |
|
|
|
|
[常见技术问答] 相关文章: 冷复位和热复位有什么区别?简介: 问:冷复位和热复位有什么区别? 答:冷复位用英文来表示是Restart,热复位用英文来表示是Reset。 我们把单片机从没加电到加上电源,而自动产生的复位称为冷复位;单片机在已经通电的情况下,给它一个复位信号,称为热复位。 冷复位会使单片机的特殊功能寄存器和数据存储器的内容都改变;而热复位只是特殊功能寄存器的内容改变而单片机的内部数据存储器的内容不变。 问:通常用C来开发单片机软件需要哪些工具? 答:在编辑软件阶段需要工具如下:文本编辑器、C语言编译器(C ...... 选择手机射频芯片时,主要考虑哪些问题? 当今世界的手机频率各是多少(CDMA,GSM、市话通、小灵通、模拟手机等)? 什么是RF? 单片机、微控制器和微处理器有何区别 |
|
|
|