进程:计算机中最小的资源分配单位:每一个程序在运行起来的时候需要分配一些内存,一个运行的程序,在操作系统中用pid来唯一标识一个进程
线程:计算机能被cpu调度的最小单位,实际执行具体编译解释之后的代码是线程,所以cpu执行的是解释之后的线程中的代码
并发:一个cpu,多个程序轮流执行
并行:多个cpu,各自在自己的cpu上执行多个程序
同步:调用一个操作,要等待结果
异步:调用一个操作,不等待结果
阻塞:cpu不工作
非阻塞:cpu工作
同步阻塞:调用函数有i/o操作就是同步阻塞?
同步非阻塞:调用函数没有i/o操作就是同步非阻塞?
异步非阻塞:
异步阻塞
进程的三状态图
就绪、运行、阻塞
点击运行-操-作系统接收到质量,分配一块空间给进程创建对应的进程id-就绪-
运行-结束进程
运行-阻塞-就绪-运行
运行(cpu的时间片到了)-就绪
#程序在开始运行之后,并不是立即开始执行代码,
#而是会进入就绪状态,等待操作系统调度开始运行
import time
print('程序开始运行')
#在这里遇到等待用户输入操作,程序进入阻塞状态
#用户输入之后进程并不是立即执行,而是进入就绪状态,等待操作系统调度运行
name=input('>>>')
print(name)#运行
time.sleep(1)#阻塞
#就绪
print('程序结束运行')#运行
#结束
进程的调度算法
给进程分配资源使用权的方法
短作业优先
先来先服务
多级反馈算法:分等级,时间片用完放到下一个等级,最高级没有进程排队,才执行下一个等级,执行到低等级的进程时,高等级的来了,低等级的也会立即停止,去执行高等级的
进程的开启和关闭
系统初始化、一个进程运行过程开启了子进程、用户的交互式请求、一个批处理作业的初始化
正常退出、出错退出、严重错误、被其他进程杀死