程反复循环,直到一个作业输人完毕。当读过程读到一个硬件结束标志后,系统再次驱动写过程把最后一批信息写入外存并调用中断处理程序结束该次输入。然后,系统为该作业建立作业控制块JCB,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存。5.作业说明书和作业控制块有何异同?答:作业说明书主要包含三方面内容:作业的基本描述、作业控制描述和资源要求描述,作业基本描述主要包括用户名、作业名、使用的编程语言名、允许的大处理时间等。而作业控制描述则大致包括作业在执行过程中的控制方式,例如是脱机控制还是联机控制、各作业步的操作顺序以及作业不能正常执行时的处理等。资源要求描述包括要求内存大小、外设种类和台数、处理机优先级、所需处理时间、所需库函数或实用程序等。而作业控制块是作业说明书在系统中生成的一张表格,该表格登记该作业所要求的资源情况、预计执行时间和执行优先级等。从而,操作系统通过该表了解到作业要求,并分配资源和控制作业中程序和数据的编译、链接、装入和执行等。6.操作余统为用户提供哪些接口?它们的区别是什么?答:操作系统为用户提供两个接口,一个是系统为用户提供的各种命令接口,用户利用这些操作命令来组织和控制作业的执行或管理计算机系统。另一个接口是系统调用,编程人员使用系统调用来请求操作系统提供服务,例如申请和释放外设等类资源、控制程序的执行速度等。7.作业控制方式有哪几种?调查你周围的计算机的作业控制方式。答:作业控制的主要方式有两种:脱机方式和联机方式。脱机控制方式利用作业控制语言来编写表示用户控制意图的作业控制程序,也就是作业说明书。作业控制语言的语句就是作业控制命令。不同的批处理系统提供不同的作业控制语言。联机控制方式不同于脱机控制方式,它不要求用户填写作业说明书,系统只为用户提供一组键盘或其他操作方式的命令。用户使用操作系统提供的操作命令和系统会话,交互地控制程序执行和管理计算机系统。8.什么是案统调用?系统调用与一般用户程序有什么区别?与库函数和实用程序又有什么区别?答:系统调用是操作系统提供给编程人员的唯一接口。编程人员利用系统调用,在源程序一级动态请求和释放系统资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。它与一般用户程序、库函数和实用程序的区别是:系统调用程序是在核心态执行,调用它们需要一个类似于硬件中断处理的中断处理机制来提供系统服务。·4:
9.简述系统调用的实现过程。答:用户在程序中使用系统调用,给出系统调用名和函数后,即产生一条相应的陷入指令,通过陷入处理机制调用服务,引起处理机中断,然后保护处理机现场,取系统调用功能号并寻找子程序入口,通过入口地址表来调用系统子程序,然后返回用户程序继续执行。10.为什么说分时案统没有作业的概念?答:因为在分时系统中,每个用户得到的时间片有限,用户的程序和数据信息直接输入到内存工作区中和其他程序一起抢占系统资源投入执行,而不必进入外存输入井等待作业调度程序选择。因此,分时系统没有作业控制表,也没有作业调度程序。11.试迷UNIX的主要待点。答:UNIX的主要特点是:(1)UNIX系统是一个可供多用户同时操作的交互式分时操作系统,(2)为了向用户提供交互式功能和使得用户可以利用UNIX系统的功能,UNIX系统向用户提供了两种友好的界面或接口:系统调用和命令;(3)UNIX系统具有一个可装卸的分层树型结构文件系统,该文件系统使用方便、搜索简单;(4)UNIX系统把所有外部设备都当成文件,并分别赋予它们对应的文件名。从而,用户可以像使用文件那样使用任一设备而不必了解该设备的内部特性,这既简化了系统设计,又方便了用户;(5)UNIX系统核心程序的绝大部分源代码和系统上的支持软件都用C语言编写。且UNIX系统是一个开放式系统,即具有统一的用户接口,使得UNIX用户的应用程序可在不同的执行环境下运行。正是由于UNIX具有上述这些特点,使得UNIX系统得到了广泛的应用和发展。12.UNIX操作案统为用户提供哪些接口?试举例说明。答:UNIX系统为用户提供两个接口,即面向操作命令的接口Shell和面向编程用户的接口:系统调用。常见的Shell命令如:login,logout,vi,emacs,cp,rm,ls,cc,link,adduser,chown,dbx,date等,常见的系统调用如:ioctl,read,write,open.close,creat,execl,flock,stat,mount,fork,wait,exit,socket等。13.在你周图装有UNIX系统的计算机上,练习使用后台命令,管道命令等Shell的基本命今。答:例1:用Shell语言编制一Shell程序,该程序在用户输入年、月之后,自动打印输出该年该月的日历:echo "please input the month."read monthecho "Please input the year,"resd year·5
cal $month $year例2:用Shell语言编制一Shell程序,当用户输入要搜索的字符串之后,该程序从指定文件中搜索出有关字符串,且该搜索过程后台执行:echo "Please input the string to be searched."read strecho"Please input the filename:"read filenamegrep $str $filename&14.Shell变量和参数的作用是什么?操作系统默认定义的Shell变量有哪些?答:正是因为有了Shell变量和参数,加上控制语句和条件语句,从而使Shell可以像-般程序语言那样进行编程,所不同的只是Shell编程的对象是系统命令,可以使得Shell命令文件中的命令按Shell编程所规定的顺序执行。操作系统默认定义的Shell变量及定义如表E1.1所示。表E1.1定义Shell 变量$ #参数个数$*.或$@Shell的全部参数$-指定给Shell的操作集$?Shell程序中最后执行的命令的返回值$$Shell进程号$1最后被执行的命令的进程号cd命令的标准参数值(HOME目录)$HOME$PATH查找Shell命令文件的路径$MAIL指定接收邮箱的打印接收信息$PS1显示提示符S argv[o], S argv[1], .., S argv[n]输入参数变量:6
第3章进程管理1、有人说,一个进程是由伪处理机执行的一个程序,这话对吗?为什么?答:对。因为伪处理机的概念只有在执行时才存在,它表示多个进程在单处理机上并发执行的一个调度单位。因此,尽管进程是动态概念,是程序的执行过程,但是,在多个进程并行执行时,仍然只有一个进程占据处理机执行.而其他并发进程则处于就绪或等待状态。这些并发进程就相当于由伪处理机执行的程序。2.试比较进程和程序的区别。答:(1)进程是一个动态概念,而程序是一个静态概念,程序是指令的有序集合,无执行含义,进程则强调执行的过程。(2)进程具有并行特征(独立性,异步性),程序则没有。(3)不同的进程可以包含同一个程序,同一程序在执行中也可以产生多个进程。3.我们说程序的并发执行将导致最终结果失去对闭性。这话对所有的程序都成立吗?试举例说明。答:并非所有程序均成立。如:Beginlocal xx = 10print(x)End上述程序中x是内部变量,不可能被外部程序访问,因此这段程序的运行不会受外部环境影响。4.试比较作业和进程的区别。答:一个进程是一个程序对某个数据集的执行过程.是分配资源的基本单位。作业是用户需要计算机完成某项任务,而要求计算机所做工作的集合。一个作业的完成要经过作业提交、作业收容、作业执行和作业完成4个阶段。而进程是已提交完毕的程序所执行过程的描述、是资源分配的基本单位。其主要区别关系如下:(1)作业是用户向计算机提交任务的任务实体。在用户向计算机提交作业之后,系统将它放入外存中的作业等待队列中等待执行。而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。任一进程,只要它被创建,总有相应的部分存在于内存中。(2)一个作业可由多个进程组成。且必须至少由一个进程组成,但反过来不成立。.7
(3)作业的概念主要用在批处理系统中。像Unix这样的分时系统中,则没有作业概念。而进程的概念则用在几乎所有的多道程序系统中。5.UNIXSystemV中,系统程序所对应的正文段未被考虑成进程上下文的一部分,为什么?答:因为系统程序的代码被用户程序所共享,因此如果每个进程在保存进程上下文时。都将系统程序代码放到其进程上下文中,则大大浪费了资源。因此系统程序的代码不放在进程上下文中,而是统一放在核心程序所处的内存中。6.什么是临界区?试举一临界区的例子。答:临界区是指不允许多个并发进程交叉执行的一段程序。它是由于不同并发进程的程序段共享公用数据或公用数据变量而引起的。所以它又被称为访问公用数据的那段程序。例如:getspace:Begin local gg stacktop]top =top - 1Endrelease(ad):Begintop =top +1stack[top]adEnd7.并发进程间的制约有哪两种?引起制约的原因是什么?答,并发进程所受的制约有两种:直接制约和间接制约。直接制约是由并发进程互相共享对方的私有资源所引起的。间接制约是由竞争共有资源而引起的。8.什么是进程间的互斥?什么是进程间同步?答:进程间的互斥是指:一组并发进程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不许交叉执行的单位执行,即不允许两个以上的共享该资源的并发进程同时进入临界区。进程间的同步是指:异步环境下的一组并发进程因直接制约互相发送消息而进行互相合作、互相等待,是各进程按一定的速度执行的过程。9.试比较P,V原语法和加锁法实现进程问互斥的区别。答,互斥的加锁实现是这样的;当某个进程进入临界区之后,它将锁上临界区,直到它退出临界区时为止。并发进程在申请进入临界区时,首先测试该临界区是否是上锁的,如果.8