1 进程的概念
进程是指一个正在执行任务的过程,而负责执行任务的则是cpu。
2 进程与程序
程序只是程序员写的代码,而进程则是指程序的运行过程
3 并发、并行和串行
并发;你现在有做作业的任务,打游戏的任务,看电视剧的任务。但你同时只能做一件事情(cpu同一时间只能执行一个任务)。那如何才能产生并发的效果了?可以先做一会作业,再看一会电视剧,在打一会游戏,然后又做一会作业,再看一会电视剧。这样看起来就好像你同时在干多件事情。现在cpu有5个任务要执行,cpu同一时间只能执行一个任务。由于cpu的速度非常快,1秒内可以在5个任务之间来回切换,每个任务执行几十毫秒。这样给人看起来cpu就好像在同时执行5个任务。即伪并行,即看起来是同时运行。单个cpu+多道技术就可以实现并发
并行:假如现在你家要进行大扫除,需要擦桌子,拖地,倒垃圾这些任务。你负责倒垃圾,你爸负责拖地,你妈负责擦桌子。这样,三个任务就可以同时执行,节省时间。这就是并行
只有具备多个cpu才能实现并行。单核下,可以利用多道技术,多个核,每个核也都可以利用多道技术。现在电脑一般都有四个核(可以通过os.cpu_count()查看电脑是几核),现在有五个任务,但同一时间只有四个任务被执行,假设分别被分配给了cpu1,cpu2,cpu3,cpu4,一旦任务1遇到I/O就被迫中断执行,此时任务5就拿到cpu1的时间片去执行,这就是单核下的多道技术。而一旦任务1的I/O结束了,操作系统会重新调用它(需知进程的调度、分配给哪个cpu运行,由操作系统说了算),可能被分 配给四个cpu中的任意一个去执行。
串行:你现在有做作业的任务,打游戏的任务,看电视剧的任务。你爸妈就会要求你先做完作业,然后打2把游戏,最后在看电视。像这样,把一个任务执行玩了,再执行下一个任务就是串行。
4 同步、异步、阻塞与非阻塞
转载地址:https://www.jianshu.com/p/aed6067eeac9
5 进程实现并发的原理
并发的实现在于不停的在不同的任务之间切换,所有当切换走的时候,就需要将当前进程的信息保存下来,等切换回来的时候继续执行。为此,操作系统维护了一张进程表,这张表存放了进程相关的重要信息。