并发编程 ~~~ 多进程
一 进程
-
程序: 一堆静态的代码文件
-
进程: 一个正在运行的程序 (由操作系统操控调用交于CPU运行)
-
串行: 所有的任务一个一个的完成
-
并行: 多个CPU执行多个任务,真正的同时进行
-
并发: 一个CPU完成多个任务,看起来像是同时进行
-
阻塞: CPU遇到I/O就是阻塞
-
非阻塞: 没有I/O
-
进程的创建:
一个子进程必须依赖于一个主进程才可以开启
一个主进程可以开启多个子进程
Unix: fork创建子进程
Unix(linux,mac): 创建一个子进程会完完全全复制一个主进程所有的资源,初始资源不变
Windows: 操作系统调用CreateProcess处理进程的创建.
Windows: 创建一个子进程会复制主进程所有的资源,但会改变一些资源
-
进程的状态: 就绪 运行 阻塞
二 操作系统
操作系统: 管理控制协调计算机中硬件与软件的关系.
操作系统的作用:
- 将一些对硬件操作的复杂丑陋的接口变成简单美丽的接口
- 多个进程抢占一个(CPU)资源时,操作系统会将你的执行变得合理有序
多道技术: 解决多个程序竞争或者说共享同一个资源(比如cpu)的有序调度问题,解决方式即多路复用,多路复用分为时间上的复用和空间上的复用。
- 空间上的复用: 将内存分区域,一个内存可以同时加载多个进程.
- 时间上的复用: 实现将CPU在多个进程之间来回切换,并且保留状态.