"《高级操作系统》2.第二章 Unix中的进程"
在操作系统领域,进程是执行中的程序实例,它代表了系统中资源分配和调度的基本单位。在Unix系统中,进程的概念尤为重要,因为Unix是多任务操作系统,能够同时处理多个进程。本章主要探讨了Unix系统中的进程概念、特性以及它们如何在系统中交互。
一、进程的引入原因与定义
Unix系统允许同一用户运行多个程序(PGM,Program),同时,多个用户也可以运行相同的程序。这种并发执行的方式分为单道和多道并发。多道并发是指内存中同时存放并运行多个程序,相比单道,它可以提高系统的资源利用率和效率。进程之间可能存在相互依赖和制约的关系,这在系统设计中需要考虑。
二、进程的特性
1. 进程是程序在特定数据集上的执行实例,具有动态性,因为它包含了硬件关联信息(如寄存器状态)、软件关联信息(如进程ID、优先级、运行时间等)以及虚拟地址空间。
2. 同一个程序在不同的数据集合上运行会生成不同的进程,而不同的程序在相同的数据集合上运行也是不同的进程。
3. 进程是系统资源分配和调度的基本单元,具有独立性。
三、Unix进程
在Unix中,进程被定义为程序的执行图像,包括存储器映像、CPU状态、打开文件的状态、当前工作目录等。进程控制块(PCB, Process Control Block)是记录进程状态和控制进程执行的关键数据结构,包含以下几个部分:
- proc基本控制块:存储所有进程共有的信息,无论进程是否正在执行。
- user扩充控制块:包含进程运行过程中需要查询的特定信息,如文件权限。
四、Unix中的特殊权限:SUID
Unix中的SUID(Set-User-ID)权限允许一个进程在执行时获得文件所有者的权限。例如,当一个进程P1执行具有SUID=1的程序时,P1的用户有效ID(effective UID)会被设置为该程序文件的所有者的真实用户ID(real UID)。这样,即使普通用户也能执行具有特殊权限的操作,如教师使用具有SUID的程序进行评分,学生在运行时可以获得教师的权限来访问特定文件。
五、进程状态与调度
- p-stat:记录进程的调度状态,指示进程当前是在就绪、运行还是阻塞状态。
- p-flag:表示进程的特征,如是否常驻内存、是否允许换出等。
- p-pri:进程的优先级,用于决定哪个进程应被调度执行。
总结,Unix中的进程管理是其强大功能的核心之一,它通过进程控制块、权限机制和调度策略确保了系统的高效并发执行。理解这些概念对于深入学习操作系统和Unix系统管理至关重要。