本篇通过介绍操作系统OS的重要功能,了解并发并行, 了解操作系统的一项重要功能 “进程管理” , 通过了解进程管理认识进程是操作系统资源分配的基本单位 ,如有错误,请在评论区指正,让我们一起交流,共同进步!
进程管理是操作系统的一项重要功能, 用来管理多项进程;
说到进程, 哪什么是进程呢?
进程: 一项运行的程序 或者 一个运行的任务;
例如: 各种.exe文件, exe文件是一种可执行文件
了解了进程, 哪什么是进程管理呢?
进程管理就是当运行的进程个数增多, 就需要对它们进行管理;
进程管理包括:
①对进程的描述: 使用结构体(PCB - 进程控制模块)对进程进行描述, 表示出进程的各种信息;
②对这些进程的管理: 使用一些数据结构(双向链表),组织这些结构体;
进程的描述使用结构体, 结构体中有很多属性, 这里介绍一些重要的属性;
进程中的结构体称为: PCB
从2和3来看, 进程的运行都需要操作系统进行资源分配 => 所以说 进程是操作系统进行资源分配的基本单位
可以把每个进程认为是一个节点, 操作系统就使用双向链表来管理进程
① 创建一个进程, 相当于创建一个节点, 连接在链表上
② 删除一个进程, 相当于删除一个节点在一个链表上
③ 遍历进程(任务管理器上运行的程序任务是排成的链表) , 就是遍历链表
并行: 同一时刻, 两个核心执行两个进程, 认为 两个进程时同时进行的
并发: 一个核心, 先运行一个进程1, 运行一会, 马上切换另一个进程2, 在运行一会,切换进程 3…
当进程之间的切换时间足够短时 就认为 1,2,3…进程就是同时执行的 => 一个核心多次调度, 时间足够短, 认为多个进程是并发的
[注意] 每台电脑上的看自身的配置这里是(8核16线程); 逻辑处理器: 16个逻辑核心; 内核: 8个物理核心
但我们常说的 并发 = 并行 + 并发
操作系统给进程分配内存, 所使用是 “虚拟内存地址” , 也就是说 进程访问的内存地址都不是真实的地址, 而是虚拟的; 这样的优点是让进程执行期间互不干扰
例子如图:
这里只是粗糙的说明一下, 绿色为虚拟内存, 红色为校验操作;
页表: 用于校验, 方便知道当前地址是否是有效的; (如果没有页表进程之间会产生BUG(野指针等情况), 从而出现运行错误等)
内存分配执行流程:
进程根据虚拟内存地址, 访问虚拟内存, 再到页表校验查找对应的内存, 如果找到会映射到真实的内存上, 没找到无法进行下一步操作, 也不会影响的其他进程;
从上面的内存的分配流程里, 可以知道一个进程无法干预另一个进程, 进程之间有独立性;
一些必要的时候需要进程与进程之间进行通信, 互相配合; 这就用到了进程之间的通信;
进程间通信: 在隔离的情况下, 有一个公共的区域, 让进程之间进行数据交换;
这里只是了解一下进程通信;
✨✨✨各位读友,本篇分享到内容如果对你有帮助给个👍赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!