最新免费视频:www.pythonav.com (冒着被砍死的风险)

操作系统

操作系统是一个控制、协调以及管理计算机硬件资源以及软件资源的一个控制程序。

 

为何要有操作系统?

程序员无法掌握所有操作各种硬件的细节,管理这些硬件并且加以优化是非常繁琐的工作,操作系统就是为了解决这些问题,使程序员可以专心快速的编写应用软件,应用软件可以直接通过操作系统来间接使用硬件。

 

操作系统的位置

操作系统的位置介于计算机硬件和应用程序之间,本质也是一个软件。操作系统由操作系统的内核(运行于内核态,管理硬件资源)和系统调用(运行于用户态,为程序员写的应用程序提供系统调用接口)。

 

操作系统的功能

1:为应用程序提供如何使用硬件资源的抽象

2:把各个程序对硬件资源的竞争有序化

 

操作系统的发展

第一代:1940~1955   真空管和穿孔卡片

特点:1:没有操作系统概念

2:所有程序设计直接操作硬件

优点:程序员是时间段内独享计算机资源,随时调试程序。

缺点:浪费计算机资源,一个时间段内只能一个人用。

 

注意:同一时刻只有一个程序在内存中,被cpu调用执行,比方说10个程序的执行,是串行的

第二代:1955~1965   晶体管和批处理系统

第二代计算机的产生背景:

由于当时的计算机非常昂贵,自认很自然的想办法较少机时的浪费。通常采用的方法就是批处理系统。

特点:
设计人员、生产人员、操作人员、程序人员和维护人员直接有了明确的分工,计算机被锁在专用空调房间中,由专业操作人员运行,这便是‘大型机’。

有了操作系统的概念

有了程序设计语言:FORTRAN语言或汇编语言,写到纸上,然后穿孔打成卡片,再讲卡片盒带到输入室,交给操作员,然后喝着咖啡等待输出接口

工作过程:如下图

第二代如何解决第一代的问题/缺点:
1.把一堆人的输入攒成一大波输入,
2.然后顺序计算(这是有问题的,但是第二代计算也没有解决)
3.把一堆人的输出攒成一大波输出

 

现代操作系统的前身:(见图)

 

优点:批处理,节省了机时
缺点:
1.整个流程需要人参与控制,将磁带搬来搬去(中间俩小人)

2.计算的过程仍然是顺序计算-》串行

3.程序员原来独享一段时间的计算机,现在必须被统一规划到一批作业中,等待结果和重新调试的过程都需要等同批次的其他程序都运作完才可以(这极大的影响了程序的开发效率,无法及时调试程序)

 

第三代:1965~1980   集成电路芯片和多道程序设计

360是第一个采用了(小规模)芯片(集成电路)的主流机型,与采用晶体管的第二代计算机相比,性价比有了很大的提高。这些计算机的后代仍在大型的计算机中心里使用,此乃现在服务器的前身,这些服务器每秒处理不小于千次的请求。

如何解决第二代计算机的问题1:
卡片被拿到机房后能够很快的将作业从卡片读入磁盘,于是任何时刻当一个作业结束时,操作系统就能将一个作业从磁带读出,装进空出来的内存区域运行,这种技术叫做
同时的外部设备联机操作:SPOOLING,该技术同时用于输出。当采用了这种技术后,就不在需要IBM1401机了,也不必将磁带搬来搬去了(中间俩小人不再需要)

如何解决第二代计算机的问题2:

第三代计算机的操作系统广泛应用了第二代计算机的操作系统没有的关键技术:多道技术

cpu在执行一个任务的过程中,若需要操作硬盘,则发送操作硬盘的指令,指令一旦发出,硬盘上的机械手臂滑动读取数据到内存中,这一段时间,cpu需要等待,时间可能很短,但对于cpu来说已经很长很长,长到可以让cpu做很多其他的任务,如果我们让cpu在这段时间内切换到去做其他的任务,这样cpu不就充分利用了吗。这正是多道技术产生的技术背景

 

多道技术

1:空间复用:内存中进入多个程序  PS:内存实现物理上的隔离。

2:时间复用:CPU要切换

这两个方式合起来便是多道技术。

什么时候切换?

1:一个程序运行时间过长(占用CPU时间过长)

2:遇到IO堵塞

 

posted @ 2017-07-12 19:29  uuuuuuu  阅读(122)  评论(0编辑  收藏  举报

最新免费视频:www.pythonav.com (冒着被砍死的风险)