操作系统学习-进程管理

本文详述了操作系统中的进程管理,包括进程的基本概念、状态(就绪、阻塞、挂起)及其转换,进程控制(创建、终止、阻塞、唤醒、挂起和激活),进程同步(信号量机制、经典同步问题)以及进程通信。文章通过实例解释了如何利用信号量解决生产者-消费者问题、哲学家就餐问题和读者-写者问题。
摘要由CSDN通过智能技术生成

作者:YouChuang

本文主要是最近重新学习《计算机操作系统》教材时的一些笔记和思考:进程管理



进程基本概念

进程由来

  • 程序顺序执行时的特征
    顺序封闭可再现

  • 程序并发执行时的特征
    共享资源
    间断性,会出现暂停
    失去封闭性
    不可再现性

为使程序能并发执行,且为了对并发执行的程序加以描述和控制,人们引入了“进程”的概念。

  • 进程控制块
    为使程序(含数据)能独立运行,应为之配置一进程控制块,即PCB(Process Control Block);而由程序段、相关的数据段和PCB三部分便构成了进程实体。

  • 进程与程序
    进程的实质是进程实体的一次执行过程,因此,动态性是进程的最基本的特征。动态性还表现在:“它由创建而产生,由调度而执行,由撤消而消亡”。可见,进程实体有一定的生命期,而程序则只是一组有序指令的集合,并存放于某种介质上,其本身并不具有运动的含义,因而是静态的。

进程状态

  • 就绪状态
    当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态,进程已获得CPU,其程序正在执行。

  • 阻塞状态
    正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即进程的执行受到阻塞,把这种暂停状态称为阻塞状态,有时也称为等待状态或封锁状态。

  • 挂起状态
    引入挂起状态的原因有:
    (1) 终端用户的请求。当终端用户在自己的程序运行期间发现有可疑问题时,希望暂时使自己的程序静止下来。亦即,使正在执行的进程暂停执行;若此时用户进程正处于就绪状态而未执行,则该进程暂不接受调度,以便用户研究其执行情况或对程序进行修改。我们把这种静止状态称为挂起状态。
    (2) 父进程请求。有时父进程希望挂起自己的某个子进程,以便考查和修改该子进程,或者协调各子进程间的活动。
    (3) 负荷调节的需要。当实时系统中的工作负荷较重,已可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统能正常运行。
    (4) 操作系统的需要。操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账

带有挂起状态的进程状态转换图

  • 引入创建状态,是为了保证进程的调度必须在创建工作完成后进行,以确保对进程控制块操作的完整性。同时,创建状态的引入,也增加了管理的灵活性,操作系统可以根据系统性能或主存容量的限制,推迟创建状态进程的提交。对于处于创建状态的进程,获得了其所必需的资源,以及对其PCB初始化工作完成后,进程状态便可由创建状态转入就绪

进程的五种基本状态及转换

  • 创建→活动就绪:在当前系统的性能和内存的容量均允许的情况下,完成对进程创建的必要操作后,相应的系统进程将进程的状态转换为活动就绪状态

  • 创建→静止就绪:考虑到系统当前资源状况和性能要求,并不分配给新建进程所需资源,主要是主存资源,相应的系统进程将进程状态转为静止就绪状态,对换到外存,不再参与调度,此时进程创建工作尚未完成。

具有创建、终止和挂起状态的进程状态图

  • 进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的
    PCB是进程存在的惟一标志。
    因为PCB经常被系统访问,尤其是被运行频率很高的进程及分派程序访问,故PCB应常驻内存。系统将所有的PCB组织成若干个链表(或队列),存放在操作系统中专门开辟的 PCB 区内。例如在 Linux 系统中用task_struct数据结构来描述每个进程的进程控制块,在 Windows操作系统中则使用一个执行体进程块(EPROCESS)来表示进程对象的基本属性。

  • 进程标识符 进程标识符用于惟一地标识一个进程。
    一个进程通常有两种标识符:
    内部标识符。在所有的操作系统中,都为每一个进程赋予了一个惟一的数字标识符,它通常是一个进程的序号。设置内部标识符主要是为了方便系统使用。
    外部标识符。

  • 处理机状态信息主要是由处理机的各种寄存器中的内容组成的。处理机在运行时,许多信息都放在寄存器中。当处理机被中断时,所有这些信息都必须保存在 PCB中,以便在该进程重新执行时,能从断点继续执行。
    寄存器包括:
    ① 通用寄存器,又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息,在大多数处理机中,有 8~32 个通用寄存器,在 RISC 结构的计算机中可超过 100 个;
    ② 指令计数器,其中存放了要访问的下一条指令的地址;
    ③ 程序状态字PSW,其中含有状态信息,如条件码、执行方式、中断屏蔽标志等;
    ④ 用户栈指针,指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址,栈指针指向该栈的栈顶。

  • 进程调度信息在PCB中还存放一些与进程调度和进程对换有关的信息,包括:
    ① 进程状态,指明进程的当前状态,作为进程调度和对换时的依据; <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值