欢迎来到天天文库
浏览记录
ID:45196547
大小:918.50 KB
页数:96页
时间:2019-11-10
《计算机操作系(第10章)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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)存储器管理。(4)进程调
2、度。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。(1
3、0)P-Link指针。(11)指向U区进程正文、数据及栈在内存区域的指针。进程基本信息,常用,常驻,Proc表或结构2.U区(UArea)进程表项指针。(2)真正用户标识符u-ruid(realuserID)。(3)有效用户标识符u-euid(effectiveuserID)。(4)用户文件描述符表。(5)当前目录和当前根。(6)计时器。(7)内部I/O参数。(8)限制字段。(9)差错字段。(10)返回值。(11)信号处理数组。描述与控制进程的剩余部分,非常驻,私用,User区3.系统区表(SystemRegionTable
4、)区的类型和大小。(2)区的状态。(3)区在物理存储器中的位置。(4)引用计数。(5)指向文件索引结点的指针。一个进程的虚拟空间被分成:正文区、数据区、栈区、共享存储区。该表记录每个区的有关信息。4.本进程区表(PerProcessRegionTable)系统为每个进程配置一个进程区表,记录本进程的虚拟空间中每个区的起始虚地址和系统区表的表项指针。图10-2进程区表项、系统区表项和区的关系图10-3进程的数据结构10.2.2进程状态与进程映像1.进程状态图10-4进程的状态转换2.进程映像用户级上下文:正文区+数据区2)寄
5、存器上下文:程序寄存器。(2)处理机状态寄存器(PSR)。(3)栈指针。(4)通用寄存器。3)系统级上下文:OS为管理进程所需信息静态部分:进程表项、U区、进程区表项,系统区表项和页表。(2)动态部分:核心栈(核心态的栈)+若干寄存器上下文。10.2.3进程控制1.fork系统调用为新进程分配一个进程表项和进程标识符。(2)检查同时运行的进程数目。(3)拷贝进程表项中的数据。(4)子进程继承父进程的所有文件。(5)为子进程创建进程上下文。(6)子进程执行。2.exec系统调用图10-5execⅤ的参数组织方式3.exit系统
6、调用通常,父进程在创建子进程时,应在进程的末尾安排一条exit,使子进程能自我终止。内核须为exit完成以下操作:(1)关闭软中断。(2)回收资源。(3)写记账信息。(4)置进程为“僵死”状态。4.wait系统调用wait系统调用用于将调用进程挂起,直至其子进程因暂停或终止而发来软中断信号为止。如果在wait调用前,已有子进程暂停或终止,则调用进程做适当处理后便返回。核心对wait调用做以下处理:核心查找调用进程是否还有子进程,若无,便返回出错码;如果找到一个处于“僵死”状态的子进程,便将子进程的执行时间加到其父进程的执行
7、时间上,并释放该子进程的进程表项;如果未找到处于“僵死”状态的子进程,则调用进程便在可被中断的优先级上睡眠,等待其子进程发来软中断信号时被唤醒。10.2.4进程调度与切换1.引起进程调度的原因首先,由于UNIX系统是分时系统,因而其时钟中断处理程序须每隔一定时间,便对要求进程调度程序进行调度的标志runrun予以置位,以引起调度程序重新调度。其次,当进程执行了wait、exit及sleep等系统调用后要放弃处理机时,也会引起调度程序重新进行调度。此外,当进程执行完系统调用功能而从核心态返回到用户态时,如果系统中又出现了更高
8、优先级的进程在等待处理机时,内核应抢占当前进程的处理机,这也会引起调度。2.调度算法进程调度,在此是采用动态优先数轮转调度算法。调度程序在进行调度时,首先从处于“内存就绪”或“被抢占”状态的进程中,选择一个其优先数最小(优先级最高)的进程。若此时系统中(同时)有多个进程都具有相同的最高优先
此文档下载收益归作者所有