操作系统基础知识

时间:2022-02-18 20:04:38

Q:程序、作业与进程的区别和联系?

A:先弄明白基础概念。

   定义:

   程序程序只是一段可执行代码。程序是静态的,只需要内存空间。程序的一次运行过程就叫做进程。

   进程:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位

     通常的程序是不能并发执行的。为使程序(含数据)能独立运行,应为之配置一进程控制块,即PCB(Process Control Block);而由程序段相关的数据段PCB三部分便构成了进程实体。在许多情况下所说的进程,实际上指进程实体,所谓创建进程,实质上是创建进程实体中的PCB。

(补充:线程,即把一个进程分割成多个线程。在内存中既有一个代表进程的控制块,也有多个代表线程的控制块,当然,这些线程控制块是归属于进程控制块的。操作系统在进行资源分配时,对于存储空间资源,系统仍然以进程为单位来进行分配,而对于处理器资源则以线程为单位来进行分配。)

 作业:从用户角度:在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。从系统的角度看,作业由程序、数据和作业说明书组成。系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。而且,在批处理系统中,作业是抢占内存的基本单位。也就是说,批处理系统以作业为单位把程序和数据调入内存以便执行。一个作业可由多个进程组成,且必须至少由一个进程组成。(作业的概念基本只用于批处理,而进程可以用于几乎所有的多道系统)

 联系:一个作业由程序、数据和作业说明书构成,一个作业可以包含多个进程。一个进程由程序、数据和PCB组成。

一个作业的完成需要四个部分:作业提交、收容、执行、完成。进程是对已提交的程序执行过程的描述。


Q:什么是多道批处理系统?

A:在内存中同时存放多个作业,使之同时处于运行状态,这些作业共享CPU和外部设备等资源。

看一个例题理解一下:

假定我们有3个程序,每个程序花费80%的时间进行I/O20%的时间使用CPU。每个程序启动时间和其需要使用进行计算的分钟数如下,不考虑进程切换时间。

程序编号              启动时间                    需要CPU时间(分钟)

1                              00:00                        3.5

2                              00:10                         2

3                              00:15                         1.5

请问在多线程/进程环境下,系统的总响应时间是()

A.22.5          B.23.5         C.24.5         D.25.5

解释: 

CPU利用率i/o处理占总时间比例则多道程序cpu占用率 为 1-p^n

分析步骤:

    多道编程时CPU利用率的求法:
   只有一个进程的时候,CPU利用率肯定是20%。
   两个进程的时候:CPu利用率是:20% + (1-20%)*20% = 36%
   三个进程是:36% + (1-36%)*20% = 48.8%

操作系统基础知识
          0-10分钟的时候,只有一个进程1在运行。单进程CPU占有率是20%,所以这10分钟内,进程1消耗了2分钟的CPU。进程20,进程3也是0
  然后在10-15分钟内,有两个进程在运行(12),双进程的CPU利用率是36%
        所以,这五分钟内,CPU一共利用了1.8分钟,平均分给每个进程,是0.9分钟。

 此时,进程1已经占用了CPU 2.9分钟,还需要0.6分钟,这时候有三个进程在运行,所有总的CPU时间需要1.8分钟。

 三进程的CPU利用率是48.8%,所以总共需要1.8/0.488=3.69分钟。这时,进程1已经3.5分钟的CPu利用时间利用完了。
  此时还剩下23号进程在运行。
       2号进程还需要0.5分钟,所以0.5×2/0.36=2.78,此时2号进程的2分钟CPU时间也利用完了。

3号进程还需要0.4分钟的CPU利用时间。0.4/0.2 = 2