欢迎来到天天文库
浏览记录
ID:26956122
大小:892.00 KB
页数:96页
时间:2018-11-30
《《系统内核结构》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十章UNIX系统内核结构10.1UNIX系统概述10.2进程的描述和控制10.3进程的同步与通信10.4存储器管理10.5设备管理10.6文件管理10.1UNIX系统概述10.1.1UNIX系统的发展史1.UNIX系统的发展2.两大集团对峙3.网络操作系统UNIX10.1.2UNIX系统的特征开放性2)多用户、多任务环境3)功能强大,实现高效4)提供了丰富的网络功能5)支持多处理器功能10.1.3UNIX系统的内核结构图10-1UNIX核心的框图1.进程控制子系统进程控制。(2)进程通信。(3)存储器管理。(
2、4)进程调度。2.文件子系统文件管理。(2)高速缓冲机制。(3)设备驱动程序。10.2进程的描述和控制10.2.1进程控制块PCB在UNIX系统Ⅴ中,把进程控制块分为四部分:(1)进程表项。(2)U区。(3)进程区表。(4)系统区表。1.进程表项(ProcessTableEntry)进程标识符(PID)。(2)用户标识符(UID)。(3)进程状态。(4)事件描述符。(5)进程和U区在内存或外存的地址。(6)软中断信息。(7)计时域。(8)进程的大小。(9)偏置值nice。(10)P-Link指针。(11)
3、指向U区进程正文、数据及栈在内存区域的指针。2.U区(UArea)进程表项指针。(2)真正用户标识符u-ruid(realuserID)。(3)有效用户标识符u-euid(effectiveuserID)。(4)用户文件描述符表。(5)当前目录和当前根。(6)计时器。(7)内部I/O参数。(8)限制字段。(9)差错字段。(10)返回值。(11)信号处理数组。3.系统区表(SystemRegionTable)区的类型和大小。(2)区的状态。(3)区在物理存储器中的位置。(4)引用计数。(5)指向文件索引结点的指针。4
4、.本进程区表(PerProcessRegionTable)图10-2进程区表项、系统区表项和区的关系图10-3进程的数据结构10.2.2进程状态与进程映像1.进程状态图10-4进程的状态转换2.进程映像用户级上下文2)寄存器上下文程序寄存器。(2)处理机状态寄存器(PSR)。(3)栈指针。(4)通用寄存器。3)系统级上下文静态部分。(2)动态部分。10.2.3进程控制1.fork系统调用为新进程分配一个进程表项和进程标识符。(2)检查同时运行的进程数目。(3)拷贝进程表项中的数据。(4)子进程继承父进程的所有文件
5、。(5)为子进程创建进程上下文。(6)子进程执行。2.exec系统调用图10-5execⅤ的参数组织方式3.exit系统调用通常,父进程在创建子进程时,应在进程的末尾安排一条exit,使子进程能自我终止。内核须为exit完成以下操作:(1)关闭软中断。(2)回收资源。(3)写记账信息。(4)置进程为“僵死”状态。4.wait系统调用wait系统调用用于将调用进程挂起,直至其子进程因暂停或终止而发来软中断信号为止。如果在wait调用前,已有子进程暂停或终止,则调用进程做适当处理后便返回。核心对wait调用做以下处理
6、:核心查找调用进程是否还有子进程,若无,便返回出错码;如果找到一个处于“僵死”状态的子进程,便将子进程的执行时间加到其父进程的执行时间上,并释放该子进程的进程表项;如果未找到处于“僵死”状态的子进程,则调用进程便在可被中断的优先级上睡眠,等待其子进程发来软中断信号时被唤醒。10.2.4进程调度与切换1.引起进程调度的原因首先,由于UNIX系统是分时系统,因而其时钟中断处理程序须每隔一定时间,便对要求进程调度程序进行调度的标志runrun予以置位,以引起调度程序重新调度。其次,当进程执行了wait、exit及sle
7、ep等系统调用后要放弃处理机时,也会引起调度程序重新进行调度。此外,当进程执行完系统调用功能而从核心态返回到用户态时,如果系统中又出现了更高优先级的进程在等待处理机时,内核应抢占当前进程的处理机,这也会引起调度。2.调度算法进程调度,在此是采用动态优先数轮转调度算法。调度程序在进行调度时,首先从处于“内存就绪”或“被抢占”状态的进程中,选择一个其优先数最小(优先级最高)的进程。若此时系统中(同时)有多个进程都具有相同的最高优先级,则内核将选择其中处于就绪状态或被抢占状态最久的进程,将它从其所在队列中移出,并进行进程
8、上下文的切换,恢复其运行。3.进程优先级的分类UNIX系统把进程的优先级分成两类,第一类是核心优先级,又可进一步把它分为可中断和不可中断两种。当一个软中断信号到达时,若有进程正在可中断优先级上睡眠,该进程将立即被唤醒;若有进程处于不可中断优先级上,则该进程继续睡眠。对诸如“对换”、“等待磁盘I/O”、“等待缓冲区”等几个优先级,都属于不可中断优先级;而“
此文档下载收益归作者所有