13.5.3 u区



13.5.3  u区

u区包括与进程相关的内容。它可以是进程表自身的一部分,但要单独维护,因为这部分可以在上下文切换的时候和进程镜像进行交换。内存仍保留该进程在进程表中的条目,因为对于进程调度和控制以及决定交换进程的时间而言,该信息必不可少。u区包括以下字段:

(1) 指针:指向该进程对应进程表中的条目。为避免混乱,图中并没有给出该指针。

(2) 真实有效的用户ID:指明进程的权限,如文件访问权限。

(3) 控制终端:该字段确定与进程相关的"逻辑终端"。

(4) 计时器:该字段分别指明进程在用户模式和内核模式下的运行时间。

(5) 队列:指明进程想要响应不同信号的方式。当该进程对应的信号到达时,查询队列并采取适当的动作。

(6) 当前目录和当前根目录:描述进程所处的文件系统环境。当用户想要从一个目录转换到另一个目录时,从本质上讲,这个字段被改动。同样还要使用该字段由相对路径名连接后构造绝对路径名。

(7) 用户文件描述符:该表维护进程用不同模式打开的文件,前面已经介绍过。

(8) 权限:该字段帮助进程在创建文件时设置权限掩码位。它表示u区中的这些权限位可被用作以"Creat"系统调用作为参数提供的这些权限位的掩码。最终将这些结果权限位设置为该文件索引节点中的权限。因此,该进程创建或打开的所有文件根据掩码可以拒绝某种权限。

(9) 最大值:该字段限制进程的大小以及进程可以写的文件的大小。

(10) I/O参数:该参数指明源地址/目标地址,要传送的数据量等。通常,它们保存内存地址和作为文件偏移量的相对字节数(RBN)。这个参数的含义在讨论系统调用的时候已经讨论过,这里不再介绍。

(11) 返回值:该字段存储系统调用产生的结果。

(12) 错误:该字段记录该进程提交的系统调用在执行期间遇到的错误。准确含义在前面讨论系统调用的时候就已经讨论过,这里不再介绍。

(10)、(11)、(12)实际上是在u区中预留给系统调用执行的工作区。有一个分隔的区域包括存储系统调用需要使用的参数(10),这个参数可在u区和堆栈之间传递参数。有一个区域包括存储系统调用产生的结果(11),和一个存储错误代码(12)的区域,错误代码(12)是在系统调用执行期间出现错误。然后,内核解释出现的错误代码,并采取相应的动作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值