1. 中断和陷入硬件机构
(1) 什么是中断和陷入。
中断是指CPU对系统发生某事件时的这样一种响应:CPU暂停正在执行的程序,在保留现场后自动地转去执行该事件的中断处理程序;执行完后,再返回到原程序的断点处继续执行。
(2) 中断和陷入向量。
2. 系统调用号和参数的设置
(1) 直接将参数送入相应的寄存器中。
(2) 参数表方式。
3. 系统调用的处理步骤
首先,将处理机状态由用户态转为系统态;之后,由硬件和内核程序进行系统调用的一般性处理,即首先保护被中断进程的CPU环境,将处理机状态字PSW、程序计数器PC、系统调用号、用户栈指针以及通用寄存器内容等,压入堆栈;然后,将用户定义的参数传送到指定的地方保存起来。
其次,是分析系统调用类型,转入相应的系统调用处理子程序。
最后,在系统调用处理子程序执行完后,应恢复被中断的或设置新进程的CPU现场,然后返回被中断进程或新进程, 继续往下执行。
4. 系统调用处理子程序的处理过程
进入Creat的处理子程序后,核心将根据用户给定的文件路径名Path, 利用目录检索过程,去查找指定文件的目录项。查找目录的方式可以用顺序查找法,也可用Hash查找法。如果在文件目录中找到了指定文件的目录项,表示用户要利用一个已有文件来建立一个新文件。但如果在该已有(存)文件的属性中有不允许写属性,或者创建者不具有对该文件进行修改的权限,使认为是出错而做出错处理;若不存在访问权限问题,便将已存文件的数据盘块释放掉,准备写入新的数据文件。如未找到指名文件,则表示要创建一个新文件,核心便从其目录文件中找出一个空目录项,并初始化该目录项,包括填写文件名、文件属性、文件建立日期等,然后将新建文件打开。