计算机操作系统

系统调用和一般用户函数调用的区别?

题目

系统调用和一般用户函数调用的区别?

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

系统调用、库函数的区别和练习


正确答案:

从实现者角度观察,库函数是在系统调用上层的函数,库函数一般指程序员可以使用的通用函数。系统调用由两部分组成:

(1)核心函数:是实现系统调用功能的代码,作为操作系统的核心驻留在内存中,是一种共享代码。运行在核心态。

(2)接口函数:是提供给应用程序的API,以库函数的形式存在于Linux的lib.a中,该库中存放了所有系统调用的接口函数的目标代码,用汇编语言书写。其主要功能是把系统调用号,入口参数地址传给相应的核心函数,并使用户态下运行的应用程序陷入核心态。


第2题:

下列关于系统功能调用的论述中正确的一条是()。

A、在运行系统调用时,可由用户程序直接通过函数调用指令转向系统调用处理程序。

B、在运行系统调用时,用户程序必须执行系统调用指令(或访管指令),并通过陷入中断(或软中断)转向系统调用处理程序。

C、在运行系统调用时,用户程序必须通过外部的硬件中断,转向系统调用处理程序。

D、在运行系统调用时,用户程序可直接通过转移指令转向系统调用处理程序。


参考答案:B

第3题:

关于函数调用,下面说法错误的是()。

A、被调用函数必须是已经存在的函数、库函数或用户已定义过的函数

B、没有头文件也可以对库函数进行调用

C、如果使用用户自定义的函数,还要在主调用函数中说明用户函数的返回值类型。

D、在主函数main()中可以调用其他函数,其他函数也可以相互调用


参考答案:B

第4题:

一个C程序由函数A、B、C和函数P构成,在函数A中分别调用了函数B和函数C,在函数B中调用了函数A,且在函数P中也调用了函数A,则可以说( )

A.函数B中调用的函数A是函数A的间接递归调用

B.函数A被函数B调用是函数A间接递归调用

C.函数P直接递归调用了函数A

D.函数P中调用的函数A是函数P的嵌套


正确答案:D

第5题:

在一般的过程调用中,其调用程序和被调用程序都运行在相同的状态,即系统态和用户态。()


参考答案:正确

第6题:

一个C++程序由函数A( ),B( ),C( )和函数P( )构成,在函数A( )中分别调用了函数B( )和函数C ( ),在函数B( )中调用了函数A( ),且在函数P( )中也调用了函数A( ),则可以说

A.函数B( )中调用的函数A( )是函数A( )的间接递归调用

B.函数A( )被函数B( )调用是直接递归调用

C.函数P( )直接递归调用了函数A( )

D.函数P( )中调用的函数A( )是函数P( )的嵌套


正确答案:A
解析:本题考察递归调用。递归调用分为直接递归和间接递归。A()属于间接递归。

第7题:

构造函数和析构函数既可以由程序员调用,也可以由系统自动调用。()


参考答案:错误

第8题:

以下正确的说法是

A.用户若需调用标准库函数,调用前必须重新定义

B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义

C.系统根本不允许用户重新定义标准库函数

D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用


正确答案:B

第9题:

下列构造方法的调用方式中,正确的是( )。 A.按照一般方法调用B.由用户直接调用

下列构造方法的调用方式中,正确的是( )。

A.按照一般方法调用

B.由用户直接调用

C.只能通过new自动调用

D.被系统调用


正确答案:C
C【解析】本题考查Java中的构造方法。构造方法在Java中占有非常重要的地位,务必掌握。构造方法是类中的一种特殊方法,是为对象初始化操作编写的方法,用来定义对象的初始状态。构造方法不能被程序调用,构造方法名必须与类名相同,没有返回值,用户不能直接调用,只能通过new自动调用,所以选项C正确。

第10题:

以下正确的说法是( )。

A.用户若需调用标准库函数,调用前必须重新定义

B.用户可以重新定义标准库函数,若重新定义,该函数将失去原有含义

C.系统根本不允许用户重新定义标准库函数

D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统会自动调用


正确答案:B
解析:用户调用标准库函数前不必重新定义,而只需使用预编译命令将该函数所在文件包括到用户源文件中即可。而且,系统允许用户重新定义标准库函数,但此时该函数将失去原有含义。因此,正确答案为选项B)。

更多相关问题