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