二、Windows的处理器管理 Windows98虽然只支持单处理器结构的PC机,但它是一个抢占式多任务操作系统,它通过提供虚拟机(Virtual Machine,简称VM)、进程和线程等机制能很好地支持多道程序在PC机中的进行。
1 _! ^$ Y, p& l. e# C 1.386处理器与保护模式+ i6 p; `" V4 S* ~1 W) r9 F
386处理器有3种工作模式,即实地址模式(简称“实模式”)、保护虚地址模式(简称“保护模式”)和虚拟8086模式(简称“V86模式”)。这3种工作模式与存储器地址的计算有密切关系。
* |/ F8 ?, n2 B% o; }/ t Windows98操作系统充分利用386处理器的上述3种工作模式,来运行各种不同类型的应用程序。! i# C1 R G9 N
Windows98实际上是由两套操作系统合而为一的。第一个是实模式的DOS操作系统,它首先启动并导入后者;第二个就是保护模式操作系统(Windows本身),它使实模式DOS转入“睡眠状态”。" ]' a& `# q; b3 C, @
2.多任务处理与Windows虚拟机6 }+ g% }- J7 \- \8 E# ?
(1)多任务处理
) L9 n3 a. s: V* p* w5 ?5 P1 ^( E 简单地讲,任务(Task)是指装入内存并启动执行的一个程序,多任务处理(Multitasking)就是指多个任务在计算机中同时运行,每个任务都可以使用包括CPU在内的几乎全部软硬件资源。5 X+ S# {- W1 ^) k" y0 _
(2)Windows虚拟机
4 z! O" O% y: u+ F Windows98是怎样实现多任务处理的呢?它通过将计算机系统分成几个虚拟机来实现多任务。所谓虚拟机指的是由操作系统控制计算机系统的时间和内存,并把这些资源分开,把整个系统看成多台计算机而不是一台计算机,其中的每一台都被认为是虚拟机(VM)。各虚拟机之间根本不知道还有其他的虚拟机存在,每一个虚拟机都认为有自己的CPU、内存、视频卡、软盘、硬盘、键盘等。负责将一台PC机分成多个虚拟机的是虚拟机管理器(VMM32)。
6 q/ v$ y+ h. m4 G: | 3.进程、线程与处理器调度
( G1 H/ R! z3 Z* i H (1)进程
* U+ w9 H* P2 ?; Y: C% X Windows98是一个支持多任务处理的操作系统,任务指的就是程序,这是从用户角度来说的。从CPU和系统资源分配和调度的角度来说,任务也称为进程(Process)。: C# @" g7 g% c5 A9 R
(2)线程
+ w6 z3 v7 ~. w3 R 线程也称为“轻量级进程”(Lightweight Process),它表示进程中的一个控制点和一条执行途径,任何进程都可以创建多个并发执行的线程。由于同一进程内各线程都可访问整个进程的所有资源,因此它们之间的通信比进程的相互通信要方便,而同一进程内的线程间切换也会由于许多上下文的相同而得到简化。
& M* Q; k+ b4 i$ h$ v$ q (3)处理器调度1 t4 E/ q, {% }7 f0 V5 i
Windows98系统中的Win32应用程序是使用抢占式多任务机制来运行的,调度程序从一个应用程序中取得控制权,再将它交给另一个应用程序。调度程序负责系统内应用程序的时间分配,防止任何一个应用程序抢占所有系统资源而不允许其他任务执行。在抢占式多任务处理中,调度程序严格地控制着下一个要运行的是哪个进程以及运行的时间。在任何时间里,调度程序都能从当前进程中撤走CPU并把它交给另一个进程。$ n, L5 g3 ^% K2 \2 k( z% G
Windows98中包含了两种调度程序:主调度程序和时间片调度程序。它们共同协调,控制着多个进程(线程)的运行。
/ C% e3 H: r; g( Z2 r (4)消息队列
* f- b( E* m) h( n' _* M Windows使用事件驱动的编程方式,它根据接收到的系统组件发送的消息(message)来执行任务。每个消息都在系统中发生的一个动作(即事件)的基础上产生。消息可以由设备驱动程序发出(这表示发生了某个外部事件,如键盘或鼠标的操作),也可以由另外一个Windows应用程序或系统发出。 |