一.操作系统
1.什么是操作系统
操作系统就是一个协调,管理和控制计算机硬件资源和软件资源的控制程序.
在计算机硬件和用户接口程序之间
2.操作系统的作用
1.为应用程序提供如何使用硬件资源的抽象
2.管理硬件资源
二.操作系统发展史
第一代(1940-1955) 手工操作--穿孔卡片
第二代(1955-1965) 磁带存储--批处理
第三代(1965-1980) 多道程序系统
1.多道程序技术:允许多个程序同时进入内存并相互独立运行
时间复用:遇到I/O就切换任务
空间复用:将内存分为几部分,每个部分放入一个程序,这样,同一时间内存中就有了多道程序
2.多道批处理系统(解决空间复用缺点)
3.分时系统(解决时间复用缺点)
4.实时系统(高精度)
5.通用操作系统
三.并发与并行
1.并发:伪并行,看起来是同时运行,实际上是cpu切换太快.单核cpu+多道技术就可以实现并发
2.并行:真正的同时运行,只有多核cpu才能实现
四.同步,异步,阻塞,非阻塞
1.进程的三状态:就绪,执行,阻塞
2.同步:任务提交方式,一个一个提交
3.异步:任务提交方式,多个任务同时提交
4.阻塞:遇到I/O(程序遇到input等等)
5.异步非阻塞:程序最理想状态,同时执行多个进程并且没有I/O,效率很高.
五.multiprocessing模块中的Process
1.什么是进程(process)
进程:进程是系统进行资源分配和调度的基本单位
2.创建进程的两种方式
p = Process(targrt=任务,args=(参数,)

import time from multiprocessing import Process def f1(str): time.sleep(1) print(str) def f2(str): time.sleep(1) print(str) # 创建多进程的过程: # 先copy主程序的代码,类似于import导入 # 如果没有main 就会发生copy的代码中还会执行多进程创建,造成递归. # main的作用就是防止import导入时候执行main下面代码 # 如果是模块导入,__name__ = 模块名 # 如果是自己执行,__name__ = __main__ # main 就是为了防止造成递归 if __name__ == '__main__': for i in range(20): p1 = Process(target=f1, args=("烧饼",)) # args传参方式 元组 p2 = Process(target=f2, kwargs={"str": "羊汤"}) # kwargs传参方式 字典 p1.start() # 发出开始指令 p1.join() # 等待p1对象执行完才能往下执行 p2.start()

from multiprocessing import Process class Myprocess(Process): # 继承Process类 def __init__(self,str): super().__init__() # 重用父类中的__init__() self.str = str def run(self): # 重写run方法 print(self.str) if __name__ == '__main__': for i in range(20): p = Myprocess("666") # 传参 p.start()
3.Process中的几个方法
1.start():启动进程,并调用子进程中的run()方法
2.run():进程启动时运行的方法
3.terminate():给操作系统发出结束该进程的信号
4.is_alive():判断该进程是否还运行
5.join():等待该子进程执行完再往下执行
4.Process中的几个属性
1.daemon:默认为False.守护进程,当daemon为True时,主进程结束,子进程也会被强制结束
2.name:进程的名称,可以自定义
3.pid:查看进程的id