操作系统OS—大型计算机系统Mainframe system

文章目录

  • 一.大型计算机系统(Mainframe system)
    • 1.Batch System(批处理任务)
    • 2.Multi-programming(多道程序)
    • 3.Time-sharing(Multi-tasking)

一.大型计算机系统(Mainframe system)

大型计算机,顾名思义就是最早期体积很大的计算机。现在的大型计算机用来指专门做某件事的主机,比如IBM的主机,银行的主机,医院的主机等等。

主机计算机一词是用来区分机构为多个用户服务的超大型计算机和个人使用的个人计算机。大型机计算机能够非常快地处理和处理大量的数据–比一个人在自己的计算机上处理的数据要多得多。

现在的Mainframe system用于某种特殊的应用,拥有更好的可靠性(reliability)和安全性(security)。
大型主机发展历程:Batch -> Multi-programming -> Time-shared

1.Batch System(批处理任务)

批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行。这种采用批量处理作业技术的操作系统称为批处理操作系统。

操作系统OS—大型计算机系统Mainframe system_第1张图片
从上图中可以看出,一个作业单独进入内存并独占系统资源,直到运行结束后下一个作业才能进入内存,当作业进行I/O操作时,CPU只能处于等待状态,(因为只能做一件事)。
因此,CPU利用率较低,尤其是对于I/O操作时间较长的作业。

Mainframe System缺点:

  1. 每次只能执行一个作业
  2. 用户与程序之间没有任何交互
  3. CPU空闲时间太长
    *(因为I/O读写速度远远慢于CPU处理速度)

这些问题的出现,主要是OS在里面没有做任何事情,比如让CPU在IO读写的时候去做另外的事情等调度动作,如果OS可以调度,那就不会造成CPU浪费。
因此出现了接下来的Multi-programming。

2.Multi-programming(多道程序)

如何让CPU不断做事情呢(提高CPU利用率)?
当然,把多个program放入系统中,当一个program在做IO,其他的program可以用CPU,合理分配使用的时间,就可以极大的减少CPU浪费情况。
这个思想虽然简单可行,但是操作起来却没有这么简单,接下来讲述了要完成什么事情才可以达到上文所述的这种理想情况:

  1. Spooling(Simultaneous Peripheral Operation On-Line)
    在一个完整的IO操作中,CPU要时刻监督IO的操作才能完成一个完整的IO操作,但是IO每次打扰CPU的工作,CPU还是相当于处于浪费。
    spooling解决了这一问题,CPU只需要当IO操作完成后被打扰一次,相当于IO可以自己工作。
  2. Job Scheduling
    job scheduling是将存储在disk中的Jobs合理的分配到Memory中,让CPU执行。
    即,它来决定到底将哪个job放到Memory中准备让CPU执行。
    操作系统OS—大型计算机系统Mainframe system_第2张图片
  3. Memory Management
    Memory Management是指,当Jobs加载到Memory中,哪个Jobs需要更多的空间,哪个Jobs需要更少的空间,都需要动态的分配
  4. CPU Scheduling
    CPU Scheduling是指当很多的Jobs加载到Memory中之后,到底将那个Jobs分配给CPU执行,在多个CPU的情况下,如何合理的分配给合适的CPU执行
    操作系统OS—大型计算机系统Mainframe system_第3张图片

3.Time-sharing(Multi-tasking)

在上文中Multi-programming中,一个程序从disk加载到Memory,在Memory中被CPU执行,这一系列过程都没有与用户互动。就比如现在的手机,人们需要在屏幕上进行操作,手机接收到用户的互动之后进行回应。但是Multi-program不能做到这样,只是从头到尾执行program。并且Multi-programming是让一个程序在CPU中运行完之后再让另外一个程序执行,其实还是只有一个program在执行,在Time-Sharing的概念里,CPU划分n个小到几毫秒的时间区域,让已经加载到Memory中的program同时进行,并且可以实现当用户与计算机互动时进行反应(计算机可以很快的回应),Time-Sharing解决了interactive问题,这样也就看似多个程序同时进行。所以现在的计算机基本都是Time-sharing。

要实现Time-Sharing还要解决以下问题:

  1. Virtual Memory
    既然可以让多个program加载到Memory,但是Memory空间有限怎么办。
    virtual Memory是指拿出disk一部分空间给Memory,即虚拟内存。
  2. File System 和 disk management
    帮助用户管理文件和disk内存
  3. Process synchronication
    既然可以多个程序同时进行,那么万一执行顺序出错怎么办
    process synchronication解决了这一问题

你可能感兴趣的:(操作系统OS)