进程和线程怎么理解
这篇文章主要介绍“进程和线程怎么理解”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“进程和线程怎么理解”文章能帮助大家解决问题。
创新互联建站是一家集网站建设,云冈企业网站建设,云冈品牌网站建设,网站定制,云冈网站建设报价,网络营销,网络优化,云冈网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
单任务系统的情况
在这种情况下,所有的系统资源都交给程序使用,编程者只需要考虑处理的流程和逻辑即可。这里的资源包括:CPU时间,内存(堆,栈),全局变量,硬件设备(显示器,键盘,通讯接口,音频设备)等。
多任务操作系统的情况
进程
对于编程者来说,最理想的情况就是,根本不用意识自己是多任务操作系统环境中编写程序。
也就是说,至少看起来所有的系统资源都交给程序使用,编程者只需要考虑处理的流程和逻辑即可。这里的资源包括:CPU时间, 内存(堆,栈,全局变量),硬件设备(显示器,键盘,通讯接口,音频设备)等。
但问题是,物理内存,设备只有一份,多个程序同时执行时必然发生竞争。这个问题当然不用我们考虑,因为多任务操作系统已经解决了:
为每个程序提供一定的CPU时间,保证程序可以按照某种间隔被执行。这种执行是二进制机器码层面的。
为每个程序提供了独立的,虚拟的内存空间,实际的内存操作会映射到实际的物理内存上。
对于显示部分,提供了窗口机制,将程序的输出导向特定的窗口。同时系统将键盘,鼠标的输出导向当前活动的窗口。
有一些硬件,比如音频输入设备,串口等实在无法在程序之间共享。这样的硬件就采用了独占的方式,如果某个程序占用了某个设备,其他程序就不能使用。
这些都做到以后,可以说基本上实现了我们的理想:编程者不用意识自己实在为多任务操作提供编写程序。每个任务作为单独的程序来设计和实现,任务之间的调度利用操作系统的功能来实现。
这样的程序执行过程就是进程。基本上进程就相当于多任务操作系统中的应用程序。
进程的好处是最大限度程序执行过程保持之间的独立性,使增加任务或者调整任务内容变得简单。但同时也可以看到操作系统要为每个进行分配资源,映射内存操作,各种输入输出。所有这些都需要相当的系统开销。所以多任务操作系统内部也是随着硬件性能的提高而逐渐发展提来的。
线程
理解了进程的优缺点以后,在理解线程就容易了。很多时候在一个进程内部还是需要多任务处理,比如视频时软件在视频解码时还要接受用户操作。对于这种情况下就需要在进程内部提供多任务处理机制:线程。
一个进程中的线程之间CPU时间的分配和进程类似,但是共同使用进程的资源,操作系统不必为每个线程提供另外的映射机制,这样做的结果:
多个线程公共一个资源时,需要编程者利用操作系统提供提供的接口主动的进行访问控制和同步。
由于用于共同的内存空间,堆,栈等,所以不需要另外的地址映射等处理,可以实现比较快速的数据交换。
关于“进程和线程怎么理解”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注创新互联行业资讯频道,小编每天都会为大家更新不同的知识点。
分享名称:进程和线程怎么理解
标题路径:http://abwzjs.com/article/ppeise.html