考研党进程管理还不熟悉吗?不会你就out了!!!(一)

嘿嘿嘿

考研党们。。。。进程会不会?会不会????不会那就学,这么好的资料你还不看,,小心我把你头打歪!!
在这里插入图片描述

一、进程与线程

  1. 进程的概念与特征
  2. 进程的状态与转换
  3. 进程控制
  4. 进程的组织
  5. 进程的通信
  6. 线程概念和多线程模型

1.进程的概念与特征

进程目的:更好地描述和控制程序并发执行

进程(process):是程序及其数据在计算机上的一次运行活动,是系统进行资源分配和调度的一个独立单位。是动态的。进程映像(进程实体)由程序、数据、进程控制块(PCB)组成。由生命周期,暂时存在。一个进程可以执行多个程序

程序:进程运行实体,离开程序的进程是没有意义的,程序是有序的指令集合,是静态的。是一组代码,永久存在。一个程序可以构成多个进程
进程可以创建程序,而程序不能形成新的程序。

特征:
1)动态性:最基本特征,进程是程序的一次执行
2)并发性:引入进程为了能够使程序能与其他进程的程序并发执行,以提高资源利用率
3)独立性:未建立PCB的程序,都不能独立作为一个单位参与运行
4)异步性:进程按照自己独立的、不可预知的速度向前推进,导致回字形结果不可再现
5)结构性:进程实体的组成


2.进程的状态与转换

五种状态:
1)运行态:进程正在处理机上运行
2)就绪态:进程已获得了除处理机之外的一切所需资源态
3)阻塞态:进程正在等待某一事件而暂停运行
4)创建态:进程正在被创建,尚未转到就绪状态
5)结束态:进程正从系统中消失,分为正常结束和异常退出
在这里插入图片描述
进程就绪数目越多,争夺CPU的进程就越多,但只要就绪队列不为空,cpu就总是可以调度进程运行,保持繁忙,与就绪进程的数目没有关系,除非就绪队列为空,此时CPU进入等待状态,导致CPU效率下降

状态变化:
就绪状态→运行状态:经过处理机调度,就绪进程得到处理机资源
运行状态一就绪状态:时间片用完或在可剥夺系统中有更高优先级进程进入态变化
运行状态→阻塞状态:进程需要的某一资源还没准备好(自身决定
阻塞状态→就绪状态:进程需要的资源已准备好(系统所请求的一次I/O操作完成)

注意:一个进程从程序运行态变成阻塞态是主动的行为,而从变成就绪态是被动的行为,需要其他相关进程的协助


3.进程控制
功能:
对系统所有进程实施有效管理,具有创建新进程、实施进程状态转换、撤销已有进程等功能
进程控制用的程序叫原语,原语特点执行期间不予中断,他是一个不可分割的基本单位
1)创建:终端用户登录系统、作业调度、系统提供服务、用户程序的应用请求等
2)终止:正常结束、发生异常、外界干预
3)阻塞:等待资源
4) 唤醒:资源到达
5)切换:时间片用完、主动放弃处理机、被更高优选级的进程剥夺处理机
调度是指决定资源分配给那个进程的行为,是一种决策行为,切换指实际分配的行为,是执行行为,先有资源调度,后有进程切换


4 .进程的组织

最核心部分是PBC,进程是独立运行的单位,也是啊哦做系统进行资源分配和调度的基本单位
组成:
进程控制块(PBC):保存进程运行期间相关的数据,是进程存在的唯一标志。进程创建,操作系统就创建一个PBC,进程结束就PBC删除。操作系统根据进程控制块来对并发执行的进程进行控制和管理
程序段:能被进程调度程序调度到CPU运行的程序的代码段
数据段:存储程序运行期间的相关数据,可以是原始数据也可以是相关结果


5.进程的通信

进程之间不能直接交换数据,每个进程包含独立的地址空间,进程各自的空间是私有的,只能执行自己的地址空间中的程序,且访问自己地址空间中的数据,相互访问会导致指针的越界
指进程之间的信息交换,进程通信方式分为三类:

1)共享存储:
低级方式:基于数据结构的共享。
高级方式:基于存储区的共享

在这里插入图片描述

2)消息传递:
直接通信方式:直接把消息挂在接收进程的消息队列
间接通信方式:挂到某个中间实体,接收进程找实体接收消息类似于电子邮件

在这里插入图片描述
3)管道通信:
利用一种特殊的pipe文件连接两个进程

在这里插入图片描述


6.线程概念和多线程模型

进程作用:
为了更好地使多道程序并发执行,以提高资源利用率和系统吞吐量,

线程作用:
减少程序在并发执行时所付出的时空开销,增加程序的并发性,线程可以并发执行

属性:
1)线程是一个轻型实体,它不拥有系统资源,每个线程都应有一个唯一的标识符和一个线程控制块,线程控制块记录了线程执行的寄存器和栈等现场状态。
2)不同的线程可以执行相同的程序
3)同一进程中的各个线程共享该进程所拥有的资源。
4) 线程是处理机的独立调度单位, 多个线程是可以并发执行的。
5)一个线程被创建后,便开始了它的生命周期,直至终止。

线程的实现:
1)用户级线程(ULT):线程管理所有工作由应用程序完成,内核意识不到线程的存在
2)内核级线程(KLT):线程管理所有工作由内核完成,应用程序没有进行线程管理的代码
在这里插入图片描述
注意:在同一进程中,线程的切换不会引起进程的切换,当从一个进程中线程切换到另一个进程中的线程时,才会引起进程的切换

多线程模型:
1)一对一
2)多对一
3)多对多

补充

  1. 并发进程封闭性失去指并发进程共享变量,期执行结果与速度有关
  2. 线程是进程内一个相对独立的执行单元,但不能脱离进程单独进行,只能在进程中运行

喜欢就点赞+关注

liuliu去吃饭

在这里插入图片描述

发布了25 篇原创文章 · 获赞 95 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/m0_46315852/article/details/105270380