前言

一.操作系统的介绍

操作系统是管理计算机硬件和软件资源的计算机程序,会对计算机管理硬件、驱动硬件;管理软件;资源分配与回收。操作系统也提供一个让用户与系统交互的操作页面。

二.计算机软件体系结构

我们想要了解操作系统到底是用来干嘛的就不得不说一下计算机的软件体系结构。
【Linux】一文简单了解操作系统在硬件中的作用,解析操作系统是做什么的?-LMLPHP

  • 应用程序包括我们下载的一些软件。
  • 驱动程序包括声卡驱动,和一些硬件的驱动入键盘,当我们为电脑连接一个新的键盘,电脑的反映时间大概是3-4秒这个过程就是驱动程序连接硬件的过程。

计算机系统软件体系结构采用一种层的结构,有这样一句名言:
计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决
如上图,这句话几乎概括了计算机系统软件体系结构的设计要点,整个体系结构从上到下都是按照严格的层次结构设计的。

接口

在层次体系中,接口是被精心设计过的,尽可能的保持稳定不变。
体系结构中除了硬件和应用程序,其他都是所谓的中间层,每个中间层都是对它下面的那层的包装和扩展。正是这些中间层的存在,使得应用程序和硬件之间保持相对的独立。

各层接口

体系结构中位于最上层的是应用程序和开发工具,它们属于同一层,因为它们使用同一个接口,那就是操作系统的应用程序编程接口(API)。应用程序接口的提供者是运行库,不同操作系统的运行库提供不同的API。

运行库使用操作系统提供的系统调用接口,系统调用接口在实现中往往以软件中断的方式提供,而不同的操作系统提供的中断号也不相同。

操作系统内核层对于硬件层来说是硬件接口的使用者,而硬件是接口的定义者,硬件的接口定义决定了操作系统内核,就是驱动程序如何操作硬件,如何与硬件通信。这种接口往往被叫做硬件规格,硬件规格由生产硬件厂商负责,操作系统和驱动程序开发者通过阅读文档来编写操作系统和驱动程序。

三.操作系统做什么

计算机硬件的能力是有序的,一个计算机的内存大小,CPU执行指令的速度都是一定的,那我们该如何合理的应用这些资源?
一个计算机的主要资源为CPU、存储器(内存和磁盘)、I/O设备,我们从合理利用资源这一角度更深层的探索操作系统的作用。

1.不要让CPU打盹

多道程序

优点:

  • 在当时的确大大提高了CPU的利用率。

缺点:

  • 程序之间的调度策略太粗糙。使用该方法,程序不分轻重缓急,如果有些程序对响应要求高,急需处理,那么很有可能很长时间才有机会分配到CPU。

分时系统

  • 这时的监控程序已经比多道程序要复杂了,完整的操作系统雏形已经渐渐形成。

在Windows 3.1中,程序调用Yield、GetMessage或PeekMessage这几个系统调用时,Windows 3.1操作系统会判断是否有其他程序正在等待CPU,如果有,则可能暂停执行当前的程序,把CPU让给其他程序。

如果一个程序在进行一个很耗时的计算,一直霸占着CPU不放,那么操作系统也没有什么办法,其他程序都只有等着,整个系统就和死机了一样。比如一个程序进入一个while(1)的死循环,那么整个系统都停止了。

多任务系统

  • 如果操作系统分配给每个进程的时间都很短,即CPU在多个进程间快速地切换,从而造成了很多进程都在同时运行的假象。

目前几乎所有现代操作系统都采用这种方式。

2.设备驱动

操作系统作为硬件层的上层,它是对硬件的管理和抽象。对于操作系统上面的运行库和应用程序来说,它们希望看到一个统一的硬件访问模式。作为应用程序的开发者,我们不希望再开发应用时直接读写硬件端口、处理硬件中断等这些繁琐的事情。

当成熟的操作系统出现以后,硬件逐渐被抽象成了一系列概念。在Windows系统中,图形硬件被抽象成了GDI,声音和多媒体设备被抽象成了DirectX对象;磁盘被抽象成了普通文件系统,等等。程序员逐渐从硬件细节中解放出来,可以更多地关注应用程序本身的开发。这些繁琐的硬件细节全都交给了操作系统,具体地讲是操作系统中的硬件驱动程序来完成。

因为PC(个人电脑)得硬件种类非常多,操作系统开发者不可能每个硬件开发一个驱动程序,这个工作通常由硬件生产厂商完成。操作系统开发者为硬件厂商提供一系列接口和框架,凡是按照这个接口和框架开发得驱动程序都可以在该操作系统上使用。

这里我们以一个读取文件为例,来看一下操作系统和驱动程序在整个过程中扮演什么样得角色。

12-13 11:25