




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Bootsect.s程序就是一个引导程序,负责把Linux操作系统内核从存储设备装入内存.Stup.s通过BIOS中断调用获得系统参数,把获得的系统参数保存在0x90000开始的内存块中.Head.s:设置数据段段选择子和堆栈;设置中断描述符表;设置全局描述符表;设置页表,启动分页并调用内核启动函数main保护模式和实模式的区别1. 寻址2. 中断处理:实时模式下,当中断发生时,用中断号检索中断表,得到中断处理程序地址,然后进入中断处理程序进行处理。保护模式下,则用中断号和中断描述符表的首地址检索中断处理程序地址。3. 特权级别中断概念:改变处理器正常执行顺序的事件异常处理流程:系统调用总数减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)。选择进程:根据什么原则来选择进程?1. 选择task数组中第一个所剩时间片最长的可运行状态的任务,与当前进程进行切换;2. 如果所有可运行状态的进程事件片都已用完,重新给素有进程分配时间片:count=count/2+priority,重做1;3. 如果当前没有进程可运行,就选择进程0运行,而进程0会调用pause()把自己置为可中断睡眠状态并再次调用schedule()。切换进程:进程的切换过程是什么样的(使用的指令以及TSS的作用)?1. 从指令JMP的操作数中获取新任务的TSS段选择子;2. 检查新任务的TSS描述符是否存在,在当前任务的TSS中保存当前任务的状态;3. 为TR装载新任务TSS所需要的段选择子,从新任务的TSS中装载新任务的状态到处理器中;4. 开始执行新任务。进程调度发生的时机和条件?抢夺和主动放弃对进程的状态有什么影响?1. 时钟中断发生时,发生中断前,进程处于用户态,且时间滴答=0,被动放弃CPU,进程状态仍是可运行态。2. 系统调用返回时,发生中断前,进程处于用户态,且时间片=0,被动放弃CPU3. 睡眠函数内,进程在内核态主动放弃CPU,进程状态是不可运行状态。进程0的特殊之处:1.它是所有其他进程的祖先进程;2.所有其他的进程都是通过fork系统调用,复制进程0或者其后代进程产生的;只有进程0是静态产生的。创建过程使用了哪些数据结构以及这些数据结构是如何被关联起来的?1. 系统在任务数组中找出一个空项,已满则出错返回。2. 系统申请一页内存来存放其任务数据结构信息,拷贝当前进程的描述符到子进程描述符中。3. 将新进程的状态置为不可中断睡眠状态。4. 对复制的任务数据结构进行修改:把当前进程设置为父进程,清除信号位图并复制新进程各统计值,设置初始运行时间片值;根据当前进程设置任务状态段TSS中各寄存器的值5. 设置新任务的代码和数据段基址、限长并复制当前进程内存分页管理的页表。6. 在GDT中设置新任务的TSS和LDT描述符项,其中地址信息指向新进程任务结构中的tss和ldt。7. 将新任务设置为运行状态并返回新进程号。进程的终止:终止时要释放的资源包括什么?会出现什么问题?如何解决该问题?释放的资源: 1.内存:进程描述符和内核堆栈占用4K空间;页表和页目录占用的物理页面;代码和数据占用的物理页面2.GDT中的LDT和TSS描述符3.打开的文件出现的问题及解决方法:1. 通常父进程在子进程终止后,需要查询子进程的终止状态,但是该状态保存在子进程的进程描述符中。2. 如果,子进程终止时释放了进程描述符,则无法查询终止状态。由父进程负责回收子进程的进程描述符。但是,如果父进程在子进程之前终止,谁来负责回收子进程的进程描述符。进程在终止时,把所有未终止的子进程过继给进程1。由进程1负责接收这些子进程终止信号,并回收子进程的进程描述符。sys_exit和sys_waitpid各自释放什么资源? Sys_exit释放进程占用的物理内存并关闭进程打开的文件。 Sys_waiatpid,如果任意一个符合pid条件的子进程僵死,则释放子进程占用的进程描述符;如果所有符合pid条件的子进程都不处于僵死状态,则按照option选项或者等待或立即返回。int sys_waitpid(pid_t pid,unsigned long * stat_addr, int options)睡眠状态之间的区别?唤醒的效果?可中断睡眠可以被信号唤醒 ,当资源有效时,该资源等待队列上所有进程全部都被唤醒,有可能还会发生资源冲突;不可中断睡眠,需要内核程序使用wake_up()明确唤醒,该队列上的资源全唤醒。信号的基本概念?信号是一种进程间通讯的方式,这种机制是异步的。信号处理的数据结构Task_structlong signal;/对应32个信号,向进程发送信号就是把singal中信号对应的那一位置1。signal |= 1(信号值-1)long blocked;/对应32个信号,如果某个信号对应的那一位置1表示该信号被屏蔽。signal&blocked;/表示进程中未被屏蔽的信号。struct sigaction void (*sa_handler)(int); /信号处理函数指针,可以是用户自定义的函数sigset_t sa_mask;/在处理当前信号时需要屏蔽的信号,一般屏蔽本信号int sa_flags;/改变信号处理过程的标志void (*sa_restorer)(void); /恢复函数入口地址,用于清除用户堆栈这个/函数由libc提供,用户无法自行设置;SIGCHILD信号父进程发出,停止或终止子程序。信号处理的时机和条件处理同步系统调用;申请一个脏缓冲区。预定义的信号处理函数作用? 根据信号值调用信号处理函数SA_NOMASK和SA_ONESHOT的意思?SA_NOMASK在信号的处理后不保留信号屏蔽设置;SA_ONESHOT信号处理函数一旦被调用过,就恢复到SIG_DFL。 设备号的作用,块设备管理模块的入口函数是什么,发送命令的过程和数据结构。用于区分不同的设备;入口函数:ll_rw_block();1.根据缓冲头创建一个请求;2.判断队列中是否有请求;3.有则向设备发送命令,无则把请求插入到设备的请求队列中。硬盘给控制器发送命令的函数是什么?do_hd_request();硬盘的读过程?执行程序产生一个读中断,调用中断处理程序,向硬盘控制器发送读扇区命令和参数,若BUSY位=0,控制器处于空闲状态,则将BUSY位置1,开始读扇区,控制器操作时BUSY=1,DRQ=0,读完一个扇区后,若所需读出的扇区数还没有读完,置DRQ=1,返回返回等待硬盘再次完成读操作后的中断处理,传送读数据,若全部扇区数据已经读完,则置DRQ=0,BUSY=0,处理请求结束事宜,执行其他硬盘操作。硬盘的写过程?执行程序产生一个写中断,调用中断处理程序,向硬盘硬盘控制器发送写扇区命令循环查询DRQ,当DRQ置位时,将请求项所指缓冲区中的数据写入控制器的数据缓冲区,写完一个扇区后,将欲写扇区数减1,若还有扇区要写则返回等待硬盘再次完成写操作后的中断处理,若全部扇区已经写完,置DQR=0,BUSY=0,处理请求结束事宜,执行其他硬盘操作。建立缓冲区的目的(在读写过程中是如何体现作用的)?I/O操作的速度与内存和cpu速度相比是非常慢的,为了提高性能,内核在内存中开辟高速缓存区,并将其划分成一个个与磁盘数据块大小相等的缓冲块来使用和管理,以期减少访问块设备的次数。高速缓冲区中存放着最近被使用过的各个块设备中的数据块。当要从块设备中读取数据时,缓冲区管理程序首先在高速缓冲区中查找。如果相应的数据已经在缓冲去中,就无需从块设备上读取。如果不在,就发出读块设备命令,将数据独到高速缓冲区中。什么时候会把缓冲区与设备进行同步? 什么时候真正把数据写到设备中去。MINIX文件系统的布局,每一部分的作用?引导块:计算机加电启动时由ROM BIOS自动读入的执行代码和数据。超级块:存放盘设备上文件系统结构信息。i节点位图:说明i节点是否被使用,每个比特位代表一个i节点。逻辑块位图:描述盘上的每个数据盘块的使用情况,每个比特位代表盘上数据区中的一个数据盘块。i节点:记录每一个文件的控制信息,如文件的类型、访问权限、创建、修改和访问文件的时间、用户ID、组ID、文件的连接数、文件的大小和文件数据块在磁盘上的地址的一个数据结构。创建目录、删除目录以及搜索目录的过程?答:用sys_mkdir函数创建目录,传递目录的路径名和目录权限属性,成功返回0,否则返回负数。用sys_rmdir函数删除,传递目录名称。从根目录查找:/etc/config.txt1、找到根目录”/”的i节点(第1个i节点),通过i节点可以读出根目录的内容;2、在根目录文件内容中找到与etc名字匹配的目录项,从目录项中可以找到etc目录的i节点,通过此i节点可以读出etc目录的内容3、在etc目录文件内容中寻找与config.txt相匹配的目录项,从目录项中可以找到config.txt文件的i节点,从而知道config.txt的内容。从当前进程工作目录查找:./etc/config.txt1、找到进程工作目录的i节点(记录在进程描述符中),通过i节点可以读出工作目录的内容;2、在工作目录文件内容中找到与”.”名字匹配的目录项,从目录项中可以找到上级目录的i节点,通过此i节点可以读出上级目录的内容3、在上级目录文件内容中找到与etc名字匹配的目录项,从目录项中可以找到etc目录的i节点,通过此i节点可以读出etc目录的内容4、在etc目录文件内容中寻找与config.txt相匹配的目录项,从目录项中可以找到config.txt文件的i节点,从而知道config.txt的内容。读文件和写文件的过程?文件读函数file_read,读过程:根据i节点和文件表结构信息,从i节点指定的设备上读取当前读写位置对应的逻辑块;计算文件读写指针在数据块中的偏移值,比较该块中可读字节数和本次需读字节数比较,判断是否为最后一块数据;调整读写文件指针,复制数据到用户缓冲区buf中;重复读取数据块直到所需数据全部读完;修改该i节点的访问时间为当前时间。 文件写函数file_write,写过程:如果要向文件后添加数据,则将文件读写指针移动到文件尾部,若不是则把文件指针调整到当前读写位置,并更改i节点修改时间为当前时间;创建数据块号在设备上对应的逻辑块,根据该逻辑块号读取设备上相应的数据块;求可写字节数,与剩余还需写入的字节数比较,确定此次写入字节数c;文件读写指针前移c个字节,如果其位置超过了文件大小,则修改i节点中文件大小字段,并置i节点已修改标志;从用户缓冲区buf中复制c个字节到高速缓冲区中,然后释放该缓冲区;重复写入直到已写入字节数等于需要写入字节数,更改文件修改时间为当前时间。这些过程用到了哪些数据结构以及这些数据结构在过程中的作用?内存布局?mem_map数据结构的作用?mem_map描述物理内存页的占用状态,其值表示被占用的次数;数组的每一个数组元素记录每一页的分配次数。保护模式下虚拟地址到物理地址的转换过程?答:虚拟地址由段选择子和段内偏移组成。虚拟地址到线性地址:检查段选择子中的TI标志,找出段描述符所在的描述符表中,并到相应的寄存器中取得描述符表的基地址;把索引字段的值乘以8(段描述符大小),加上描述符表的基地址,得到段描述符;用段描述符中段的基地址加上虚拟地址中的偏移量,得到线性地址。线性地址到物理地址:用线性地址的高10位作为索引,查找页目录,得到页表的基地址;用线性地址的次高10位作为索引,从得到的页表基地址中查找,得到页框的基地址;用页框的基地址加线性地址后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 济南安全培训训练基地课件
- 安全培训考核评价体系课件
- 2025年嘉兴市秀洲区新城街道社区卫生服务中心招聘编外合同制5人考前自测高频考点模拟试题及1套参考答案详解
- 2025黑龙江哈尔滨工程大学智能科学与工程学院岗位招聘4人模拟试卷及答案详解(各地真题)
- 2025年福建省泉州市鲤城区属部分公办学校专项公开招聘编制内15人模拟试卷及答案详解(历年真题)
- 2025年武汉工程大学人才引进33人模拟试卷及答案详解(名校卷)
- 安全培训考核工作总结课件
- 安全培训考核实施细则课件
- 2025年陕西电力科隆发展有限责任公司招聘(1人)考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025广东江门新会区会城街道今古洲社区公益性岗位招聘1人考前自测高频考点模拟试题及参考答案详解
- GB/T 42695-2023纺织品定量化学分析木棉与某些其他纤维的混合物
- 某培训基地可行性研究报告
- YY/T 1617-2018血袋用聚氯乙烯压延薄膜
- GB/T 39965-2021节能量前评估计算方法
- 尿动力学检查操作指南2023版
- 五星领导人课件
- GB/T 22560-2008钢铁件的气体氮碳共渗
- 《大体积混凝土》课件
- 日本产业发展及文化讲义课件
- 中北大学火炮概论终极版
- 《建设工程文件归档规范》讲义课件
评论
0/150
提交评论