操作系统的基本特征 简述系统调用的实现过程?
简述系统调用的实现过程?
系统调用是操作系统为软件开发人员提供的唯一接口,开发人员可以使用它来使用系统功能。在操作系统内核中有一组程序(子程序)来实现系统功能。系统调用是对上述过程的调用。因此,系统调用在视觉上就像一个黑匣子,为用户屏蔽操作系统的具体动作,只提供相关功能。
为了实现系统调用,系统设计者还必须为实现各种系统调用功能的子例程编译入口地址表,每个入口地址对应相应的系统子例程名称。然后,trap处理程序将trap指令中包含的函数号与entry address表中的相关项对应起来,以便系统调用函数号驱动相关的系统子程序执行。
由于用户程序在系统调用处理后仍然需要使用系统调用的返回结果继续执行,因此陷阱处理机制在进入系统调用处理之前还需要保存processor字段。此外,在系统调用处理结束后,trap处理机制必须恢复处理器站点。在操作系统中,处理器的字段一般被保护在特定的内存区域或寄存器中
基本相同:1。把函数号给ah2。根据需要提供相应的输入参数。三。中断调用,如DOS函数调用,在显示器上显示字符的调用方法:movah,02h函数号,表示在显示器上显示字符movdl,“a”输入参数将要显示的ASCII码或字符发送到dlint21h21h,表示DOS函数调用。下面是BIOS函数调用。在显示器上显示字符的调用方法:movah,0eh function number,即在显示器上显示字符moval。“a”输入参数,将要显示的ASCII码或字符发送到almovbl,02h输入参数,并将要显示的字符颜色指定给BL(此处为绿色)int10h10h是BIOS调用中与显示相关的中断调用
常规函数调用,即,函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。Java或Python的I/O是通过读写等系统调用来完成的。系统调用是用户程序与内核之间的接口。函数库调用:在所有版本的ANSI C编译器中,C库函数是相同的;它调用函数库中的一个程序;它与用户程序序列相关联;它在用户地址空间中执行important;它的运行时间属于user time important;它属于进程调用,C库libc中大约有300个程序,开销较小。系统调用:每个操作系统的系统调用不同,调用系统内核的服务,是操作系统的入口点,在内核地址空间中执行,运行时间属于系统时间,需要切换到内核上下文环境再切换回来,开销大;在UNIX中大约有90个系统调用(MS-DOS),更少。函数库调用通常提供更复杂的函数,而系统调用通常提供最小的接口。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。