操作系统与进程
操作系统知识:
作用:
- 控制软硬资源
- 调度进程,使进程有序
多道技术
产生背景
针对单核,实现宏观上并发
什么是多道?
内存中存放多个程序
宏观/微观
- 宏观上并行:多个程序在同时运行
- 微观上串行:实际上多道程序轮流使用cpu
时空上的复用
时间上复用:切换+保存状态
遇到io操作切换、占用cpu时间长切换
切换时保存状态,下次运行时接着上次的状态继续运行
空间上复用:
内存中同时存放多个程序
使用同一套硬件资源
进程知识:
什么是进程?
是操作系统进行资源分配和调度的基本单位,是操作系统结构的基础,进程是线程的容器
狭义、广义:
狭义定义:是正在运行的程序的实例(an instance of a computer program that is being executed)
广义定义:是一个具有独立功能的程序关于某个数据集合的一次运行活动
理论角度、实现角度
理论角度:是对正在运行的程序过程的一种抽象
实现角度:是一种数据结构,刻画动态系统内部规律
进程的本质
本质是程序在多道程序系统中一次执行过程。
进程特征?
- 动态性:动态创建动态消亡
- 并发性:可同其他进程一起并发执行
- 独立性:是一个能独立运行的基本单位
- 异步性:进程按各自独立的速度往前执行。
- 结构特征:数据、程序、进程控制块三部分组成。
进程与程序的区别
程序:数据和指令的集合,静态,永久,作为文件资料长期存在
进程:程序在处理机上的一次执行过程,动态,短暂,有一定生命周期
注意:同个程序运行两次,就会产生两个进程。
进程的调度算法
- 先来先服务(FCFS):有利于长作业(进程),不利于短作业(进程)
- 短作业优先:短进程优先调度,不利于长作业
- 时间片轮转:将cup处理时间分成固定大小时间片,进程用完时间片时还没执行完,就排到末尾等待下一次调度。
- 多级反馈队列:设置多个队列,赋予不同优先级。
- 新进程进入内存,放入第一队列,按FCFS调度。
- 不能在分配的时间片内完成,降入第二队列,继续按FCFS调度。
- 依次降级时,按时间片轮转运行。
进程调度:时间片轮转法+多级反馈队列
进程的并发与并行
并发:看起来像同时运行
并行:真正意义上的同时运行
单核计算机不能实现并行,但可以实现并发。
进程的三种状态
就绪:进程分配到处cpu之外的所有资源
运行:进程获得处理机。执行完一个时间片进程还未运行完,变成就绪态。
阻塞:等待某个事件发生,放弃处理机。I/O操作,等待信号,申请缓冲区等。
同步、异步、阻塞、非阻塞
同步、异步: 针对任务的提交方式
同步:一个任务依赖另一个任务,只有等待被依赖的任务完成,该任务才能算完成,可靠。
异步:不需要等待被依赖的任务完成,任务也可以完成,不可靠。
阻塞、非阻塞:针对程序运行状态
阻塞:程序的阻塞态
非阻塞:程序处于就绪、运行态
进程的两种创建方式
直接使用Process的实例
继承Process,重写run方法
僵尸进程、孤儿进程
僵尸进程:任何进程都会变成僵尸进程
孤儿进程:父类进程意外死亡
守护进程
p.daemon = True ,必须在start之前创建
会在主进程运行结束之后结束
不发创建子进程
互斥锁
acquire() 抢锁
release() 释放锁