《程序员的自我修养》读书笔记PAGE8

来源:互联网 发布:ug编程用在什么地方 编辑:程序博客网 时间:2024/05/22 23:08

Page 8:

Runtime Library 使用操作系统提供的System Call Interface,System Call 往往以软中断的方式提供。

软中断(摘自《计算机操作系统》西安电子科技大学):

用户程序只能在算态(用户态)下运行,并不能使用特权指令。那么,如果用户程序想要启动外设,或者要完成算态下无法完成的工作,就需要有一个类似于硬件中断处理的处理机构,当用户使用System Call时,产生一条相应的指令。当处理机在执行到该指令时发生相应的中断,并发出有关的信号给该处理机构,该处理机构在收到处理机发来的信号后,启动相关的处理程序完成该System Call所要求的功能,完成后再返回到用户程序。为实现这一点,必须有三个条件:

1)需要有这样一条指令,它能使处理器从算态进入到管态(内核态),并向OS提出要代为完成的工作。

2)在管态下由OS完成用户程序提出的请求。

3)OS完成所做工作后,应该返回到应用程序,即从管态又回到原来的算态。

访管指令就是用来解决以上问题的,一般计算机中设有访管指令。访管指令本身不是特权指令,其基本功能是“自愿进管“,能引起软中断(访管中断)。

当执行访管指令时,引起访管中断。中断发生后,硬件开始响应中断,保护原来的程序状态字(PSW)到内存固定单元,再从内存另一固定单元中取出新的PSW送入程序状态字寄存器。由于新的PSW中事先已预置位”管态“,从而使处理机进入管态。在管态下由中断处理程序完成用户程序所请求的功能。中断处理程序完成工作后,通过回复原来的PSW到程序状态寄存器,又可以返回到用户程序,且从管态又回到算态。

综上所述,系统功能调用就是用户在程序中用访管指令调用有操作系统提供的子功能集合。把其中的每一个子功能称为一个系统调用命令,也称为一条广义指令。

UNIX的系统调用主要功能包括有设备管理、文件管理、进程和存储管理等。

附:DMA(直接存储器访问:内存与I/O设备间直接成块传送,过程中不需要CPU的任何干涉)注解http://baike.baidu.com/view/32471.htm。


原创粉丝点击