目录
操作系统:像是windows,android,iOS等都是常见的操作系统
下面是关于计算机在底层工作的原理流程图
在操作系统层面:
- 对上,要给软件提供稳定的运行环境。
- 对下,要管理好各种硬件设备(如鼠标,键盘等)。
操作系统本身就是一个大话题,是一个非常复杂的软件,其中的功能非常多,**“进程管理”**就是一个与我们密切相关的模块
一个运行起来的程序,就是进程
进程(process)/任务(task)
可以在任务管理器中查看到启动了哪些进程
进程管理(进程多了,才需要管理)
-
描述一个进程:使用结构体/类,把一个进程有那些信息,表示出来
-
组织这些进程:使用一定的数据结构,把这些结构体/对象放到一起
例如,学生管理系统:
- 明确每个学生相关属性信息
- 通过一定数据结构把这些学生的信息都放起来(例如通过表格等形式)
进程的结构体里有哪些属性?(进程结构体PCB(process control block))
- pid 每个进程需要有一个唯一的身份标识
- 内存指针,当这个进程运行的时候,使用了哪些内存上的资源
- 文件描述符表,当这个进程运行的时候,使用了哪些硬盘上的资源
- 进程的运行,需要从操作系统这里申请资源,所以 进程是操作系统进行资源分配的基本单位 \color{red}{进程是操作系统进行资源分配的基本单位} 进程是操作系统进行资源分配的基本单位
多进程编程
进程调度
进程调度的两种方式:
并行
同一时刻,两个核心,同时执行两个进程.此时这两进程就是并行执行的
并发
一个核心,先执行进程1,执行一会之后,再去执行进程2,再执行一会之后,再执行进程3....
只要转换的做够快那么我们就可以认为进程1,2,3就是同时执行的
下面我会使用通俗易懂的文字来对并行和并发进行解释:
很多时候我们都把“并行 + 并发”统称为“并发”
并发程度更高了,就可以称为“高并发”
进程调度(PCB)所需要的4个核心属性:(不只有四个属性)
- 进程状态
- 进程的优先级
- 进程的上下文
总结下来就是:
- 进程的记账信息
统计了每个进程,在CPU上执行了多久,可以作为调度的参考依据
组织进程调度
进程间通信
以上就是本博客对于操作系统的相关介绍了~~
本篇博客的重点知识就是 进程+进程的调度
学习本篇并不是为了讲线程,而是为了引出下一个知识点:线程!!!
多进程编程 和 多进程编程,都能满足“并发编程”的需求场景
而在Java编程中多使用,多线程编程
关于多线程编程的具体内容,那么就请各位看官移步下篇辣🤣🤣🤣