, ,:设置数据段段选择子和堆栈;设置中断描述符表;设置全局描述符表;设置页表,启动分页并调用内核启动函数main保护模式和实模式的区别寻址中断处理:实时模式下,当中断发生时,用中断号检索中断表,得到中断处理程序地址,然后进入中断处理程序进行处理。保护模式下,则用中断号和中断描述符表的首地址检索中断处理程序地址。特权级别中断概念:改变处理器正常执行顺序的事件异常处理流程:系统调用总数减1,相关寄存器入栈,把子功能号放入eax中,如果还有其它参数(最多3个),则第1、第2和第3个参数分别放入寄存器ebx,ecx和edx中,系统调用的返回值(函数指针)保存在eax中,调用处理函数,相关寄存器出栈,返回。添加一个系统调用:定义子功能号,系统调用总数加1,定义系统调用函数,在系统调用函数指针表中添加新函数指针。进程概念?答:进程是程序的一次执行,是由正文段、用户数据段和系统数据段、堆栈段组成动态的实体。进程是系统资源分配的基本单位,也是使用CPU运行的基本调度单位。进程如何向内核传递子功能号和参数?把子功能号放入eax中,如果还有其它参数(最多3个),则第1、第2和第3个参数分别放入寄存器ebx,ecx和edx中,系统调用的返回值保存在eax中。内核如何确定调用的C语言函数(数据结构是什么)?以子功能号作为索引查找sys_call_table,找到处理该功能的C语言函数,然后调用该函数。数据结构(sys_call_table[]).进程描述符数据结构包括进程当前运行的状态信息、信号、进程号、父进程号、运行时间累计值、正在使用的文件和本任务的局部描述符(ldt),以及任务状态段信息(tss)。选择进程:根据什么原则来选择进程?选择task数组中第一个所剩时间片最长的可运行状态的任务,与当前进程进行切换;如果所有可运行状态的进程事件片都已用完,重新给素有进程分配时间片:count=count/2+priority,重做1;如果当前没有进程可运行,就选择进程0运行,而进程0会调用pause()把自己置为可中断睡眠状态并再次调用schedule()。切换进程:进程的切换过程是什么样的(使用的指令以及TSS的作用)?从指令JMP的操作数中获取新任务的TSS段选择子;检查新任务的TSS描述符是否存在,在当前任务的TSS中保存当前任务的状态;为TR装载新任务TSS所需要的段选择子,从新任务的TSS中装载新任务的状态到处理器中;开始执行新任务。进程调度发生的时机和条件?抢夺和主动放弃对进程的状态有什么影响?时钟中断发生时,发生中断前,进程处于用户态,且时间滴答=0,被动放弃CPU,进程状态仍是可运行态。系统调用返回时,发生中断前,进程处于用户态,且时间片=0,被动放弃CPU…睡眠函数内,进程在内核态主动放弃CPU,进程状态是不可运行状态。进程0的特殊之处:;,复制进程0或者其后代进程产生的;只有进程0是静态产生的。创建过程使用了哪些数据结构以及这些数据结构是如何被关联起来的?系统在任务数组中找出一个空项,已满则
linux复习(湘潭大学) 来自淘豆网m.daumloan.com转载请标明出处.