一.操作系统的作用
1.隐藏丑陋复杂的硬件接口,提供良好的抽象接口
2.管理、调度进程,并且将多个进程对硬件的竞争变得有序
二.多道技术
1.空间上的复用
多个程序共用一套计算机硬件
2.时间上的复用
切换+保存状态
1.当一个程序遇到I/O操作时,操作系统会剥夺该程序的cpu执行权限(提高cpu的利用率,也不会影响程序执行效率)
2.当一个程序长时间占用cpu,操作系统会剥夺该程序的cpu执行权限(降低了程序的执行效率)
2.进程基本概念
什么是进程
程序就是一串代码,进程就是正在运行的程序,它是资源分配和调度的基本单位,是操作系统结构的基础.
进程调度的算法
1.先来先服务调度算法
2.短作业优先调度算法
3.时间片轮转法
4.多级反馈队列
第一种和第二种算法都有明显的缺点,第一种对短作业不友好,第二种对长作业不友好,所以现代计算机进程都是基于第三种和第四种方法实现进程,如下图所示
进程的并行和并发
并发:看起来像同时运行
并行:真正意义上的同时执行
注意:单核计算机不能实现并行,但可以实现并发,所以要实现并行必须有多个处理器
进程的三种状态
1.就绪态:
当进程已经做好了所有准备,就等cpu执行了,此时的状态就是就绪态
2.运行态
当进程正在被cpu执行的时候,此时的状态就是执行态
3.阻塞态:
当进程在被执行的过程中发生了一些必要的I/O操作无法继续执行时,cpu会放弃该进程转而执行其他进程,此时的状态就是阻塞态
1 # 此时程序处于就绪态 2 import time # 运行这串代码时处于运行态 3 4 print('程序开始执行') 5 msg = input('>>>:') # 进入阻塞态 6 # 进入就绪态 7 print(msg) # 进入运行态 8 time.sleep(1) # 进入阻塞态 9 # 进入就绪态 10 print('程序结束运行') # 进入运行态 11 # 结束运行