进程管理

1.进程概念

  • 为了描述程序在并发执行时对系统资源的共享,我们需要一个描述程序执行时动态特征的概念,这就是进程

  • 在执行中的程序

  • 一个具有一定独立功能的程序在一数据集合上的一次动态执行过程

  • 引入多进程,提高了对硬件资源的利用率,但又带来了额外的空间和时间开销,增加了OS复杂性

2.进程与程序

  • 进程是动态的,程序是静态的

    • 程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件,静态和可以复制

  • 进程是暂时的,程序是永久的

    • 进程是一个状态变化的过程,程序可长久保存

  • 进程与程序的组成不同

    • 进程的组成包括程序,数据和进程控制块(即进程状态信息)

  • 进程与程序的对应关系

    • 通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序

3.进程的特征

  • 结构特征:进程实体=程序段+相关的数据段+PCB

  • 动态性:进程实质是进程实体的以此执行过程,因此动态性是进程的最基本特征

  • 并发性:多个进程实体同存于内存中,且能在一段时间内同时运行。是最重要的特征

  • 独立性:指进程实体是一个能独立运行,独立分配资源和独立接受调度的基本单位

  • 异步性:进程按各自独立的,不可预知的速度向前推进

4.进程描述

进程存在意味着

  • 处于某种状态(运行,就绪,等待)

  • 进程控制块PCB(数据结构)

  • 进程的执行程序(一个可执行文件)

  • 进程位于某个队列(就绪,等待某事件队列)

  • 占用某些系统资源(内存,打开某些文件,处理机,外设)

5.进程状态

进程执行时,改变状态

  • 新建:在创建进程,OS已完成为创建一进程所必要的工作,还没有允许执行该进程

  • 就绪:进程等待分配处理机,存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU,就立即可以运行(多个进程出于此状态)

  • 运行:指令在运行,当进程有调度/分配程序分配后,得到CPU控制权,它的程序正在执行(在系统中,总只有一个进程处于此状态)

  • 等待:进程等待某些事件发生(如等待I/O的完成),而暂停执行,即使给它CPU时间,它也无法执行

  • 终止:进程执行完毕


6.进程控制块

  • 一个专门的数据结构,系统用它来记录进程的外部特征,描述进程的运动变化过程

  • PCB是进程管理和控制的最重要的数据结构,在创建进程时,建立PCB,并伴随进程运行的全过程,直到进程撤销而撤销

  • PCB是系统感知进程存在的唯一标识,进程与PCB是一一对应的

  • PCB经常被系统访问,如,调度程序,资源分配程序,中断处理程序等,所以PCB应常驻内存

包含与进程有关信息:进程状态,程序计数器,CPU寄存器,CPU调度信息,内存管理信息,计账信息,I/O状态信息。

7.PCB的组织方式

PCB表:系统把PCB组织在一起,并放在内存的固定区域,就构成了PCB表

PCB表的个数决定了系统中最多可同时存在的进程个数,称为系统的并发度

PCB表的组织方式:链接方式 索引方式

8.进程调度队列

  • 作业队列:在系统中的所有进程的集合

  • 就绪队列:在主存中的,就绪等待执行的所有进程的集合

  • 设备队列:等待某一I/O设备的进程队列

调度就是在各种队列之间进程的迁移。

  • 长程调度(作业调度):从外存上选择作业进入内存中
  • 短程队列(CPU调度):选择可被下一个执行并分配CPU的进程
  • 中程调度:为了缓和内存紧张的情况,将内存中处于阻塞状态的进程换至外存上(挂起),降低多道程序的度。当这些进程重新具备运行条件时,再从外存上调入内存
  • 上下文切换:当CPU切换至另一个进程时,系统必须保存旧进程状态并为新进程调入所保留的状态,上下文切换的时间开销较重,在切换时,系统没有做有用的工作

9.进程操作

  • 进程是有生命周期的:产生,运行,暂停,终止。对进程的这些操作叫进程控制

  • 进程控制的职责是对系统中进程实施有效的管理,它是CPU管理的的一部分(还有进程同步,通信和调度)

  • 当系统允许多进程并发执行时,为了实现共享,协调并发进程的关系,处理机管理必须对进程实行有效的管理

进程何时创建?

  • 作业调度:批处理系统中,作业调度程序调度到某个作业以后,就把这个作业装入内存,并分配必要的资源,创建进程,插入就绪队列

  • 用户登录:在分时系统中,用户在终端键入登录命令后,若是合法用户,系统建立一个进程,并插入就绪队列

  • 提供服务:用户向系统提出请求后,系统专门建立一个进程为用户服务(如打印请求)

  • 应用请求:应用进程的需要,由它自己创建一个新进程,使新进程以并发运行方式完成特定任务(输入数据并将处理结果输出到表格上)

进程创建需要注意的问题

  • 资源共享

    • 父进程子进程共享所有资源

    • 子进程共享父进程资源的子集

    • 父进程和子进程无资源共享

  • 执行

    • 父进程和子进程并发执行

    • 父进程等待,直到子进程终止

  • 地址空间

    • 子女复制双亲(子进程和父进程的地址空间一样)

    • 子女有一个程序被调入(子进程和父进程的地址空间不一样)

10.线程

进程具有两个基本属性

  • 是一个拥有资源的独立单位:它可独立分配虚地址空间,主存和其它

  • 又是一个可独立调度和分配的基本单位

这两个基本属性市进程成为并发执行的基本单位

由于进程是一个资源拥有者,因而在创建,撤销,调度切换时,系统需要付出较大的时空开销。进程的数目不宜过多,进程切换频率不宜过高,限制了并发程序,引入线程以小的开销来提高进程内的并发程度,线程引入后,线程作为CPU的调度单位,而进程只作为其他资源分配单位

线程:

  • 只拥有必不可少的资源,如:线程状态,程序计数器,寄存器上下文和栈

  • 同样具有就绪,阻塞和执行三种基本状态

  • 与同属一个进程的其它线程共享进程拥有的全部资源

  • 可并发执行

  • 线程的优点

减少并发执行的时间和空间开销(线程的创建,退出和调度),因此容许在系统中建立更多的线程来提高并发程度

  • 线程的创建时间比进程短

  • 线程的终止时间比进程短

  • 同进程内的线程切换时间比进程短

  • 由于同进程内线程间共享内存和文件资源,可直接进行不通过内核的通信

进程和线程的比较

  • 并发性:在引入线程的OS中,不仅进程之间可以并发,而且在一个进程中的多个线程之间亦可并发执行,因而使OS具有更好的并发性,从而更有效的利用系统资源和提高系统吞吐量

  • 拥有资源:进程是拥有资源的独立单位

  • 系统开销:在创建或撤销进程时,系统都要为之分配或收回资源,如内存空间,I/O设备等。因此,OS所付出的开销明显地大于创建或撤销线程时的开销

  • 地址空间和其他资源(如打开文件):进程间相互独立,同一进程的各线程间共享,某进程内的线程在其他进程内不可见

  • 通信:进程间统建IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信,需要进程同步和互斥手段的辅助,以保证数据的一致性

  • 调度:线程上下文切换比进程上下文切换要快的多

引入线程的好处

  • 响应度高:一个线程的应用在执行中,即使其中的某个线程阻塞,其他的线程还可继续执行,从而提高响应速度

  • 资源共享:同一进程的多个线程共享该进程的内存资源

  • 经济性:创建和切换线程的开销要低于进程

  • MP体系结构的运用:多线程更适用于多处理机结构

11.内核线程和用户线程

内核线程:依赖于OS核心,由内核进行创建,撤销和切换

  • 内核维护进程和线程的上下文信息

  • 线程切换由内核完成

  • 一个线程发起系统调用而阻塞,不会影响其他线程的运行

  • 时间片分配给线程,所以多线程的进程获得更多CPU时间

用户线程:不依赖于OS核心,应用进程利用线程库提供创建,同步,调度和管理线程的函数来控制用户线程。调度由应用软件内部进行,通常采用非抢先式和更简单的规则,也无需用户态/核心态切换,所以速度快

  • 用户线程的维护由应用进程完成

  • 内核不了解用户线程的存在

  • 用户线程切换不需要内核特权

用户线程和内核线程区别:

  • 调度方式:内核线程的调度和切换与进程的调度和切换十分相似,用户线程的调度不需OS的支持

  • 调度单位:用户线程的调度以进程为单位进行,在采用时间片轮转调度算法时,每个进程分配相同的时间片。对内核级线程,以线程为单位,每个线程分配时间片

12.进程间交互关系

  •   互斥:指多个进程不能同时使用同一个资源
  •   同步:进程间协作
  •   死锁:指多个进程互不相让,都得不到足够的资源

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值