3.exit系统调用通常,父进程在创建子进程时,应在进程的末尾安排一条exit,使子进程能自我终止。内核须为exit完成以下操作:1关闭软中断回收资源写记账信息置进程为“僵死”状态X
3. exit系统调用 通常,父进程在创建子进程 时,应在进程的末尾安排一条 exit,使子进程能自我终止。内 核须为exit – (1) 关闭软中断 – (2) 回收资源 – (3) 写记账信息 – (4) 置进程为“僵死”状态
4.wait系统调用wait系统调用用于将调用进程挂起,直至其子进程因暂停或终止而发来软中断信号为止。如果在wait调用前,已有子进程暂停或终止,则调用进程做适当处理后便返回。核心对wait调用做以下处理:核心查找调用进程是否还有子进程若无,便返回出错码;如果找到一个处于“僵死状态的子进程,便将子进程的执行时间加到其父进程的执行时间上,并释放该子进程的进程表项;如果未找到处于“僵死”状态的子进程则调用进程便在可被中断的优先级上睡眠,等待其子进程发来软中断信号时被唤醒
4. wait系统调用 wait系统调用用于将调用进程挂起, 直至 其子进程因暂停或终止而发来软中断信号为止。 如果在wait调用前,已有子进程暂停或终止,则 调用进程做适当处理后便返回。核心对wait调用 做以下处理:核心查找调用进程是否还有子进程, 若无,便返回出错码;如果找到一个处于“僵死” 状态的子进程,便将子进程的执行时间加到其父 进程的执行时间上, 并释放该子进程的进程表 项; 如果未找到处于“僵死”状态的子进程, 则调用进程便在可被中断的优先级上睡眠,等待 其子进程发来软中断信号时被唤醒
10.2.4进程调度与切换1.引起进程调度的原因首先,由于UNIX系统是分时系统,因而其时钟中断处理程序须每隔一定时间,便对要求进程调度程序进行调度的标志runrun予以置位,以引起调度程序重新调度。其次,当进程执行了wait、exit及sleep等系统调用后要放弃处理机时,也会引起调度程序重新进行调度。此外,当进程执行完系统调用功能而从核心态返回到用户态时,如果系统中又出现了更高优先级的进程在等待处理机时,内核应抢占当前进程的处理机,这也会引起调度
10.2.4 进程调度与切换 1. 引起进程调度的原因 首先,由于UNIX系统是分时系统,因而其时 钟中断处理程序须每隔一定时间,便对要求进程 调度程序进行调度的标志runrun予以置位,以引 起调度程序重新调度。其次,当进程执行了wait、 exit及sleep等系统调用后要放弃处理机时, 也 会引起调度程序重新进行调度。此外,当进程执 行完系统调用功能而从核心态返回到用户态时, 如果系统中又出现了更高优先级的进程在等待处 理机时,内核应抢占当前进程的处理机, 这也 会引起调度
2.调度算法进程调度,在此是采用动态优先数轮转调度算法。调度程序在进行调度时,首先从处于“内存就绪”或“被抢占”状态的进程中,选择一个其优先数最小(优先级最高)的进程若此时系统中(同时)有多个进程都具有相同的最高优先级,则内核将选择其中处于就绪状态或被抢占状态最久的进程,将它从其所在队列恢复其中移出,并进行进程上下文的切换,运行
进程调度,在此是采用动态优先数轮转 调度算法。调度程序在进行调度时,首先从处 于“内存就绪”或“被抢占”状态的进程中, 选择一个其优先数最小(优先级最高)的进程。 若此时系统中(同时)有多个进程都具有相同的 最高优先级,则内核将选择其中处于就绪状态 或被抢占状态最久的进程,将它从其所在队列 中移出,并进行进程上下文的切换, 恢复其 运行。 2. 调度算法
3.进程优先级的分类UNIX系统把进程的优先级分成两类,第一类是核心优先级,文可进一步把它分为可中断和不可中断两种。当一个软中断信号到达时,若有进程正在可中断优先级上睡眠,该进程将立即被唤醒;若有进程处于不可中断优先级上,则该进程继续睡眠。对诸如“对换”、“等待磁盘I/O”、“等待缓冲区”等几个优先级,都属于不可中断优先级;而“等待输入”“等待终端输出”、“等待子进程退出”的几个优先级,都是可中断优先级。另一类是用户优先级,它又被分成n+1级,其中第0级为最高优先级,第n级的优先级最低
UNIX系统把进程的优先级分成两类,第一类是核 心优先级,又可进一步把它分为可中断和不可中断两 种。当一个软中断信号到达时,若有进程正在可中断 优先级上睡眠,该进程将立即被唤醒;若有进程处于 不可中断优先级上,则该进程继续睡眠。对诸如“对 换”、“等待磁盘I/O”、“等待缓冲区”等几个优 先级,都属于不可中断优先级;而“等待输入”、 “等待终端输出”、“等待子进程退出”的几个优先 级, 都是可中断优先级。另一类是用户优先级,它 又被分成n+1级, 其中第0级为最高优先级,第n级的 优先级最低。 3.进程优先级的分类