您的位置:首页 > 其它

程序是怎样跑起来的-第09章 操作系统和应用的关系

2016-05-26 18:13 190 查看
第09章
操作系统和应用的关系

热身问题

1:监控程序的主要功能是什么?

程序的加载和运行。监控程序也可以说是操作系统的原型。

2:在操作系统上运行的程序称为什么?

应用或应用程序。

3:调用操作系统功能称为什么?

系统调用(system call)。应用通过系统调用(system call)间接控制硬件。

4:GUI是什么的缩写?

Graphical User Interface(图形用户界面)。显示器中显示的窗口及图标等通过鼠标点击可以直接操作的用户界面。

5:WYSIWYG是什么的缩写?

What You See Is What Your Get(所见即所得),WYSIWYG是指可以直接将显示器中显示的内容在打印机上打印出来。这是Windows的特征之一。

9.1 操作系统功能的历史

在计算机尚不存在操作系统的年代,完全没有任何程序,因此程序猿需要用机器语言编写程序,处理所有相关的事物,然后再使用开关将程序输入,这一过程非常麻烦。有人开发了具有加载和运行程序功能的监控程序。

通过事先启动监控程序,程序猿可以根据需要将各种程序加载到内存中运行。

随着时代的发展,人们发现很多程序有很多共同的部分,人们把这些程序追加到监控程序中。初期的操作系统就这样诞生了。操作系统本身不是单独的程序,而是多个程序的集合体。

在操作系统这个运行环境下,应用并不是直接控制硬件,而是通过操作系统来间接控制硬件。

9.3 系统调用和高级编程语言的移植性

操作系统的硬件控制功能,通常是通过一些小的函数集合体的形式来提供的。这些函数以及调用函数的行为称为系统调用(system call),也就是应用对操作系统(system)的功能进行调用(call)的意思。

C语言等高级编程语言并不依存于特定的操作系统。这是因为人们希望不管是Windows还是Linux,都能使几乎相同的源代码。因此,高级编程语言的机制就是,使用同样的函数名,然后再在编译时将其转换成相应操作系统的系统调用。也就是说,用高级编程语言编写的应用在编译后,就转换成了利用系统调用的本地代码。

9.4操作系统和高级编程语言能够使硬件抽象化。

如:文件是操作系统对磁盘媒介空间的抽象化。如果直接对硬件进行操作的话,那就变成了通过向磁盘用的I/O指定扇区位置来对数据进行读写了。

9.5 Windows操作系统的特征

(1)32/64位操作系统。

对于16位操作系统,操作一个32位的数据,需要处理两次16位的数据。而32位操作系统的话,只需要1次就可以完成32位的数据处理。

(2)通过API(Application Programming Interface)函数集来提供系统调用。

(3)提供采用了GUI的用户界面。

需要注意的是GUI中用户按照怎样的顺序操作是无法确定的。程序员必须制作出在任何操作顺序下都能正常运行的应用。

(5)提供多任务功能。

多任务指的是同时运行多个程序的功能。WIndows是通过时钟分割技术来实现多任务功能的。

时钟分割指的是在短时间间隔内,多个程序切换运行的方式。在用户看来,就是多个程序在同时运行。

也就是说,WIndows会自动切换多个程序的运行。

此外,Windows中还具有一程序中的函数为单位来进行时钟分割的多线程功能。

(6)提供网络功能及数据库功能

网络功能和数据库功能虽然不是操作系统本身不可缺少的功能,
但是他们和操作系统很接近,所以被通称为中间件而不是应用。操作系统和中间件合在一起,也称为系统软件。应用不仅仅可以利用操作系统,也可以利用中间件的功能。

(7)通过即插即用实现设备驱动的自动设定。

即插即用(Plug-and-Play)指的是新的设备连接(Plug)后立即就可以使用(Play)的机制。新的设备连接到计算机后,系统会自动安装和设定用来控制该设备的设备驱动程序。

设备驱动是操作系统的一部分,提供了同硬件进行基本的输入输出的功能。键盘,鼠标、显示器、磁盘等装置,这些计算机中必备的硬件的设备驱动,一般都是随操作系统一起安装的。如果之后再追加新的硬件的话就需要向操作系统追加该硬件专用的设备驱动。

有时DLL文件也会同驱动文件一起安装。这些DLL文件中存储着用来利用该追加硬件的API(函数集)。通过API,可以制作出运用该新硬件的应用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: