一个进程可以包含一个或多个线程 进程间通信必须使用OS提供的进程间通信机制而同一进程的线程间可以通过直接读写来通信 线程的优点 创建时间在已有进程中创建一个新线程比创建一个新进程快 终止时间终止一个线程比终止一个进程快 切换时间同一进程中线程的切换比进程间切换快 通信效率同一进程中线程的通信快 用户级线程和内核级线程 线程的类型 内核级线程是指依赖于内核由操作系统内核完成创建撤消和切换的线程 用户级线程是指不依赖于操作系统核心由应用进程利用线程库提供创建同步调度和管理线程的函数来控制的线程 线程的调度与切换速度内核级线程的调度与切换与进程类似但开销小些;用户级线程切换无需进入内核因而切换快 用户级线程和内核级线程(续) 系统调用内核级线程调用系统调用时OS将其看成是该线程的行为因而阻塞该线程;而用户级线程调用系统调用时OS将其看成整个进程的行为若阻塞则阻塞整个进程 线程执行时间在只有用户级线程的系统中调度以进程为单位若进程内线程多则执行时间相对少;内核级线程系统中调度以线程为单位 适应性用户级线程可以在任何操作系统中运行但内核级线程只能在支持它的OS中运行 UNIX的进程描述(P) 在UNIX系统中采用了段页式存储管理方式(在UNIX中将段称为区)因此一个进程实体由若干个区组成包括程序区数据区栈区等每个区又可分为若干页 进程描述的数据结构 为了实施对进程的有效管理操作系统为每个进程设置了一个PCB在UNIX System Ⅴ中将PCB分成进程表项和U区(又称proc结构和user结构)两部分除进程表项和U区外管理进程的数据结构还有本进程区表和系统区表 进程表项 状态字段用于标识进程的状态 若干用户标识号简称UID或用户ID 若干进程标识号简称PID或进程ID 存储区位置和长度 调度参数包括优先数等 软中断信号域 各种计时域给出进程执行时间和系统资源的利用情况 指向U区的指针指向与进程表项对应的U区 事件描述域记录使进程进入睡眠状态的事件 U区 指向进程表项的指针指出对应于该U区的进程表项 真正用户标识符及有效用户标识符 用户文件描述符表记录进程已打开的文件 当前目录和当前根描述进程的文件系统环境 计时器域记录进程及其后代运行所用的时间 一些输入/输出参数描述要传输的数据量源或目的数据地址等 限制域指出进程的大小及它能写的文件大小限制 出错域记录系统调用执行期间所发生的错误 返回值域指出系统调用的返回结果 信号处理数组指出进程接收到软中断信号时的处理方式 系统区表 UNIX System Ⅴ把一个进程的虚地址空间划分为正文区数据区栈区等系统设置区表对区进行管理区表主要包含以下信息 区的类型和大小指明区的类型为正文数据或栈 [] [] [] [] [] [] [] [] [] |