计算机发展史
最早出现的计算机:算盘
电子类计算机发展史:
第一代计算机1940~1955
在大学里出现了机房,想使用计算机必须预约。先连接调配各个硬件,真空管,再插上程序调试,效率极低。
优点:个人独享整个计算机资源
缺点:1.硬件调试插线耗时效率低 2.所有人都是串行执行
第二代计算机:磁带储存——批处理系统
优点:1.程序员不用亲自对硬件进行插线操控,效率提高。2.可以进行批量处理代码。
缺点:1.程序员不能独享计算机 2.所有程序还是串行
第三代计算机:集成电路,多道程序系统
大背景:
1.集成电路:把所有的硬件变小,出现线路板。
2.将两条不同的生产线(科学计算与商务办公)合并成一条。
技术上的更新:
1.空间的复用:
将内存分区域,一个内存可以同时加载多个进程。
2.时间上的复用
实现将cpu在多个进程之间的来回切换,并且保留状态。
几乎所有的程序都有IO阻塞。例如同时加载到内存3个任务,即三个进程,每个进程都有阻塞的情况。只要cpu运行一个进程时遇到阻塞立马会切换,长时间占用cpu也会切换。这样做可以提升效率,最大限度使用cpu
另外,如果是一个IO密集型进程,来回切换可以提升效率。如果是一个计算密集型进程,来回切换会降低效率。(切换也消耗时间)
第三代计算机广泛采用了必须的保护硬件,(程序之间的内存彼此隔离)第三代计算机特点:
1.多个人占用计算机时间有限2.多人(少于10人)共同使用一个计算机。
第四代计算机:至今
进程的理论
串行:所有的人物一个一个完成
并发:一个cpu完成多个任务,看起来像是同时完成。
并行:多个cpu执行多个任务,真正的同时完成。
阻塞:cpu遇到IO就是阻塞。
非阻塞:没有IO,就叫非阻塞。
1.程序:一堆静态的文件
2.进程:一个正在执行的程序任务
3.一个程序能开启多个进程
4.进程的创建:
每一个进程都是由某一个主进程开启的。
unix:fork创建
windows操作系统调用CreateProcess处理进程的创建。
注意:
windows创建一个子进程,会copy主进程所有的资源,但是会改变一些资源。
unix(linux,mac)创建一个子进程会完全复制一个主进程所有的资源,初始资源不变。
5.进程的状态
运行到阻塞:进程为等待输入而阻塞
运行到就绪:调度程序选择下一个进程
就绪到运行:调度程序选择当前进程
阻塞到就绪:出现有效输入
操作系统
1.管理、控制、协调计算机中硬件与硬件的关系。
2.操作系统的作用:
①.将一些对硬件操作的复杂且丑陋的接口编程简单美丽的接口。
②.多个进程抢占一个(cpu)资源时,操作系统会将你的执行程序变得合理有序。
阻塞:input read write sleep recv accept sendto recvfrom…