您现在的位置:学赛首页 > 研究生院 > 软件学院 > 正文
操作系统课程第三章-进程和线程的描述与控制[6]
http://www.educity.cn 作者:研究生院 来源:学赛网 2008年4月16日 发表评论 进入社区

  一个进程可以包含一个或多个线程。

  进程间通信必须使用OS提供的进程间通信机制,而同一进程的线程间可以通过直接读写来通信。

  线程的优点

  创建时间:在已有进程中创建一个新线程比创建一个新进程快。

  终止时间:终止一个线程比终止一个进程快。

  切换时间:同一进程中线程的切换比进程间切换快。

  通信效率:同一进程中线程的通信快。

  4.用户级线程和内核级线程

  线程的类型:

  内核级线程:是指依赖于内核,由操作系统内核完成创建、撤消和切换的线程。

  用户级线程:是指不依赖于操作系统核心,由应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制的线程。

  线程的调度与切换速度:内核级线程的调度与切换与进程类似,但开销小些;用户级线程切换无需进入内核,因而切换快。

  4.用户级线程和内核级线程(续)

  系统调用:内核级线程调用系统调用时,OS将其看成是该线程的行为,因而阻塞该线程;而用户级线程调用系统调用时,OS将其看成整个进程的行为,若阻塞则阻塞整个进程。

  线程执行时间:在只有用户级线程的系统中,调度以进程为单位,若进程内线程多则执行时间相对少;内核级线程系统中,调度以线程为单位。

  适应性:用户级线程可以在任何操作系统中运行,但内核级线程只能在支持它的OS中运行。

  UNIX的进程描述(P245)

  在UNIX系统中,采用了段页式存储管理方式(在UNIX中将段称为区),因此一个进程实体由若干个区组成,包括程序区、数据区、栈区等。每个区又可分为若干页。

  进程描述的数据结构

  为了实施对进程的有效管理,操作系统为每个进程设置了一个PCB。在UNIX System Ⅴ中,将PCB分成进程表项和U区(又称proc结构和user结构)两部分。除进程表项和U区外,管理进程的数据结构还有本进程区表和系统区表。

  进程表项

  状态字段用于标识进程的状态。

  若干用户标识号,简称UID或用户ID。

  若干进程标识号,简称PID或进程ID。

  存储区位置和长度。

  调度参数,包括优先数等。

  软中断信号域。

  各种计时域,给出进程执行时间和系统资源的利用情况。

  指向U区的指针,指向与进程表项对应的U区。

  事件描述域,记录使进程进入睡眠状态的事件。

  U区

  指向进程表项的指针,指出对应于该U区的进程表项。

  真正用户标识符及有效用户标识符。

  用户文件描述符表,记录进程已打开的文件。

  当前目录和当前根,描述进程的文件系统环境。

  计时器域,记录进程及其后代运行所用的时间。

  一些输入/输出参数。描述要传输的数据量,源或目的数据地址等。

  限制域,指出进程的大小及它能“写”的文件大小限制。

  出错域,记录系统调用执行期间所发生的错误。

  返回值域,指出系统调用的返回结果。

  信号处理数组,指出进程接收到软中断信号时的处理方式。

  系统区表

  UNIX System Ⅴ把一个进程的虚地址空间划分为正文区、数据区、栈区等。系统设置区表对区进行管理,区表主要包含以下信息:

  区的类型和大小。指明区的类型为正文、数据或栈。

[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]