操作系统--进程与线程

#####- 前言
每次说道进程与线程区别,是不是很慌,很难说清。当然每个人的理解也有出入。本文将以我个人的理解来讲述进程与线程区别。


首先聊聊背景
大家都知道摩尔定律吧!大概是这么个意思,

当价格不变的情况下,集成电路上晶体管数量每隔18个月增加一倍,性能也将提升一倍。

可想而知,CPU发展至今,性能已提升不知道多少倍了。当然CPU的速度也肯定很快很快了,以至于寄存器和硬件资源(比如显卡,光驱,键盘,GPS等外设)都无法追上他的步伐。

CPU执行多个任务时,当CPU早早的执行完一个任务(一段程序代码),不可能一直等啊等,等待硬件资源来处理完该任务输出的数据再执行下一个任务。
那怎么办呢?当然是执行完一个任务立刻马上执行下一个任务。

这里理理CPU执行逻辑。假设有程序A、程序B两个任务,
CPU先加载程序A的上下文,然后执行程序A,保存程序A的上下文;
CPU再加载程序B的上下文,然后执行程序B,保存程序B的上下文。

#####- 什么是进程
说到这,我们再聊聊进程

教科书中说过最经典的一句话,进程是资源分配的基本单位。

换句话就是进程用来分配CPU的时间,内存等等。接着上面的例子,进程A分配好CPU的时间,内存等等,执行A任务(程序A);当时间片到,进程B分配好CPU的时间,内存等等,执行B任务(程序B)。

每次进程间的切换,都要保存上下文,分配资源,是一笔较大的开销。

#####- 什么是线程
聊聊线程

教科书中说过最经典的一句话,线程是CPU调度的基本单位。

换句话就是每个进程分配好CPU的时间、内存后。线程将CPU的时间划分的更细,并且共享进程的上下文,分配好的内存。缺点是内存难管理。

#####-总结
写的不是很好,感觉还需要更好的理解。


#####-参考
[1] 线程和进程的区别是什么? https://www.zhihu.com/question/25532384

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值