理论基础
操作系统
操作系统的定义
操作系统是存在于硬件与软件之间,管理,协调,控制软件与硬件的交互.
操作系统的作用:
1:将一些丑陋复杂的硬件操作封装成美丽的接口,便于使用.
2: 多个进程抢占一个资源时,合理的调度分配多个进程与cpu的关系,让其有序化,
操作系统的发展史
操作系统(计算机)的发展史(多道技术)
第一代电子计算机(1940~1955)
二战时期,推出的电子计算机 手工操作.预定.类似于插线板的程序,计入机房,一个人独资享有计算机2个小时,各种硬件的操作插线与你的程序结合.
特点: 没有操作系统的概念,所有的硬件连接都是自己完成.
优点: 一个人独享.
缺点:一个人享用浪费资源.
所有的程序都是串行处理.
第二代计算机:磁带存储,批处理系统.(1955~1965)
优点: 节省了程序员连接个硬件的操作的时间.
缺点:不能独享计算机,不能在程序运行时修复bug.
cpu还是串行处理.
第三代计算机,集成电路,多道程序系统.
第三代计算机解决一个问题: 人工中途参与磁盘传递工作,以及输入输出设备不同机的问题.
第三代计算机解决第二个问题: 多道技术.
多道技术
多道技术要求物理层面实现进程之间内存的隔
多道技术解决了什么:
时间上的复用 将串行变为并发
空间上的复用.一个内存允许加载多个进程.
阻塞; IO阻塞,recv, accept, read input,write, sleep等等,都是阻塞.
如果三个进程全部都没有IO阻塞,多道技术就会影响最终的效率.
串行 并发 并行 阻塞 非阻塞
串行: 所有的进程由cpu一个一个的解决.
并发:单个cpu,同时执行多个进程(来回切换的),看起来像是同时运行.
并行:多个cpu,真正的同时运行多个进程.
阻塞:遇到IO才叫阻塞.
非阻塞: 没有IO.
进程3个状态 运行 就绪 阻塞
创建进程过程
进程的创建.
想开启多个进程,必须是一个主进程,开启多个子进程.
unix: fork创建子进程.
windows:操作系统调用CreateProcess处理进程的创建.
linux, windows: 由主进程开启子进程:
相同点: 原则:主进程开启子进程两个进程都有相互隔离的独立的空间,互不影响.
不同点:
linux: 子进程空间的初始数据完全是从主(父)进程copy一份.
windows: 子进程空间的初始数据完全是从主(父)进程copy一份,但是有所不同.
非学,无以致疑;非问,无以广识