niusouti.com
更多“简述用户如何利用系统调用,以及系统在执行系统调用时的工作过程。 ”相关问题
  • 第1题:

    什么是系统调用?简要说明系统调用的执行过程。


    系统调用是OS提供给用户程序的唯一接口具体地说系统调用是OS内核中提供的一些系统子程序用户可通过特殊的系统调用指令(也称作访管指令)来调用这些子程序从而使用户在自己的程序中可获得OS提供的服务如打开文件、创建子进程等。 系统调用与一般的过程调用的区别主要有以下几个: (1)运行在不同的系统状态。一般的过程调用其调用程序和被调用程序都运行在相同的状态——系统态或用户态;对于系统调用其调用程序是运行在用户态而被调用程序则是运行在系统态。 (2)通过软中断进入。一般过程调用可通过过程调用语句直接由调用过程转向被调用过程;而系统调用则必须通过执行系统调用指令(也称做访管指令)由软中断(或陷入机制)转向相应的系统调用处理程序同时CPU的执行状态将从用户态转换为系统态。 (3)返回问题。一般的过程调用在被调用过程执行完后将直接返回到调用过程继续执行。而对于系统调用如果系统采用抢占调度方式则在被调用过程执行完后必须先对系统中所有要求运行的进程做优先权分析。只有当调用进程仍具有最高优先权时才返回到调用进程继续执行;否则将引起重新调度。 系统调用是OS提供给用户程序的唯一接口,具体地说,系统调用是OS内核中提供的一些系统子程序,用户可通过特殊的系统调用指令(也称作访管指令)来调用这些子程序,从而使用户在自己的程序中可获得OS提供的服务,如打开文件、创建子进程等。系统调用与一般的过程调用的区别主要有以下几个:(1)运行在不同的系统状态。一般的过程调用,其调用程序和被调用程序都运行在相同的状态——系统态或用户态;对于系统调用,其调用程序是运行在用户态,而被调用程序则是运行在系统态。(2)通过软中断进入。一般过程调用可通过过程调用语句直接由调用过程转向被调用过程;而系统调用则必须通过执行系统调用指令(也称做访管指令),由软中断(或陷入机制)转向相应的系统调用处理程序,同时CPU的执行状态将从用户态转换为系统态。(3)返回问题。一般的过程调用在被调用过程执行完后,将直接返回到调用过程继续执行。而对于系统调用,如果系统采用抢占调度方式,则在被调用过程执行完后,必须先对系统中所有要求运行的进程做优先权分析。只有当调用进程仍具有最高优先权时,才返回到调用进程继续执行;否则,将引起重新调度。

  • 第2题:

    10、尽管系统调用号唯一的标识每个系统调用,但用户调用系统调用时并不需要知道系统调用号。


    A

  • 第3题:

    16、尽管系统调用号唯一的标识每个系统调用,但用户调用系统调用时并不需要知道系统调用号。


    A

  • 第4题:

    简述系统调用的执行过程。


    系统调用的具体格式因系统而异但从用户程序进入系统调用程序的步骤及其执行过程(如图7.5所示)来看却大致相同。系统调用的处理过程如下: (1)提供系统调用号和必要的参数。用户程序必须根据其所欲获得的操作系统服务向系统调用处理程序提供相应的系统调用号和必要的参数(如打开文件系统调用中的文件路径名和打开的方式等)。 (2)执行系统调用指令。通过执行CPU提供的系统调用指令(如Intel 80X86中的INT21H指令)产生软中断(或陷入)从而由硬件进行现场保护并根据中断向量将CPU的控制转向系统调用总控程序同时CPU的状态将从用户态转向系统态。 (3)调用相应的系统调用处理子程序。系统调用总控程序将进行系统调用的一般性处理如保存某些通用寄存器的值并根据系统调用号和系统内部设置的系统调用入口表转向相应的系统调用处理子程序完成特殊的功能请求。 (4)返回执行结果。在系统调用处理子程序执行完后系统要把执行是否成功以及成功时的执行结果返回给调用者并有可能进行CPU的重新调度最后通过中断返回指令恢复执行系统调用的用户进程或新进程的现场继续往下执行。 系统调用的具体格式因系统而异,但从用户程序进入系统调用程序的步骤及其执行过程(如图7.5所示)来看,却大致相同。系统调用的处理过程如下:(1)提供系统调用号和必要的参数。用户程序必须根据其所欲获得的操作系统服务向系统调用处理程序提供相应的系统调用号和必要的参数(如打开文件系统调用中的文件路径名和打开的方式等)。(2)执行系统调用指令。通过执行CPU提供的系统调用指令(如Intel80X86中的INT21H指令)产生软中断(或陷入),从而由硬件进行现场保护,并根据中断向量将CPU的控制转向系统调用总控程序,同时,CPU的状态将从用户态转向系统态。(3)调用相应的系统调用处理子程序。系统调用总控程序将进行系统调用的一般性处理,如保存某些通用寄存器的值,并根据系统调用号和系统内部设置的系统调用入口表转向相应的系统调用处理子程序完成特殊的功能请求。(4)返回执行结果。在系统调用处理子程序执行完后,系统要把执行是否成功,以及成功时的执行结果返回给调用者,并有可能进行CPU的重新调度,最后,通过中断返回指令恢复执行系统调用的用户进程或新进程的现场,继续往下执行。

  • 第5题:

    11、对系统调用进行优化,是因为系统调用的实现从用户态切换到内核态,执行完系统调用程序后又从内核态切换回用户态,代价很大。


    A 操作系统不允许用户直接操作各种硬件资源,因此用户程序只能通过系统调用的方式来请求内核为其服务,间接地使用各种资源。