操作系统基础
1.什么是IO 操作?
I/O操作 相对于内存而言 往内存里写就是输入 ,从内存往外读就是输出
怎么输入:键盘\input\read(从硬盘中往内存读)\recv(从网络中接收数据,存到内存)
怎么输出 : 显示器 打印机 播放音乐\print\write(从内存往硬盘写)\send(从内存往外发送)
文件操作: read write
网络操作:send recv
函数 : print input
操作系统的作用 : 分配硬件资源,使应用程序使用硬件有序化
把不同的程序内存隔离开,用算法分别调度cpu给程序使用
2.cpu工作效率:
希望目标 100%工作
cpu工作效率 50000条指令/ms
cpu工作 :做计算(对内存中的数据进行操作)的时候工作
cpu不工作: IO操作的时候(让操作系统调用硬件执行)
3.操作系统的历史
多道操作系统
一个程序IO操作的时候就把cpu让给别人
优点 : 整体上节省了时间 缺点:程序之间的切换浪费时间
分时操作系统 : 把时间分成时间片,每个程序轮流执行一个时间片,时间片的轮转
优点:提高了用户体验 缺点 :并没有提高cpu的效率
实时系统 :多用于飞机,导弹
实时信息处理系统 :多用于外汇实时变化
优点 : 及时响应,高可靠性
网络操作系统 :增加了一些网络处理模块
分布式操作系统 : 处理大批量数据,把大任务拆分成小任务
python中有celery框架处理分布式
4.进程: 进行中的程序就是进程,可以通过任务管理器查看当前进程
进程是计算机中最小的资源分配单位 ****** (记住这句话)
进程在启动之后,关闭之前,会获得唯一标识pid,随机分配的
5.线程: 必须存在在进程中,不能脱离进程存在,负责执行程序,可以多线程
线程是能被操作系统分配给cpu执行的最小单位 *******
6.并发 , 并行 ,同步,异步,阻塞,非阻塞的概念
并发: 假如只有一个cpu , 多个程序轮流在cpu上执行(多道操作系统)
宏观上(你看到的): 多个程序同时执行,(肉眼察觉不到程序的切换)
微观上: 多个程序在一个cpu上轮流执行,切换速度特别快
并行 :(多cpu,多核)多个程序在多个cpu上同时执行
同步 : 在做A事件的时候发起B事件,必须等待B事件结束之后才能继续A事件
eg: 主程序调用了一个函数,主程序要获取函数返回值才能继续执行,这时就必须等函数执行完
异步: 在做A事件的时候发起B事件,不需要等B事件结束,可以继续A事件
eg: 主进程 开启了多个子进程 ,不需要等子进程结束,主进程继续运行
阻塞 : cpu不工作 input accpt sleep recv recvfrom 等都会把cpu让出去,造成阻塞
非阻塞:cpu工作
7.进程 三状态图

8. 操作系统调度算法:多级反馈算法


浙公网安备 33010602011771号