第十章UNIX糸统内核结枸 2.exec系统调用 文件名字符串 参数字符串 trap ath 0 arg v arg 2p arg ip arg up 图10-5 exec V的参数组织方式
第十章 UNIX系统内核结构 2. exec系统调用 trap path arg v arg 2p arg 1p arg 0p 0 文 件 名 字 符 串 参 数 字 符 串 图 10-5 exec Ⅴ的参数组织方式
第十章UNIX糸统内核结枸 3.exit系统调用 通常,父进程在创建子进程时,应在进程的末尾安排 一条exit,使子进程能自我终止。内核须为exit完成以下操 作 (1)关闭软中断。 (2)回收资源 (3)写记账信息。 (4)置进程为“僵死”状态
第十章 UNIX系统内核结构 3. exit系统调用 通常,父进程在创建子进程时,应在进程的末尾安排 一条exit,使子进程能自我终止。内核须为exit完成以下操 (1) 关闭软中断。 (2) 回收资源。 (3) 写记账信息。 (4) 置进程为“僵死”状态
第十章UNIX糸统内核结枸 4.wait系统调用 wait系统调用用于将调用进程挂起,直至其子进程因暂 停或终止而发来软中断信号为止。如果在wai调用前,已有 子进程暂停或终止,则调用进程做适当处理后便返回。核心 对wait调用做以下处理:核心査找调用进程是否还有子进程, 若无,便返回出错码;如果找到一个处于“僵死”状态的子 进程,便将子进程的执行时间加到其父进程的执行时间上, 并释放该子进程的进程表项;如果未找到处于“僵死”状 态的子进程,则调用进程便在可被中断的优先级上睡眠,等 待其子进程发来软中断信号时被唤醒
第十章 UNIX系统内核结构 4. wait系统调用 wait系统调用用于将调用进程挂起, 直至其子进程因暂 停或终止而发来软中断信号为止。如果在wait调用前,已有 子进程暂停或终止,则调用进程做适当处理后便返回。核心 对wait调用做以下处理:核心查找调用进程是否还有子进程, 若无,便返回出错码;如果找到一个处于“僵死”状态的子 进程,便将子进程的执行时间加到其父进程的执行时间上, 并释放该子进程的进程表项; 如果未找到处于“僵死”状 态的子进程,则调用进程便在可被中断的优先级上睡眠,等 待其子进程发来软中断信号时被唤醒
第十章UNIX糸统内核结枸 1024进程调度与切换 1.引起进程调度的原因 首先,由于UNIX系统是分时系统,因而其时钟中断处理 程序须每隔一定时间,便对要求进程调度程序进行调度的标 志 runrun予以置位,以引起调度程序重新调度。其次,当进程 执行了wat、ext及slep等系统调用后要放弃处理机时,也会 引起调度程序重新进行调度。此外,当进程执行完系统调用 功能而从核心态返回到用户态时,如果系统中又出现了更高 优先级的进程在等待处理机时,内核应抢占当前进程的处理 机,这也会引起调度
第十章 UNIX系统内核结构 10.2.4 进程调度与切换 1. 首先,由于UNIX系统是分时系统,因而其时钟中断处理 程序须每隔一定时间,便对要求进程调度程序进行调度的标 志runrun予以置位,以引起调度程序重新调度。其次,当进程 执行了wait、exit及sleep等系统调用后要放弃处理机时, 也会 引起调度程序重新进行调度。此外,当进程执行完系统调用 功能而从核心态返回到用户态时,如果系统中又出现了更高 优先级的进程在等待处理机时,内核应抢占当前进程的处理 机, 这也会引起调度
第十章UNIX糸统内核结枸 2.调度算法 进程调度,在此是采用动态优先数轮转调度算法 调度程序在进行调度时,首先从处于“内存就绪”或 “被抢占”状态的进程中,选择一个其优先数最小(优先 级最高)的进程。若此时系统中(同时)有多个进程都具有 相同的最高优先级,则内核将选择其中处于就绪状态或 被抢占状态最久的进程,将它从其所在队列中移出,并 进行进程上下文的切换,恢复其运行
第十章 UNIX系统内核结构 2. 调度算法 进程调度,在此是采用动态优先数轮转调度算法。 调度程序在进行调度时,首先从处于“内存就绪”或 “被抢占”状态的进程中,选择一个其优先数最小(优先 级最高)的进程。若此时系统中(同时)有多个进程都具有 相同的最高优先级,则内核将选择其中处于就绪状态或 被抢占状态最久的进程,将它从其所在队列中移出,并 进行进程上下文的切换, 恢复其运行