进程
cpu只能跑一个进程,如我们一下可以开很多应用,但是我们看不见cpu在来回切换进程,因为cpu运存速度太快了,一个应用切换毫秒单位,人类无法看出.
有个东西在控制这种来回切换要保存上次切换的数据信息,进程控制(PCB),
另外一个进程需要使用的时候,现在这个就是撤出CPU, 回到内存进入就绪状态,与此同时另外(新的)一个程序开始占据CPU运行。
-
计算机5大基本单元
- 运算器
- 控制器
- 存储器
- 输入设备
- 输出设备
进程很好理解
比如:腾讯视频
进程就是一个工厂的车间,这个车间主要用来干嘛的呢,要腾讯视频,这个车间就是让用户看视频,当然用户的需求上升,比如:历史观看记录,浏览记录啊,是不是都要每次我保存这些下下来,如果让我们单干肯定说搞不定的,所有我们请了很多工人,这个工人在同一个车间工作,但是每个工人的工作模块都不同,比如A工人负责保存观看记录,B工人负责保存浏览记录,这些工人有一个共同的名字叫线程.
注: 线程是建立在进程上面的,没有进程就没有线程
但是他们怎么分工呢,车间于是搞了一张进程维护线程表,
但是又有一个问题如果,我的一个工人(线程),要操作io,系统内核就会认为,这个请求是这个进程请求,这个时候io没有请求完整个进程都会进入阻塞状态,有点想我们电脑卡死鼠标点不了
解决方法:
就是让内核知道这个请求(io操作)是我们线程发出来,让内核去维护照护我这个车间的工作,不会让我整个进程卡住(阻塞)
- 内核也开启了线程,如何我这个线程要io操作的话,我就要映射到内核的线程中,也让内核动起来
image.png
注: 线程之间是独立运行的,A线程的操作不能影响到别的线程.,
image.png












网友评论