多任务操作系统 - 搜搜百科

来源:百度文库 编辑:神马文学网 时间:2024/05/01 01:42:27
多任务操作系统  multi-task operation system
  多任务操作系统,在它内部允许有多个任务同时运行。
  早期的UNIX操作系统的多任务是靠分时(Time Sharing)机制实现的,现在有些UNIX除了具有分时机制外,还加入了实时(Real Time)多任务能力,用于象实时控制、数据采集等实时性要求较高的场合。系统在执行多任务时,CPU在某一时刻只能执行一个任务,但UNIX操作系统将CPU时间分片,并把这些时间片分别安排给多个进程。因为CPU运行很快,在操作者看来,所有程序(进程)都在同时运行。
Windows多任务处理采用的是被称为虚拟机(Virtual Machine)的技术。所谓虚拟机实际上指的是由Windows在内存中创建的逻辑微机,由它来运行应用程序。当Windows接受到由鼠标器、键盘、定时器信号或某些I/O操作产生的"事件"后,为该任务分配CPU时间。每个任务 (应用程序)使用由Windows分配的短暂的时间片(Timeslice)轮流使用CPU,由于CPU对每个时间片的处理速度非常快,在用户看来好像这些任务在同时执行。   但是,在使用Windows 3.X时,可能有不少用户都有过这样的经历,即若遇到某一任务占有 CPU而不释放,用户就束手无策了,或者无可奈何地等待,或者重新启动机器,多任务被迫中止 ,那些正在进行的任务中的信息无法保留,造成工作损失。   在Windows 95中,这种情况得到了很大改善,这是因为虽然Windows 3.X和Windows 95都支持多任务,但它们所采用的处理方式是不一样的。   在Windows 3.X中,采用的是协同式多任务方式,运行的是16位应用程序,而这些16位的应用程序在Windows 3.X多任务环境下使用的是同一个虚拟机,在一个时间片结束的时候,系统要求这个任务要"主动"地把计算机控制权交还给Windows的调度程序。这种多任务工作方式对于符合"协同式运行"规则编写的程序,一般不会出现什么问题。但是如果运行的是某些设计得不好的程序,就可能出现某个应用程序不把控制权交还或者需要很长时间才能交还的情况,这时Windows 3.X的调度程序将会等待下去,用户可以看到沙漏一直出现在屏幕上,用户此时只能等待。最坏的情况就是造成死机。   Windows 95则不同,它是一个32位的操作系统,在多任务工作方式时,它是将每个32位应用程序及DOS应用程序分别放在各自的虚拟机中运行,内存中的每台虚拟机都相当于一台完整的微机,由虚拟机管理器(Virtual Machine Manager)负责分配给每个虚拟机一定的资源。当多个任务同时运行时,Windows能够根据需要把控制权收回并转给其它的应用程序而不管当前的应用程序是否释放CPU,这就是所谓的抢先式多任务工作方式。当Windows95要抢先正在执行的某个应用程序时,它首先挂起处理该程序的虚拟机,使它在后台运行,然后把系统控制权交给其它应用程序的虚拟机,使这个应用程序能够被优先处理。   使用抢先式多任务工作方式使得32位Windows应用程序和DOS应用程序能够平等地共享C PU资源,消除了Windows 3.X单个任务执行时独占系统资源的现象,提高了应用程序的执行效率和速度,也使用户有可能摆脱前文所提到的困境。在Windows 95运行时,用户可以根据鼠标指针的变化了解各个任务所处的状态。当鼠标指针在某个窗口变成沙漏指针时,用户不能对该窗口进行操作。但可以把鼠标指针移到该窗口以外,这时鼠标指针有可能变成箭头或箭头与沙漏的组合,表示用户此时可以进行抢先操作而不必像在Windows 3.X中那样处在无奈的等待中。当发现某个任务意外死锁或终止时,我们可以利用Windows 95的这种抢先式多任务的特性,先将其它任务正常结束,再想办法处理出了问题的程序,以减少工作损失。在Windows 95中,对出现意外错误的程序,可以使用Ctrl+Alt+Del组合键调出"关闭程序窗口,选中该程序后再用"结束任务"操作将它关闭。但要小心,不可轻易再次击Ctrl+Alt+D el组合键,以避免重新启动机器造成信息丢失。