进程与线程的引入

                                          进程与线程的引入

众所周知,进程和线程都是操作系统层面上的概念,官方的解释有很多,在这里不再赘述,我就用自己的话通俗的说一下。
最早期的操作系统仅仅能同时运行一道程序,它独占CPU,而且需要人工输入资源,姑且把它叫做单道系统(没听说过这个词,不过意义差不多),这样就有人想了,可不可以把多个程序写在一个地方,让CPU自己调取就省得运行完一道程序再人工输入下一道了。这样就出现了单道批处理系统。但是,仍然有一个问题,就是尽管可以批处理了,但是当一个程序需要资源进行I/O操作的时候当前CPU处于等待状态,更重要的是I/O操作是很费时的,这样造成CPU效率大打折扣。因此进一步有人想到在前一道程序进行I/O操作的时候保存它的现场,转而去执行下一道程序,I/O完成后再回来继续执行,即所谓的多道批处理系统。这个时候出现了一个问题:原先的程序是一道程序执行完毕后执行下一道,虽然慢但是清晰明了,现在倒好,所有的程序执行的时候是间断的,一会这个一会那个的,即所有程序并发执行,这样的话什么才叫做一道程序呢?传统的方式就很难辨认和描述某岛程序的运行过程,这样就引入了进程的概念,用来描述并发执行中系统进行资源分配和调度的一个独立单位。由此长达20年的时间里,在多道程序OS中一直是以进程为单位运行的。但是,一个进程包含了该程序所有的信息,这意味着程序的切换给OS造成的负担是很大的,况且在某一进程需要I/O的时候并不是非要暂停整个进程,离线状态是仅仅暂停需要I/O的部分,其他无关紧要的继续执行,这样就需要打破进程的概念。于是直到80年代中期,又有人提出了比进程更小的单位——线程,某个进程至少包含一个线程,每个线程中包含了该进程的部分信息,这样,用线程的切换代替进程的切换就能大大减少OS的开销。进而可以提高程序并发执行的效率。
进程是为了多个程序能够并发执行,线程是为了提高并发执行的效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值