为什么要有操作系统?
操作系统就像一个万能的软件包,为程序员提供了一个只需要了解应用软件的运作状态,不需要去考虑应用软件去调用硬件的工作细节的接口。了解计算机所有硬件的控制,程序员来说及其耗费时间且影响编程效率,所以就有了操作的系统的存在,操作系统代替程序员去完成了对计算机硬件的控制,
操作系统的作用?
操作系统就像一个人的大脑,控制着计算机的硬件资源和软件资源,协调各个部分的正常工作,是计算机能正常高效有序的运行。
操作系统在计算机及应用之间的关系位置
操作系统的本质也是应用软件,只不过操作系统工作在CPU的内核(运行与内核态可以调用硬件资源)及可以完全的系统调用权限(运行与用户态,为程序员编写的应用提供清晰的调用接口)。
其实操作系统就是两部分功能:
一种是隐藏计算机上复杂的硬件接口,为用户提供清晰的方便调用的接口。程序员根本就不要再去考虑硬件的工作细节, 可以
高效的去完成应用软件的编写。
一种是为用户提供一个可控的,有序的软硬件资源。维护计算机软硬件的稳定高效运行。
补充内容(操作系统与应用软件的的区别在于,操作系统是一个大量代码的,长寿的软件。操作系统的编写困难,周期长。
操作系统有硬件保护,用户无法对其进行修改。应用软件可以被程序编写修改。)
操作系统的发展历史
第一代计算机:真空管和穿孔卡片
在此阶段的计算机没有操作系统的概念,所有的编程皆用机器语言直接编写
第一代计算机的工作过程:程序员在上机时间表上预约时间,然后在预约时间内拿着插件版进入机房插接到计算机上开始调试,在此时间
内程序员独享整套系统,可以实时监控程序的运行状态,方便修改。
优点:程序员可以独享整套系统,在此时间内可以实时监控程序的运行,对其进行修改调试。
缺点:对计算机提供商来说会造成资源浪费,计算机在运行完一条程序后没有占用完时间,而省下的时间又没人使用,对计算机来说,就造成了硬件资源的浪费。
第二代计算机:晶体管和批处理系统
第三代计算机:集成电路芯片和多道程序设计
IBM360计算机的出现,成为了现在服务器的雏形。
多道复用技术——多道技术的多道指多个程序,多道技术的实现是为了解决多个程序竞争或者说共享一个资源的有序调度问题,解决方式即多路服用,多路复用分为时间上的复用和空间上的复用。
空间复用是将内存分块,每块放入一个程序,这样,同一时间内,内存中就有了多道程序。
时间复用:当一个程序在调用I/O时,另一个可以使用CPU,内存中可以存放足够多的作业,则CPU的利用率可以达到100%
空间复用技术最大的问题是:程序运行的内存必须分割,且这种分割是在硬件层面实现,由操作系统控制实现。如果不加以分割,程序在一块运行,程序可以互相访问对方的内存数据,这样会造成极大的安全性问题,甚至软件可以获得操作系统的权限,对计算机修改。也会影响到操作系统的稳定性,当程序崩溃时,操作系统对内存进行回收,在不分割的状态下,很有可能把正在运行的程序内存收回,造成软件的崩溃。
分时操作系统的出现
分时操作的系统的出现是建立的计算机采用了硬件保护的之后。
unix操作系统的前身是multics,是由科学家Ken Thomspson编写。之后衍生多个版本的UNIX。当时为了UNIX能在多种设备中运行,IEEE提出了一个标准,即posix(可移植的操作系统接口)
后来出现了unix的小型克隆,minix,用于教学。后有荷兰一学生,linus Trovalds重现编写,成就了现在了LINUX
多路复用技术
首先我们知道操作系统会记录哪个程序使用哪个硬件,对资源请求进行分配,为不同的程序用户调节冲突。
多路复用的两种方式:
时间复用:当一个程序在时间上进行复用时,不同的程序用户轮流使用它,第一个获取资源使用完成后,轮到第二各使用。
空间复用:每个用户都能获得资源中的一小部分,从而减少排队的等待时间。
这两种技术的结合使用就是多路复用技术。