2024年4月10日发(作者:熊淑华)
一、操作系统特征
多道程序设计技术可以极大地提高计算机资源(CPU、I/O设备等)的利用率,但它也改变了程序的工作
环境,使程序由顺序执行变成并发执行,因此带来一些新的复杂问题,使得现代操作系统具有如下一些特
征:
并发性(Concurrence)
并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生,而并发性是
指两个或多个在同一时间间隔内发生。在多道程序环境下,并发性是指宏观上在一段时间内有多道程序在
同时执行。但在单处理机系统中,每一个时刻仅能执行一道程序,故微观上,这些程序是在交互执行。
2.共享性(Sharing)
共享是指系统中的所有资源(如CPU、内存、I/O设备及软件资源)不再为一个程序所独占,而是供同时
存在于系统中的多道程序所共同使用。根据资源属性不同,可有互斥共享和同时共享两种不同的共享方式。
并发和共享是操作系统的两个最基本的特性,它们又是互为存在条件。一方面资源共享是以程序(进程)
的并发性执行为条件的,若系统不允许程序并发执行,自然不存在资源共享问题。另一方面若系统不能对
资源共享实施有效管理,则也必将影响到程序并发执行。
虚拟性(Virtual)
虚拟是指通过某种技术把一个物理实体变成若是个逻辑上的对应物。物理实体是实际存在的,是实的;逻
辑物体是用户感觉到的,是虚拟的。例如在单CPU多道分时系统中,通过多道程序技术和分时技术可以把
一个物理CPU虚拟为多个逻辑上的CPU,使每个终端用户都认为有一台“独立”的CPU为它运行,用户感
觉的CPU是虚拟CPU。
异步性(Asynchronism)和不确定性(nondeterministic)
在多道程序环境下,允许多个程序并发执行,但由于资源等因素的限制,程序的执行并非“一气呵成”,
而是以“走走停停”的方式运行,即程序是以异步方式运行的。多个程序异步并发执行带来了二种不确定
性。一种是每个程序(进程)执行的速度和时间不确定,各程序(进程)之间推进的序列也不确定。即是
不可预测的。另一种是每个程序(进程)执行结果不确定,即对同一程序,给定相同的初始条件、在相同
的环境下进行多次执行,却可能获得完全不同的结果,这也称为程序并发执行的不可再现性。执行结果的
不确定性是绝对不允许的,这是操作系统为实现程序并发执行必须解决的问题,关于这一问题将在第二章
详细阐述。
二、操作系统功能
操作系统作为系统的资源管理者,并作为计算机和用户间的接口,它的主要功能有:
1.处理机(进程)管理
处理机管理的主要任务是对处理机进行分配,并对其运行进行有效的控制和管理。在多道程序环境下,处
理机的分配和运行以进程为基本单位,因而对处理机管理可归纳为对进程的管理。进程管理包括进程控制、
进程同步、进程通信和调度等,这些在第二章详细论述。
2.存储器的管理
存储器管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率,
以及能从逻辑上来扩充内存,为此存储管理应具有内存分配、内存保护、地址映射和内存扩充等功能,这
些在第三章详细论述。
3.I/O设备管理
设备管理体制的任务是登记各I/O设备状态,管理并完成用户提出的I/O请求,按一定的策略为用户分配
I/O设备。同时提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备,为此设备管理应
具有缓冲器管理、设备分配、设备处理及虚拟设备等功能,这些在第四章详细论述。
4.信息管理(文件系统管理)
计算机系统的软件信息都以文件形式进行管理,操作系统中负责此任务的部分是文件系统,文件系统的任
务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性,为此文件系统管理应具有
对文件存储空间的管理、目录管理、文件共享和保护等功能,这些在第五章详细论述。
5.用户接口
为了方便用户使用操作系统,操作系统向用户提供了“用户与操作系统的接口”,该接口分成二种:一种
是作业级接口,它提供一组键盘命令,供用户去组织和控制作业的运行。另一种是程序级接口,它提供一
组系统调用供其它程序调用。
三、用户接口
用户接口是计算机系统与用户之间进行交互作用和通信的通路。对绝大多数用户而言,一个计算机系统的
可接受性在很大程度上取决于这个用户接口。用户接口分为作业级接口和程序接口两类。
1.作业级接口
作业级接口是用于作业控制的,它是籍助于在用户和操作系统之间提供高级通信来控制一组程序的处理。
这个接口之又称命令接口,是因为用户可以通过键盘输入或在作业中发出一系列命令,告诉OS执行那些功
能。它分联机用户接口和脱机用户接口。
(1)联机用户接口。联机用户接口也叫交互式用户接口,它用于联机作业控制。它是由一组键盘操作命令
组成。交互式用户接口交互方式又分成二类,一类是字符方式,终端命令,提供面向流的通信,如MS-DOS。
另一类是图形方式,提供“对话框”、“图标”、“菜单”等图形用户接口(GUI)如Windows。
(2)脱机用户接口也称批处理用户接口,它用于脱机作业控制。脱机作业控制又分为作业控制卡和作业说
明书两种方式。
作业控制卡方式是指用户将其操作意图,用作业控制语言提供的有关作业控制命令穿孔在若干卡片上,以
控制作业的运行的一种形式。用户按照要求将作业控制卡插入到作业卡片叠的适当位置上。系统分批读入
这些卡片后开始运行,并按照这些控制卡的信息,指挥和控制作业的运行,这些作业控制卡是早期的一种
作业控制方式。
作业说明书也是用作业控制语言来表达用户对作业控制意识的,在形式上同用高级编程语言编制的程序相
似。相对于作业控制卡分散的缺点它具有集中、便于修改、灵活等优点。
作业控制语言 (JCL)是在IBM z990等大型主机配置的MVS、OS/390等操作系统上用于描述批处理作业处理
过程控制意图的一种特殊语言,作业控制语言是专有软件,对于不同的操作系统来说,它各不相同。
2.程序接口
程序接口是操作系统为正要运行的程序提供服务并与之通信的一个设施,它供所有的用户程序使用,也供
操作系统的其它组成部分,特别是命令处理程序使用。当一个程序正在执行时,程序接口接受对系统服务
及资源申请,并与操作系统的资源管理程序进行通信。这个程序接口主要由系统调用组成。
系统调用是用户在程序中调用操作系统所提供的一些子功能模块,它是一种特殊的过程调用,这种调用通
常是由特殊的机器指令实现的,在PDP机是陷阱指令trap,在x86机是软中断指令INT xx,它又称访管指
令(SVC)、访管调用。用户程序运行在用户态下,它通过软中断进入核心,调用系统过程(子模块),运行
在核心态,返回后仍在用户态下运行。用户程序系统调用从功能上分可包括进程管理、文件管理、信息维
护、设备I/O管理等几方面。
系统调用过程大体上分成以下三步:设置系统调用号和参数;系统调用命令的一般处理;系统调用命令处
理程序做具体处理。
1. 命令接口――图形用户接口(GUI)
Windows 2000使用图形化的命令接口,它是图形用户接口(GUI)。GUI的基本元素有:
(1)窗口:是指屏幕上的一块矩形区域,应用程序(包括文挡)可通过窗口向用户展示系统所能提供的各种
服务及其需要用户输入的信息,用户可通过窗口去查看和操纵应用程序和文挡。窗口由标题拦、垂直、水
平滚动条、控制按钮、最大化、最小化按钮、还原按钮、关闭按钮等组成。
(2)图标:它是代表一个应用程序或文件的一个小图象,它也是最小化窗口,通过对图标的操作可激活相应
的程序(选择它在前台运行)和启动应用程序。
(3)菜单:用户在窗口中对应用程序所能执行的各种操作是以菜单的形式提供的。菜单一般是由菜单名和若
干菜单项所组成。每一菜单项通常都对应于相关的命令或功能。用户可用鼠标或键盘在菜单中选择一菜单
项,来向系统提出相应的服务请求,当用户选择某菜单项时,有时便出现弹出菜单和下拉式菜单。
(4)对话框:它是在桌面上的带有标题条和控制菜单的一个临时窗口,又称为对话窗口。其主要用途是系统
可通过对话框提示用户输入与任务有关的信息,或向用户提供可能需要的信息。对话框由文本框、列表框、
命令按钮、单选按钮和复选按钮组成。
s 2000应用程序接口――Win32 API
Windows操作系统依靠一组用户态环境子系统,作为应用程序与操作系统核心之间的接口,环境子系统的
主要工作是为应用程序提供编程接口和执行环境。Windows 2000有三个环境子系统:Win32子系统、POSIX
子系统和OS/2子系统。Win32子系统是Windows 2000操作系统固有的子系统,这个子系统能够提供应用
程序运行所需要的窗口管理、图形设备接口、媒体控制、内存管理等各项服务功能,这些功能以函数库的
形式组织在一起,这就是Win32应用程序编程接口(API),简称为Win32 API。Win32子系统负责将API调
用转换成Windows操作系统的系统服务调用。
对于应用程序开发人员而言,他所看到的Windows操作系统实际上就是Win32 API,操作系统的其他部分
对他来说是完全透明的。Win32 API主要由Win32子系统的三个动态链接库实现::负责处理
用户接口,包括键盘和鼠标输入、窗口和菜单管理等;:负责在图形设备(包括显示器和打印机)
上执行绘图操作;:操作系统核心功能服务,包括进程与线程控制、内存管理、文件访问等。
除了上述模块以外,Windows 2000还提供了其他一些DLL以支持另外一些功能,包括:通用控件
()、公共对话框()、用户界面外壳()、图形引擎()以及
网络()。
标准Win32API函数可以分为以下几类:
(1)系统服务。系统服务函数为应用程序提供了访问计算机资源与底层操作系统特性的手段,包括内存管理、
文件系统、设备管理、进程和线程控制等。应用程序使用系统服务函数来管理和监视它所需要的资源。
(2)通用控件库。系统提供了一些通用控件,这些控件由通用控件库支持,属于操作系统的
一部分,所以它们对所有的应用程序都可用。使用通用控件有助于使应用程序的用户界面与其他应用程序
保持一致,同时直接使用通用控件也可以节省开发时间。 (3)图形设备接口。图形设备接口(GDI)提供
了一系列函数和相关的结构,可以绘制直线、曲线、闭合图形、文本以及位图图像等,应用程序可以使用
它们在显示器、打印机或其他设备上生成图形化的输出结果。
(4)网络服务。网络服务函数可以使网络上不同计算机的应用程序之间进行通信。使用网络函数可以创建和
管理网络连接,从而实现资源共享,例如共享网络打印机。
(5)用户接口。用户接口函数为应用程序提供了创建和管理用户界面的方法,可以使用这些函数创建和使用
窗口来显示输出、提示用户进行输入以及完成其他一些与用户进行交互所需的工作。大多数应用程序都至
少要创建一个窗口。
(6)系统Shell。Win32 API中包含一些接口和函数,应用程序可使用它们来增强系统Shell各方面的功
能。
(7)Windows系统信息。系统信息函数使应用程序能够确定计算机与桌面的有关信息,例如确定是否安装了
鼠标,显示屏幕的工作模式等。
Win32 API是一个基于C语言的接口,但是Win32 API中的函数可以被使用不同语言编写的程序调用,只
要在调用时遵循调用规范即可。不同Windows操作系统平台上的Win32 API存在一些差异,从很大程度上
讲,Windows 2000是所有Win32实现的超集。
有关Win32 API使用见“2.8.2 实验2:Windows 进程控制和同步的API函数的使用”,“3.7.2 实验2:
Windows 2000 内存管理API函数的使用”,4.8.3实验3:Windows 2000磁盘I/O API函数应用,5.7.3 实
验3:Windows 2000 文件操作的API函数应用。
2024年4月10日发(作者:熊淑华)
一、操作系统特征
多道程序设计技术可以极大地提高计算机资源(CPU、I/O设备等)的利用率,但它也改变了程序的工作
环境,使程序由顺序执行变成并发执行,因此带来一些新的复杂问题,使得现代操作系统具有如下一些特
征:
并发性(Concurrence)
并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生,而并发性是
指两个或多个在同一时间间隔内发生。在多道程序环境下,并发性是指宏观上在一段时间内有多道程序在
同时执行。但在单处理机系统中,每一个时刻仅能执行一道程序,故微观上,这些程序是在交互执行。
2.共享性(Sharing)
共享是指系统中的所有资源(如CPU、内存、I/O设备及软件资源)不再为一个程序所独占,而是供同时
存在于系统中的多道程序所共同使用。根据资源属性不同,可有互斥共享和同时共享两种不同的共享方式。
并发和共享是操作系统的两个最基本的特性,它们又是互为存在条件。一方面资源共享是以程序(进程)
的并发性执行为条件的,若系统不允许程序并发执行,自然不存在资源共享问题。另一方面若系统不能对
资源共享实施有效管理,则也必将影响到程序并发执行。
虚拟性(Virtual)
虚拟是指通过某种技术把一个物理实体变成若是个逻辑上的对应物。物理实体是实际存在的,是实的;逻
辑物体是用户感觉到的,是虚拟的。例如在单CPU多道分时系统中,通过多道程序技术和分时技术可以把
一个物理CPU虚拟为多个逻辑上的CPU,使每个终端用户都认为有一台“独立”的CPU为它运行,用户感
觉的CPU是虚拟CPU。
异步性(Asynchronism)和不确定性(nondeterministic)
在多道程序环境下,允许多个程序并发执行,但由于资源等因素的限制,程序的执行并非“一气呵成”,
而是以“走走停停”的方式运行,即程序是以异步方式运行的。多个程序异步并发执行带来了二种不确定
性。一种是每个程序(进程)执行的速度和时间不确定,各程序(进程)之间推进的序列也不确定。即是
不可预测的。另一种是每个程序(进程)执行结果不确定,即对同一程序,给定相同的初始条件、在相同
的环境下进行多次执行,却可能获得完全不同的结果,这也称为程序并发执行的不可再现性。执行结果的
不确定性是绝对不允许的,这是操作系统为实现程序并发执行必须解决的问题,关于这一问题将在第二章
详细阐述。
二、操作系统功能
操作系统作为系统的资源管理者,并作为计算机和用户间的接口,它的主要功能有:
1.处理机(进程)管理
处理机管理的主要任务是对处理机进行分配,并对其运行进行有效的控制和管理。在多道程序环境下,处
理机的分配和运行以进程为基本单位,因而对处理机管理可归纳为对进程的管理。进程管理包括进程控制、
进程同步、进程通信和调度等,这些在第二章详细论述。
2.存储器的管理
存储器管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率,
以及能从逻辑上来扩充内存,为此存储管理应具有内存分配、内存保护、地址映射和内存扩充等功能,这
些在第三章详细论述。
3.I/O设备管理
设备管理体制的任务是登记各I/O设备状态,管理并完成用户提出的I/O请求,按一定的策略为用户分配
I/O设备。同时提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备,为此设备管理应
具有缓冲器管理、设备分配、设备处理及虚拟设备等功能,这些在第四章详细论述。
4.信息管理(文件系统管理)
计算机系统的软件信息都以文件形式进行管理,操作系统中负责此任务的部分是文件系统,文件系统的任
务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性,为此文件系统管理应具有
对文件存储空间的管理、目录管理、文件共享和保护等功能,这些在第五章详细论述。
5.用户接口
为了方便用户使用操作系统,操作系统向用户提供了“用户与操作系统的接口”,该接口分成二种:一种
是作业级接口,它提供一组键盘命令,供用户去组织和控制作业的运行。另一种是程序级接口,它提供一
组系统调用供其它程序调用。
三、用户接口
用户接口是计算机系统与用户之间进行交互作用和通信的通路。对绝大多数用户而言,一个计算机系统的
可接受性在很大程度上取决于这个用户接口。用户接口分为作业级接口和程序接口两类。
1.作业级接口
作业级接口是用于作业控制的,它是籍助于在用户和操作系统之间提供高级通信来控制一组程序的处理。
这个接口之又称命令接口,是因为用户可以通过键盘输入或在作业中发出一系列命令,告诉OS执行那些功
能。它分联机用户接口和脱机用户接口。
(1)联机用户接口。联机用户接口也叫交互式用户接口,它用于联机作业控制。它是由一组键盘操作命令
组成。交互式用户接口交互方式又分成二类,一类是字符方式,终端命令,提供面向流的通信,如MS-DOS。
另一类是图形方式,提供“对话框”、“图标”、“菜单”等图形用户接口(GUI)如Windows。
(2)脱机用户接口也称批处理用户接口,它用于脱机作业控制。脱机作业控制又分为作业控制卡和作业说
明书两种方式。
作业控制卡方式是指用户将其操作意图,用作业控制语言提供的有关作业控制命令穿孔在若干卡片上,以
控制作业的运行的一种形式。用户按照要求将作业控制卡插入到作业卡片叠的适当位置上。系统分批读入
这些卡片后开始运行,并按照这些控制卡的信息,指挥和控制作业的运行,这些作业控制卡是早期的一种
作业控制方式。
作业说明书也是用作业控制语言来表达用户对作业控制意识的,在形式上同用高级编程语言编制的程序相
似。相对于作业控制卡分散的缺点它具有集中、便于修改、灵活等优点。
作业控制语言 (JCL)是在IBM z990等大型主机配置的MVS、OS/390等操作系统上用于描述批处理作业处理
过程控制意图的一种特殊语言,作业控制语言是专有软件,对于不同的操作系统来说,它各不相同。
2.程序接口
程序接口是操作系统为正要运行的程序提供服务并与之通信的一个设施,它供所有的用户程序使用,也供
操作系统的其它组成部分,特别是命令处理程序使用。当一个程序正在执行时,程序接口接受对系统服务
及资源申请,并与操作系统的资源管理程序进行通信。这个程序接口主要由系统调用组成。
系统调用是用户在程序中调用操作系统所提供的一些子功能模块,它是一种特殊的过程调用,这种调用通
常是由特殊的机器指令实现的,在PDP机是陷阱指令trap,在x86机是软中断指令INT xx,它又称访管指
令(SVC)、访管调用。用户程序运行在用户态下,它通过软中断进入核心,调用系统过程(子模块),运行
在核心态,返回后仍在用户态下运行。用户程序系统调用从功能上分可包括进程管理、文件管理、信息维
护、设备I/O管理等几方面。
系统调用过程大体上分成以下三步:设置系统调用号和参数;系统调用命令的一般处理;系统调用命令处
理程序做具体处理。
1. 命令接口――图形用户接口(GUI)
Windows 2000使用图形化的命令接口,它是图形用户接口(GUI)。GUI的基本元素有:
(1)窗口:是指屏幕上的一块矩形区域,应用程序(包括文挡)可通过窗口向用户展示系统所能提供的各种
服务及其需要用户输入的信息,用户可通过窗口去查看和操纵应用程序和文挡。窗口由标题拦、垂直、水
平滚动条、控制按钮、最大化、最小化按钮、还原按钮、关闭按钮等组成。
(2)图标:它是代表一个应用程序或文件的一个小图象,它也是最小化窗口,通过对图标的操作可激活相应
的程序(选择它在前台运行)和启动应用程序。
(3)菜单:用户在窗口中对应用程序所能执行的各种操作是以菜单的形式提供的。菜单一般是由菜单名和若
干菜单项所组成。每一菜单项通常都对应于相关的命令或功能。用户可用鼠标或键盘在菜单中选择一菜单
项,来向系统提出相应的服务请求,当用户选择某菜单项时,有时便出现弹出菜单和下拉式菜单。
(4)对话框:它是在桌面上的带有标题条和控制菜单的一个临时窗口,又称为对话窗口。其主要用途是系统
可通过对话框提示用户输入与任务有关的信息,或向用户提供可能需要的信息。对话框由文本框、列表框、
命令按钮、单选按钮和复选按钮组成。
s 2000应用程序接口――Win32 API
Windows操作系统依靠一组用户态环境子系统,作为应用程序与操作系统核心之间的接口,环境子系统的
主要工作是为应用程序提供编程接口和执行环境。Windows 2000有三个环境子系统:Win32子系统、POSIX
子系统和OS/2子系统。Win32子系统是Windows 2000操作系统固有的子系统,这个子系统能够提供应用
程序运行所需要的窗口管理、图形设备接口、媒体控制、内存管理等各项服务功能,这些功能以函数库的
形式组织在一起,这就是Win32应用程序编程接口(API),简称为Win32 API。Win32子系统负责将API调
用转换成Windows操作系统的系统服务调用。
对于应用程序开发人员而言,他所看到的Windows操作系统实际上就是Win32 API,操作系统的其他部分
对他来说是完全透明的。Win32 API主要由Win32子系统的三个动态链接库实现::负责处理
用户接口,包括键盘和鼠标输入、窗口和菜单管理等;:负责在图形设备(包括显示器和打印机)
上执行绘图操作;:操作系统核心功能服务,包括进程与线程控制、内存管理、文件访问等。
除了上述模块以外,Windows 2000还提供了其他一些DLL以支持另外一些功能,包括:通用控件
()、公共对话框()、用户界面外壳()、图形引擎()以及
网络()。
标准Win32API函数可以分为以下几类:
(1)系统服务。系统服务函数为应用程序提供了访问计算机资源与底层操作系统特性的手段,包括内存管理、
文件系统、设备管理、进程和线程控制等。应用程序使用系统服务函数来管理和监视它所需要的资源。
(2)通用控件库。系统提供了一些通用控件,这些控件由通用控件库支持,属于操作系统的
一部分,所以它们对所有的应用程序都可用。使用通用控件有助于使应用程序的用户界面与其他应用程序
保持一致,同时直接使用通用控件也可以节省开发时间。 (3)图形设备接口。图形设备接口(GDI)提供
了一系列函数和相关的结构,可以绘制直线、曲线、闭合图形、文本以及位图图像等,应用程序可以使用
它们在显示器、打印机或其他设备上生成图形化的输出结果。
(4)网络服务。网络服务函数可以使网络上不同计算机的应用程序之间进行通信。使用网络函数可以创建和
管理网络连接,从而实现资源共享,例如共享网络打印机。
(5)用户接口。用户接口函数为应用程序提供了创建和管理用户界面的方法,可以使用这些函数创建和使用
窗口来显示输出、提示用户进行输入以及完成其他一些与用户进行交互所需的工作。大多数应用程序都至
少要创建一个窗口。
(6)系统Shell。Win32 API中包含一些接口和函数,应用程序可使用它们来增强系统Shell各方面的功
能。
(7)Windows系统信息。系统信息函数使应用程序能够确定计算机与桌面的有关信息,例如确定是否安装了
鼠标,显示屏幕的工作模式等。
Win32 API是一个基于C语言的接口,但是Win32 API中的函数可以被使用不同语言编写的程序调用,只
要在调用时遵循调用规范即可。不同Windows操作系统平台上的Win32 API存在一些差异,从很大程度上
讲,Windows 2000是所有Win32实现的超集。
有关Win32 API使用见“2.8.2 实验2:Windows 进程控制和同步的API函数的使用”,“3.7.2 实验2:
Windows 2000 内存管理API函数的使用”,4.8.3实验3:Windows 2000磁盘I/O API函数应用,5.7.3 实
验3:Windows 2000 文件操作的API函数应用。