钟翼翔,哈哈!
这个问题异还好答,问题是相同点难啊!找不到哦~~~~
它与一般用户子程序的区别是:系统调用程序是在核心态(即管态)下执行,调用它们需要一个类似于硬件中断处理的中断处理机制来提供系统服务,而一般的子程序调用是在用户态(即目态)下执行的。
A。 *** 作系统编制了许多不同功能的子程序,供用户程序执行中调用。这些由 *** 作系统提供的子程序称为系统功能调用,简称系统调用。系统调用是 *** 作系统为用户程序提供的一种服务界面,或者说,是 *** 作系统保证程序设计语言能正常工作的一种支持。
“ *** 作系统调用执行用户程序的入口程序”具体流程如下:
当处理器执行到系统调用指令时,其工作状态由用户态切换到核心态。处理器将由执行用户指令变为执行 *** 作系统指令,即执行系统调用处理程序,该程序的入口地址根据系统调用号从中断向量表中获得。
包括用户进程下一条指令地址(即返回地址在内)的处理器现场被保存起来,然后系统调用处理程序开始执行结束时,通过中断返回指令,用户进程的现场信息被恢复,处理器重返用户进程后续指令执行。
流程说明
1、硬件接收到中断信号,立刻保存现场,并查找中断向量表,将CPU控制权转交给系统调用总入口程序。
2、对于系统调用总入口程序,也要先保存现场,将参数保存在内核的堆栈中。然后查找系统调用表,将CPU控制权转交给对应的系统调用处理程序或者是内核函数。
3、执行系统调用处理程序
4、恢复现场,返回用户程序。
*** 作系统中的状态分为管态和目态。特权指令:一类只能在核心态下运行而不能在用户态下运行的特殊指令。不同的 *** 作系统特权指令会有所差异,但是一般来说主要是和硬件相关的一些指令。访管指令:本身是一条特殊的指令,但不是特权指令。基本功能:"自愿进管",能引起访管异常。
用户程序只在用户态下运行,有时需要访问系统核心功能,这时通过系统调用接口使用系统调用。
系统调用时由 *** 作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。
*** 作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户。
系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序。
扩展资料
对于一般通用的OS而言,系统调用分为三大类:
1、进程控制类系统调用
主要用于对进程控制的系统调用有:
(1)创建和终止进程的系统调用。
(2)获得和设置进程属性的系统调用。进程的属性包括有进程标识符,进程优先级,最大允许执行时间等。
(3)等待某事件出现的系统调用。
2、文件 *** 纵类系统调用
(1)创建和删除文件
(2)打开和关闭文件的系统调用
(3)读和写文件的系统调用
3、进程通信类系统调用
在单机处理系统中,OS经常采用消息传递方式和共享存储区方式。
当采用消息传递方式时,通信前需先打开一个连接。为此,应由源进程发出一条打开连接的系统调用,而目标进程则应利用接受连接的系统调用表示同意进行通信;
然后,在源和目标进程之间便开始通信。可以利用发送消息的系统调用或者用接收消息的系统调用来交换信息。通信结束后,还须再利用关闭连接的系统调用结束通信。
用户在利用共享存储区进行通信之前,须先利用建立共享存储区的系统调用来建立一个共享存储区,再利用建立连接的系统调用将该共享存储区连接到进程自身的虚地址空间上,然后便可以利用读和写共享存储区的系统调用实现相互通信。
参考资料来源:百度百科-系统调用
以上就是关于系统调用和子程序调用有什么区别全部的内容,包括:系统调用和子程序调用有什么区别、计算机 *** 作系统 系统调用的目的是什么、 *** 作系统调用执行用户程序的入口程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)