os-进程线程概念

操作系统中为了提供CPU的利用率,引入了多道编程,于是就有了进程的概念。
进程模型无疑提高了CPU的利用率,因为多个进程可以“同时”运行在一个CPU上,一个进程被阻塞掉了,另一个进程就可以被调度上CPU继续运行了。这样降低了CPU闲置的时间。
但是进程模型却存在一个问题。那就是如果一个进程被阻塞掉了,它就必须让出CPU了。同时对于一个任务,如果它是进程实现的(单进程),它实际上是“伪并发”的。因为一个进程内部不能并行运行。
于是就产生了线程模型,允许一个进程内部存在两个东西,同时运行任务,这样就真正意义上实现了并发。
有人会问,何必要出现线程模型,直接用多进程编程不是就可以了吗?
多进程编程会有诸多问题,例如多个进程拥有不同的地址空间,交互起来比较麻烦。
但是不可否认,引入线程模型后确实也带来了许多问题。

在现在操作系统中,进程模型扮演的角色更多的像一个资源分配的单元,不论是CPU资源还是IO资源。
不过对于CPU这样特殊的资源,有产生了线程这个模型来更好地利用这个稀缺资源。

会有一些概念性质的问题,例如OS调度的基本单位是什么?
这个问题比较难以回答,因为有的系统调度的单位是进程,有的是线程。
Linux系统调度的基本单位是进程,据说,unix从某些版本后调度单位就是线程了,没有深究,仅供参考。

至于Linux下的内核线程,idle与init,实际上是进程,由于他们没有用户态的地址空间,只在内核态有地址空间,从这个角度,被称为“线程”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值