python学习笔记21
python学习笔记21
硬件系统:
- 运算器+控制器统称为中央处理器cpu
- 存储器:分为内存和外存
- 输入设备
- 输出设备
软件系统:
系统软件:
桌面操作系统:
- Windows系统:用户群体大
- macOS系统:适合于开发人员
- Linux系统:应用软件少
服务器操作系统:
- Linux:安全、稳定、免费,占有率高
- Windows Server :付费,占有率低
嵌入式操作系统:Linux:运行稳定、对网络的良好支持性、成本低,且可以根据需要进行软件裁剪,内核最小可以达到几百KB等特点。主要应用:机顶盒、数字电视、网络电话、手机、PDA等。
移动设备操作系统:
- iOS
- Android(基于Linux)
应用软件:
qq、微信、excel…………
操作系统发展
计算机的工作分为两个状态:
- CPU工作:CPU在做计算(对内存中的数据进行操作)
- CPU不工作:IO操作
IO操作:即输入输出操作(输入输出都是相对于计算机内存而言的)。
操作系统的三种基本类型:多道批处理系统、分时系统、实时系统。
通用操作系统:具有多种类型操作特征的操作系统。可以同时兼有多道批处理、分时、实时处理的功能或其中两种以上的功能。
操作系统的功能:
- 隐藏了丑陋的硬件调用接口,为应用程序员提供调用硬件资源的更好、更简单、更清晰的模型(系统调用接口)。
- 将应用程序对硬件资源的竞态请求变得有序化。
相关并发概念
进程:正在进行中的程序。进程需要占用计算机资源,需要操作系统调度。PID:程序运行时的唯一标识。进程是计算机中最小的资源分配单位。
并发:多个程序在一个cpu上轮流执行。
并行:多个程序同时在多个cpu上执行。
同步: 执行一个操作,需要等待这个操作完成才能进行下一个操作。
异步: 执行一个操作,不需要等待这个操作完成就能进行下一个操作。
阻塞:程序执行过程中cpu不工作,就是阻塞。
非阻塞:程序执行过程中cpu一直工作,就是非阻塞。
线程:线程是进程中的一个部分,不能脱离进程存在。线程是计算机中能够被cpu调度的最小单位。
进程
- 进程的三状态图
三状态:就绪,运行,阻塞。
当点击运行一个程序时,操作系统分配计算机资源给进程,进程进入就绪状态等待操作系统调度;当操作系统调用到这个程序时,程序才会进入运行状态,①如果程序顺利运行结束,则进程结束,释放计算机资源;②如果程序遇到阻塞,则进程在阻塞结束后进入就绪状态等待操作系统调度;③如果程序运行超时,则回到就绪状态等待操作系统调度。
- 进程的调度算法
给所有的进程分配资源或则分配cpu使用权的一种方法。常用的算法有:短作业优先、先来先服务、多级反馈算法。
多级反馈算法:
- 多个任务队列,优先级从高到低
- 新的任务总是优先级最高的
- 每一个新任务几乎会立即获得一个时间片时间
- 执行完一个时间片之后相应的任务就会降到下一级队列中
- 总是优先级高的队列全执行完才执行优先级低的队列
- 优先级越高时间片越短
- 进程的开启和关闭
进程的开启:
- 系统初始化(查看进程Linux中用ps命令,Windows中用任务管理器,前台进程负责与用户交互,后台运行的进程与用户无关,运行在后台并且只在需要时才唤醒,成为守护进程,如电子邮件、web页面、新闻、打印)
- 一个进程在运行过程中开启了子进程(如nginx开启多进程,os.fork,subprocess.Popen等)
- 因用户的交互式请求而创建一个新进程(如用户双击运行应用程序)
- 一个批处理作业的初始化(只在大型机的批处理系统中应用)
以上无论哪一种,新进程的创建都是由一个已经存在的进程执行了一个用于创建进程的系统调用而创建的。
进程的结束:
- 正常退出(自愿,如用户点击交互页面退出按钮,或程序执行完毕发起系统调用正常退出)
- 出错退出(自愿,如python中执行a.py文件时a.py问价不存在)
- 严重错误(非自愿,执行非法指令,如引用不存在的内存,1/0等,可以用try...except...捕捉异常)
- 被其他进程干掉(非自愿,如kill -9,如用任务管理器强制结束应用程序)