并发编程

第一代:真空管与穿孔卡片(无操作系统)
过程:万能程序员们将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。

#优点:程序员在申请的时间段内独享整个资源,即时的调试自己的程序,如果有bug可以当场处理.
#缺点:这对于计算机提供商来说是一种浪费(你买一台电脑4000块,那 一年中你用365比只用1天,肯定是省成本的,物尽其用)


# 第二代:晶体管和批处理系统
#由于当时的计算机非常昂贵,自认很自然的想办法较少机时的浪费。通常采用的方法就是批处理系统。
#例如有A,B,C三个程序员都需要调试,但是第一代计算机的话之内能一个一个人调试,而第二代可以把这三个程序员的程序
# 都结合在在一起进行调试
#问题1:整个流程需要人参与控制,将磁带搬来搬去(中间俩小人)
#问题2:程序员原来独享一段时间的计算机,现在必须被统一规划到一批作业中,等待结果和重新调试的过程都需要等同批次的
# 其他程序都运作完才可以,浪费时间。
#问题3:计算的过程仍然是顺序计算-》串行

# 第三代:分时操作系统:多个联机终端+多道技术
#多道技术:多道技术中的多道指的是多个程序,多道技术的实现是为了解决多个程序竞争或者说共享同一个资源(比如cpu)
# 的有序调度问题,解决方式即多路复用,多路复用分为时间上的复用和空间上的复用。
#空间上的复用:将内存分为几部分,每个部分放入一个程序,这样,同一时间内存中就有了多道程序。
#时间上的复用:当一个程序在等待I/O时,另一个程序可以使用cpu,如果内存中可以同时存放足够多的作业,则cpu的利用率可以接近100%。

#解决问题1:SPOOLING技术,卡片被拿到机房后能够很快的将作业从卡片读入磁盘,于是任何时刻当一个作业结束时,操作系统
# 就能将一个作业从磁带读出,装进空出啦的内存区域运行,这种技术叫做同时的外部设备联机操作。
#解决问题3:多道技术

posted @ 2018-12-17 00:12  rayh  阅读(54)  评论(0)    收藏  举报