正在加载图片...
①静态部分:在进程的整个生命期中,系统级上下文的静态部分只有一个,其大小保持不 变,它由三部分组成:进程表项、U区和本进程区表项、系统区表项和页表 ②动态部分:在进程的整个生命期中,系统级上下文动态部分的数目是可变的。它包括 核心钱和若干层寄存器上下文。 4.进程控制 在 UNIX System V中,进程既是一个独立拥有资源的基本单位,又是一个独立调度的基 本单位。为了对进程进行控制,UNIX提供了一系列系统功能调用,用户可以利用它们来实现 创建一个进程"或"终止一个进程的执行”等功能。 用于对进程实施控制的主要系统调用有: (1)系统调用fork 在UNIX系统中,除了0进程外,其他所有进程都是被另一个进程利用fork创建的。0进 程是一个特殊的系统进程,它在系统引导时被创建的。系统初启时,0进程又创建1进程,此 后0进程就变为对换进程,而1进程就变为系统的始祖进程。UNIX利用fork为每个终端创建 个子进为用户服务,如等待用户登录、执行 shell命令执行程序等。此后,每个终端子进程 又可利用fork来创建它的子进程,从而可形成一棵进程树 (2)系统调用exec fork系统调用只是将父进程的上下文复制到新进程中,因此执行完fork时,父子进程具 有完全相同的正文区、数据区及用户校区。若要使新进程执行的程序不同于父进程,可以使用 exec系列系统功能调用。exec系列中的系统调用都完成同样的功能,它们把一个新的程序装 入调用进程的内存空间,以改变调用进程的执行代码,从而使调用进程执行新引入的程序功 能。如果exec调用成功,调用进程将被覆盖,然后从新引入程序的入口开始执行。这就产生了 个新进程,它的进程标识符与调用进程相同,但所执行的程序代码不同。这就是说,exec没 有建立一个与调用进程并发执行的新进程,而是用新进程取代了老进程。这一组系统调用的主 要差别在于给出参数的数目和形式不同,给出参数的形式有两种,一种是直接给出指向每个参 数的指针,另一种是给出指向参数表的指针。 (3)系统调用exit 对于一般的用户进程,在其任务完成后应尽快撤消。为了及时回收进程所占用的资源并减少父 进程的干预,UNIX系统利用exit来实现进程的自我终止。通常,父进程在创建子进程时,应在 子进程的末尾安排一条exit,使子进程自我终止。 (4)系统调用wait 系统调用wait用于将调用进程挂起,直至其子进程因暂停或终止而发来软中断信号为 止。如果在wait调用前,已有子进程暂停或终止,则调用进程作适当处理后便返回。 5.进程调度 UNIX系统是单纯的分时系统,因而未设置作业调度。对进程的调度采用多级反馈队列轮 转调度方式。相应地,在系统中便为就绪进程设置了多个就绪队列。调度程序在进行调度时, 总是先从最高优先级队列中取出排在队列最前面的进程。仅当最高优先级队列中没有进程时, 才从次高优先级队列中找出其队首进程,令它执行一个时间片后,又剥夺该进程的执行,然后 再从优先级最高的队列中取出下一个就绪进程投入运行 (1)进程优先级的分类 在UNIX系统中,进程的优先级分为两类:核心优先级(又分为可中断和不可中断两类优先 级)和用户优先级(又可分成n+1级,其中第0级为最高优先级,第n级的优先级最低)。 (2)优先级的计算 UNIX SystemⅤ中的用户优先级是可变的,它随着占用CPU时间的增加而降低。核心每隔1 秒钟便根据一个衰减函数来调整每个进程的最近CPU使用时间,并按下述公式对各进程重新①静态部分:在进程的整个生命期中,系统级上下文的静态部分只有一个,其大小保持不 变,它由三部分组成:进程表项、U 区和本进程区表项、系统区表项和页表。 ②动态部分:在进程的整个生命期中,系统级上下文动态部分的数目是可变的。它包括: 核心钱和若干层寄存器上下文。 4. 进程控制 在 UNIX System V 中,进程既是一个独立拥有资源的基本单位,又是一个独立调度的基 本单位。为了对进程进行控制,UNIX 提供了一系列系统功能调用,用户可以利用它们来实现 "创建一个进程"或"终止一个进程的执行"等功能。 用于对进程实施控制的主要系统调用有: (1)系统调用 fork 在 UNIX 系统中,除了 0 进程外,其他所有进程都是被另一个进程利用 fork 创建的。0 进 程是一个特殊的系统进程,它在系统引导时被创建的。系统初启时,0 进程又创建 1 进程,此 后 0 进程就变为对换进程,而 1 进程就变为系统的始祖进程。UNIX 利用 fork 为每个终端创建 一个子进为用户服务,如等待用户登录、执行 shell 命令执行程序等。此后,每个终端子进程 又可利用 fork 来创建它的子进程,从而可形成一棵进程树。 (2)系统调用 exec fork 系统调用只是将父进程的上下文复制到新进程中,因此执行完 fork 时,父子进程具 有完全相同的正文区、数据区及用户校区。若要使新进程执行的程序不同于父进程,可以使用 exec 系列系统功能调用。exec 系列中的系统调用都完成同样的功能,它们把一个新的程序装 入调用进程的内存空间,以改变调用进程的执行代码,从而使调用进程执行新引入的程序功 能。如果 exec 调用成功,调用进程将被覆盖,然后从新引入程序的入口开始执行。这就产生了 一个新进程,它的进程标识符与调用进程相同,但所执行的程序代码不同。这就是说,exec 没 有建立一个与调用进程并发执行的新进程,而是用新进程取代了老进程。这一组系统调用的主 要差别在于给出参数的数目和形式不同,给出参数的形式有两种,一种是直接给出指向每个参 数的指针,另一种是给出指向参数表的指针。 (3)系统调用 exit 对于一般的用户进程,在其任务完成后应尽快撤消。为了及时回收进程所占用的资源并减少父 进程的干预,UNIX 系统利用 exit 来实现进程的自我终止。通常,父进程在创建子进程时,应在 子进程的末尾安排一条 exit,使子进程自我终止。 (4)系统调用 wait 系统调用 wait 用于将调用进程挂起,直至其子进程因暂停或终止而发来软中断信号为 止。如果在 wait 调用前,已有子进程暂停或终止,则调用进程作适当处理后便返回。 5.进程调度 UNIX 系统是单纯的分时系统,因而未设置作业调度。对进程的调度采用多级反馈队列轮 转调度方式。相应地,在系统中便为就绪进程设置了多个就绪队列。调度程序在进行调度时, 总是先从最高优先级队列中取出排在队列最前面的进程。仅当最高优先级队列中没有进程时, 才从次高优先级队列中找出其队首进程,令它执行一个时间片后,又剥夺该进程的执行,然后, 再从优先级最高的队列中取出下一个就绪进程投入运行。 (1)进程优先级的分类 在 UNIX 系统中,进程的优先级分为两类:核心优先级(又分为可中断和不可中断两类优先 级)和用户优先级(又可分成 n+1 级,其中第 0 级为最高优先级,第 n 级的优先级最低)。 (2)优先级的计算 UNIX System V 中的用户优先级是可变的,它随着占用 CPU 时间的增加而降低。核心每隔 1 秒钟便根据一个衰减函数来调整每个进程的最近 CPU 使用时间,并按下述公式对各进程重新
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有