一、为什么要有操作系统?
程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的。
二、操作系统的位置?
操作系统位于计算机硬件与应用软件之间,本质也是一个软件。操作系统由操作系统的内核(运行于内核态,管理硬件资源)
以及系统调用(运行于用户态,为应用程序员写的应用程序提供系统调用接口)两部分组成,所以,单纯的说操作系统是运行于内核态的,是不准确的。
三、操作系统的功能?
操作系统主要时承上启下的作用,控制硬件的同时提供简单的接口和软件对接。
四、操作系统的发展?
第一代计算机(1940~1955):真空管和穿孔卡片
工作过程:程序员在墙上的机时表预约一段时间,然后程序员拿着他的插件版到机房里,
将自己的插件板街道计算机里,这几个小时内他独享整个计算机资源,后面的一批人都得等着(两万多个真空管经常会有被烧坏的情况出现)。
后来出现了穿孔卡片,可以将程序写在卡片上,然后读入机而不用插件板
特点:没有操作系统的概念,所有的程序设计都是直接操控硬件
优点:程序员在申请的时间段内独享整个资源,可以即时地调试自己的程序(有bug可以立刻处理)
缺点:浪费计算机资源,一个时间段内只有一个人用。
第二代计算机(1955~1965):晶体管和批处理系统
工作过程:有了操作系统的概念,有了程序设计语言:FORTRAN语言或汇编语言,写到纸上,然后穿孔打成卡片,
再将卡片盒带到输入室,交给操作员,然后喝着咖啡等待输出接口
特点:设计人员、生产人员、操作人员、程序人员和维护人员直接有了明确的分工,计算机被锁在专用空调房间中,由专业操作人员运行,这便是‘大型机’。
优点:批处理,节省了机时。
缺点:1.整个流程需要人参与控制,将磁带搬来搬去(中间俩小人)
2.计算的过程仍然是顺序计算-》串行
3.程序员原来独享一段时间的计算机,现在必须被统一规划到一批作业中,等待结果和重新调试的过程都需要等同批次的其他程序都运作完才可以
(这极大的影响了程序的开发效率,无法及时调试程序)
第三代计算机(1965~1980):集成电路芯片和多道程序设计
特点:第三代计算机的操作系统广泛应用了第二代计算机的操作系统没有的关键技术:多道技术(如下详解)
cpu在执行一个任务的过程中,若需要操作硬盘,则发送操作硬盘的指令,指令一旦发出,硬盘上的机械手臂滑动读取数据到内存中,这一段时间,cpu需要等待,
时间可能很短,但对于cpu来说已经很长很长,长到可以让cpu做很多其他的任务,如果我们让cpu在这段时间内切换到去做其他的任务,这样cpu不就充分利用了吗。
这正是多道技术产生的技术背景
优点:解决了第二代以下两个问题:
1:卡片被拿到机房后能够很快的将作业从卡片读入磁盘,于是任何时刻当一个作业结束时,操作系统就能将一个作业从磁带读出,
装进空出来的内存区域运行,这种技术叫做同时的外部设备联机操作:SPOOLING,该技术同时用于输出。当采用了这种技术后,
就不在需要IBM1401机了,也不必将磁带搬来搬去了(中间俩小人不再需要)。
2:第三代计算机的操作系统广泛应用了第二代计算机的操作系统没有的关键技术:多道技术。
空间上的复用:将内存分为几部分,每个部分放入一个程序,这样,同一时间内存中就有了多道程序。
时间上的复用:当一个程序在等待I/O时,另一个程序可以使用cpu,如果内存中可以同时存放足够多的作业,
则cpu的利用率可以接近100%,类似于我们小学数学所学的统筹方法。
第四代计算机(1980~至今):个人计算机
略。
五、何为多道技术?
内存能同时存进多个程序,cpu能在多个程序来回切换。
让用户感觉到诸多软件同时运行,其实只是CPU在各任务间高速切换造成的假象。
六、操作系统的两大作用
1、为应用程序提供如何使用硬件资源的抽象;
2、把多个应用程序的竞争有序化(管理应用程序)。