系统调用时由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。
操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户。
系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序。
扩展资料
对于一般通用的OS而言,系统调用分为三大类:
1、进程控制类系统调用
主要用于对进程控制的系统调用有:
(1)创建和终止进程的系统调用。
(2)获得和设置进程属性的系统调用。进程的属性包括有进程标识符,进程优先级,最大允许执行时间等。
(3)等待某事件出现的系统调用。
2、文件操纵类系统调用
(1)创建和删除文件
(2)打开和关闭文件的系统调用
(3)读和写文件的系统调用
3、进程通信类系统调用
在单机处理系统中,OS经常采用消息传递方式和共享存储区方式。
当采用消息传递方式时,通信前需先打开一个连接。为此,应由源进程发出一条打开连接的系统调用,而目标进程则应利用接受连接的系统调用表示同意进行通信;
然后,在源和目标进程之间便开始通信。可以利用发送消息的系统调用或者用接收消息的系统调用来交换信息。通信结束后,还须再利用关闭连接的系统调用结束通信。
用户在利用共享存储区进行通信之前,须先利用建立共享存储区的系统调用来建立一个共享存储区,再利用建立连接的系统调用将该共享存储区连接到进程自身的虚地址空间上,然后便可以利用读和写共享存储区的系统调用实现相互通信。
参考资料来源:百度百科-系统调用
系统调用是由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。
操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户。
系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序。
扩展资料:
系统调用和普通调用的区别
系统调用本质上是一种过程调用,但它是一种特殊的过程调用,与一般用户程序中的过程调用有明显的区别 。
运行状态不同
运行状态不同。系统调用的调用过程和被调用过程运行在不同的状态,而普通的过程调用一般运行在相同的状态。
调用方法不同
调用方法不同。系统调用必须通过软中断机制首先进入系统核心,然后才能转向相应的命令处理程序。普通过程调用可以直接由调用过程转向被调用过程。
返回问题
返回问题。在采用抢先式调度的系统中,当系统调用返回时,要重新进行调度分析――是否有更高优先级的任务就绪。普通的过程调用直接返回调用过程继续执行。
系统调用原理
系统中的程序类型及状态
操作系统中的状态分为管态(核心态)和目态(用户态)。特权指令:一类只能在核心态下运行而不能在用户态下运行的特殊指令。
不同的操作系统特权指令会有所差异,但是一般来说主要是和硬件相关的一些指令。访管指令:本身是一条特殊的指令,但不是特权指令。(trap指令)。基本功能:“自愿进管”,能引起访管异常。
用户程序只在用户态下运行,有时需要访问系统核心功能,这时通过系统调用接口使用系统调用。
系统功能调用
系统功能调用:就是用户在程序中使用“访管指令”调用由操作系统提供的子功能集合。其中每一个系统子功能称为一个系统调用命令,也叫广义指令。
参考资料:百度百科-系统调用
本回答被网友采纳系统调用就是由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。
现代的操作系统通常都具有多任务处理的功能,通常靠进程来实现。由于操作系统快速的在每个进程间切换执行,所以一切看起来就会像是同时的。
同时这也带来了很多安全问题,例如,一个进程可以轻易的修改进程的内存空间中的数据来使另一个进程异常或达到一些目的,因此操作系统必须保证每一个进程都能安全的执行。这一问题的解决方法是在处理器中加入基址寄存器和界限寄存器。
这两个寄存器中的内容用硬件限制了对储存器的存取指令所访问的储存器的地址。这样就可以在系统切换进程时写入这两个寄存器的内容到该进程被分配的地址范围,从而避免恶意软件。
扩展资料
系统调用和普通调用的区别:
系统调用本质上是一种过程调用,但它是一种特殊的过程调用,与一般用户程序中的过程调用有明显的区别 。
1、系统调用原理
系统中的程序类型及状态
操作系统中的状态分为管态(核心态)和目态(用户态)。特权指令:一类只能在核心态下运行而不能在用户态下运行的特殊指令。
不同的操作系统特权指令会有所差异,但是一般来说主要是和硬件相关的一些指令。访管指令:本身是一条特殊的指令,但不是特权指令。(trap指令)。基本功能:“自愿进管”,能引起访管异常。
用户程序只在用户态下运行,有时需要访问系统核心功能,这时通过系统调用接口使用系统调用。
2、系统功能调用
系统功能调用:就是用户在程序中使用“访管指令”调用由操作系统提供的子功能集合。其中每一个系统子功能称为一个系统调用命令,也叫广义指令。
参考资料来源:百度百科-系统调用和普通调用的区别
Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。
用户可以通过系统调用命令在自己的应用程序中调用它们。
从某种角度来看,系统调用和普通的函数调用非常相似。
区别仅仅在于,系统调用由操作系统核心提供,运行于核心态;而普通的函数调用由函数库或用户自己提供,运行于用户态。
随Linux核心还提供了一些C语言函数库,这些库对系统调用进行了一些包装和扩展,因为这些库函数与系统调用的关系非常紧密,所以习惯上把这些函数也称为系统调用。
扩展资料:
实际上,很多已经被我们习以为常的C语言标准函数,在Linux平台上的实现都是靠系统调用完成的,所以如果想对系统底层的原理作深入的了解,掌握各种系统调用是初步的要求。
进一步,若想成为一名Linux下编程高手,也就是我们常说的Hacker,其标志之一也是能对各种系统调用有透彻的了解。
即使除去上面的原因,在平常的编程中你也会发现,在很多情况下,系统调用是实现你的想法的简洁有效的途径,所以有可能的话应该尽量多掌握一些系统调用,这会对你的程序设计过程带来意想不到的帮助。
调用性能问题
系统调用需要从用户空间陷入内核空间,处理完后,又需要返回用户空间。其中除了系统调用服务例程的实际耗时外,陷入/返回过程和系统调用处理程序(查系统调用表、存储\恢复用户现场)也需要花销一些时间,这些时间加起来就是一个系统调用的响应速度。
系统调用不比别的用户程序,它对性能要求很苛刻,因为它需要陷入内核执行,所以和其他内核程序一样要求代码简洁、执行迅速。
幸好Linux具有令人难以置信的上下文切换速度,使得其进出内核都被优化得简洁高效;同时所有Linux系统调用处理程序和每个系统调用本身也都非常简洁。
绝大多数情况下,Linux系统调用性能是可以接受的,但是对于一些对性能要求非常高的应用来说,它们虽然希望利用系统调用的服务,但却希望加快相应速度,避免陷入/返回和系统调用处理程序带来的花销。
因此采用由内核直接调用系统调用服务例程,最好的例子就HTTPD——它为了避免上述开销,从内核调用socket等系统调用服务例程。
参考资料:系统调用_百度百科
本回答被网友采纳由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application ProgrammingInterface,API),是应用程序同系统之间的接口。
操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户。
系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序。
系统调用和普通调用的区别:
系统调用本质上是一种过程调用,但它是一种特殊的过程调用,与一般用户程序中的过程调用有明显的区别 。
1.运行状态不同,系统调用的调用过程和被调用过程运行在不同的状态。普通的过程调用一般运行在相同的状态。
2.调用方法不同,系统调用必须通过软中断机制首先进入系统核心,然后才能转向相应的命令处理程序。普通过程调用可以直接由调用过程转向被调用过程。
3.返回问题,在采用抢先式调度的系统中,当系统调用返回时,要重新进行调度分析――是否有更高优先级的任务就绪。普通的过程调用直接返回调用过程继续执行。
参考资料:系统调用-百度百科
本回答被网友采纳什么是系统调用
Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。从某种角度来看,系统调用和普通的函数调用非常相似。区别仅仅在于,系统调用由操作系统核心提供,运行于核心态;而普通的函数调用由函数库或用户自己提供,运行于用户态。随Linux核心还...
系统调用的定义是什么?
【答案】:系统调用是OS与应用程序之间的接口,它是用户程序取得OS服务的惟一途径。它与一般的过程调用的区别:运行在不同的系统状态。调用程序在运行在用户态,而被调用的程序运行在系统态;通过软中断机制,先由用户态转为系统态,经枋心分析后,才能转向相应的系统调用处理子程序;一般的过程调用返回后...
操作系统中“系统调用”和“一般过程”的区别是什么?
所谓系统调用,就是用户在程序中调用操作系统所提供的一些子功能。它是通过系统调用命令,中段现行程序而转去执行相应的子程序,以完成特定的系统功能。完成后,控制又返回到发出系统调用命令之后的一条指令,被中断的程序将继续执行下去。\\x0d\\x0a\\x0d\\x0a系统调用与一般过程调用不同,其主要区别是...
操作系统中,什么是系统调用?简述其实现过程。
【解答】系统调用是操作系统提供给软件开发人员的惟一接口,开发人员可利用它使用系统功能。os核心中都有一组实现系统功能的过程(子程序),系统调用是对上述过程的调用。因此,系统调用直观上像一个黑箱子,对用户屏蔽操作系统的具体动作而只提供有关的功能。为了实现系统调用,系统设计人员还必须为实现各种...
什么是系统调用
A。操作系统编制了许多不同功能的子程序,供用户程序执行中调用。这些由操作系统提供的子程序称为系统功能调用,简称系统调用。系统调用是操作系统为用户程序提供的一种服务界面,或者说,是操作系统保证程序设计语言能正常工作的一种支持。
什么是系统调用
是指在程序中能用类似函数调用方式调用的操作系统服务的集合。由于用户程序在目态下不能直接使用I或O指令等特权指令,为了解决这一问题,操作系统编制了许多不同功能的子程序,供用户程序执行中调用,这些由操作系统提供的子程序称为“系统功能调用”程序,简称“系统调用”。操作系统中的状态分为管态(...
系统调用和过程调用有什么区别?
操作系统为用户提供两个接口:命令接口和系统调用。区别:1、使用者不同 命令接口:系统为用户提供的。系统调用:编程人员使用系统调用。2、操作过程不同 命令接口:利用操作命令来组织和控制作业的执行或管理计算机系统。系统调用:请求操作系统提供服务,例如申请和释放外设等类资源、控制程序的执行速度等。
操作系统中的系统调用和普通调用区别是什么?
系统调用和普通调用在操作系统中有着明显的区别。首先,系统调用是运行在用户态的程序向操作系统内核请求需要更高权限运行的服务,例如读写文件或进行网络通信等。而普通调用则是运行在同一系统状态的过程调用,无论是用户程序还是系统程序。此外,系统调用与一般过程调用的主要区别体现在以下几个方面:运行...
什么是系统调用
操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户。系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果...
什么是系统调用
在计算机中,系统调用(英语:system call),又称为系统呼叫,指运行在使用者空间的程序向操作系统内核请求需要更高权限运行的服务。 系统调用提供了用户程序与操作系统之间的接口。大多数系统交互式操作需求在内核态执行。如设备IO操作或者进程间通信。原理:操作系统中的状态分为管态(核心态)和目态(...