首页 > 系统相关 >操作系统(2.7)--进程

操作系统(2.7)--进程

时间:2023-04-16 10:05:30浏览次数:48  
标签:执行 操作系统 -- 单位 并发 线程 进程 多线程 2.7


目录

一、进程的引入

1.进程的两个基本属性

2.程序并发执行所需付出的时空开销

3.线程---作为调度和分派的基本单位

二、线程(轻型进程)与进程(重型进程)的比较

1)调度的基本单位

2)并发性

3)拥有资源

4)独立性

5)系统开销

6)支持多处理机系统

三、线程的状态和线程的控制块

1.线程运行的三个状态

2.线程控制块TCB

3.多线程OS中的进程属性


一、进程的引入

1.进程的两个基本属性

进程的两个基本属性:

  • ①进程是一个可拥有资源的独立单位;一个进程要能独立运行,它必须拥有一定的资源。
  • ②进程同时又是一个可独立调度和分派的基本单位,使之成为一个能独立运行的基本单位,从而也就构成了进程并发执行的基础。

由于进程是一个资源的拥有者,因而在创建、撤消和切换中,系统必须为之付出较大的时空开销。如此,在系统中所设置的进程,其数目不宜过多,进程切换的频率也不宜过高,这也就限制了并发程度的进一步提高。

2.程序并发执行所需付出的时空开销

为使程序能并发执行,系统必须进行以下的一系列操作:

(1)创建进程,系统在创建一个进程时,必须为它分配其所必需的、除处理机以外的所有资源,如内存空间、I/O设备,以及建立相应的PCB;

(2)撤消进程,系统在撤消进程时,又必须先对其所占有的资源执行回收操作,然后再撤消PCB:

(3)进程切换,对进程进行上下文切换时,需要保留当前进程的CPU环境,设置新选中进程的CPU环境,因而须花费不少的处理机时间。

3.线程---作为调度和分派的基本单位

目的:更好地实现并发执行的同时尽量减少系统的开销。

线程设计思想:将进程的上述两个属性分开,由操作系统分开处理,亦即对于作为调度和分派的基本单位,不同时作为拥有资源的单位,以做到“轻装上阵”;而对于拥有资源的基本单位,又不对之进行频繁的切换。正是在这种思想的指导下,形成了线程的概念。

单线程进程

操作系统(2.7)--进程_linux

管理和执行相分离的模型

操作系统(2.7)--进程_操作系统_02

多线程进程模型

操作系统(2.7)--进程_人工智能_03

二、线程(轻型进程)与进程(重型进程)的比较

由于线程具有许多传统进程所具有的特征,所以又称之为轻型进程(Light-WeightProcess)或进程元

把传统进程称为重型进程(Heavy-Weight Process)。

1)调度的基本单位

在传统的操作系统中,作为拥有资源的基本单位和独立调度、分派的基本单位都是进程。在引入线程的操作系统中,则把线程作为调度和分派的基本单位,而进程作为资源拥有的基本单位。

2)并发性

在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,使得操作系统具有更好的并发性,从而能更加有效地提高系统资源的利用率和系统的吞吐量。

3)拥有资源

不论是传统的操作系统,还是引入了线程的操作系统,进程都可以拥有资源,是系统中拥有资源的一个基本单位。一般而言,线程自己不拥有系统资源(也有一点必不可少的资源),但它可以访问其隶属进程的资源。

4)独立性

在同一进程中的不同线程之间的独立性要比不同进程之间的独立性低得多。

5)系统开销

(1)在创建或撤消进程时,操作系统所付出的开销明显大于线程创建或撤消时的开销。(2)类似的,在进程切换时,进程也是远高于线程的。(3)此外,由于一个进程中的多个线程具有相同的地址空间,在同步和通信的实现方面线程也比进程容易。

6)支持多处理机系统

在多处理机系统中,对于传统的进程,即单线程进程,不管有多少处理机,该进程只能运行在一个处理机上。但对于多线程进程,就可以将一个进程中的多个线程分配到多个处理机上,使它们并行执行,这无疑将加速进程的完成。因此,现代多处理机OS都无一例外地引入了多线程。

三、线程的状态和线程的控制块

1.线程运行的三个状态

线程在运行时也具有下述三种基本状态:

  • ①执行状态,表示线程正获得处理机而运行;
  • ②就绪状态,指线程已具备了各种执行条件,一旦获得CPU便可执行的状态;
  • ③阻塞状态,指线程在执行中因某事件而受阻,处于暂停执行时的状态。

2.线程控制块TCB

线程控制块通常有这样几项:

①线程标识符,为每个线程赋予一个唯一的线程标识符;

②一组寄存器,包括程序计数器PC、状态寄存器和通用寄存器的内容;

③线程运行状态,用于描述线程正处于何种运行状态;

④优先级,描述线程执行的优先程度;

⑤线程专有存储区,用于线程切换时存放现场保护信息,和与该线程相关的统计信息等;

⑥信号屏蔽,即对某些信号加以屏蔽;

⑦堆栈,在堆栈中通常保存有局部变量和返回地址;

3.多线程OS中的进程属性

在多线程OS中,进程是作为拥有系统资源的基本单位,但不再作为一个执行的实体。多线程OS中的进程有以下属性:

(1)作为系统资源分配的单位。

(2)可包括多个线程。在0S中的所有线程都只能属于某一个特定进程。

(3)进程不是一个可执行的实体。在多线程OS中,线程作为独立运行的基本单位。进程仍具有与执行相关的状态。例如,所谓进程处于“执行”状态,实际上是指该进程中的某线程正在执行。

线程的内存布局

操作系统(2.7)--进程_多线程_04

标签:执行,操作系统,--,单位,并发,线程,进程,多线程,2.7
From: https://blog.51cto.com/hwuu/6193314

相关文章

  • 为什么每次建立TCP连接时初始化的序列号都要求不一样
    为了防止历史报文被下一个相同的四元组的连接接受假设每次建立连接。客户端和服务端的初始化序列号都是从0开始的客户端和服务端建立了一个TCP连接,在客户端发送数据包被网络阻塞了然后超时重传了这个数据包,而此时服务端断电重启,之前与客户端建立的连接也消失了,于是收到客户端的数......
  • Collection,List接口相关介绍
    CollectionpublicinterfaceCollection<E>extendsIterable<E>Collection实现子类可以存放多个元素,每个元素可以是Object有些Collection的实现类可以存放重复的元素,有些不可以有些Collection的实现类,有些是有序的,有些不是有序的Collection接口没有直接的实现子类,是通过它的子接口......
  • 一台主机可以有多少个端口?为什么会有端口号的限制呢?与哪些因素有关
    一台主机可以有多少个端口?TCP/IP协议中的服务端口通过不同的逻辑端口来区分不同的服务。一个IP地址的端口通过16bit进行编号,最多可以有65535个端口。为什么会有端口号的限制呢?端口号就是一种用于标识网络应用程序的方法。在TCP/IP协议中,每个应用程序都需要绑定一个端口号,这个端......
  • 什么是人工智能模型的多模态生成能力?
    人工智能模型的多模态生成能力是指模型可以生成多种不同形式的数据,例如图像、语音、文本等,以及它们之间的组合和交互。这种能力可以扩展模型的应用场景,使其能够更好地处理多种类型的数据,提高数据的多样性和丰富性。在自然语言处理领域,多模态生成通常是指将文本、图像和语音等多种......
  • 基于DSP+FPGA+AD9238的冲击波超压测试系统设计与实现
    对冲击波关键特征参数进行可靠、精确地评估是进行军事行动规划的前提和依据,测试结果可以为战斗部设计提供参考,也可以为武器弹体材料的研发制造提供有效依据。近年来,随着集成电子技术与软件系统取得突破性成果,冲击波测试技术获得了稳定的发展。2.2测试系统的总体框架......
  • RK3399+麒麟工业平板解决方案
    1、RK3568Linux麒麟系统陀螺仪驱动调试瑞星微开发板自带的陀螺仪型号MXC6655xa,硬件人员说我们的板子和开发板一样,因此检查设备树文件找到设备描述:&i2c5{status=“okay”;mxc6655xa:mxc6655xa@15{status=“okay”;compatible=“gs_mxc6655xa”;......
  • RK3568+翼辉操作系统在电力产品的应用
    SylixOS(MS-RTOS)电力产品应用简介一、电网传统装置:继电保护、测控、稳控、PMU、时间同步、故障录波等装置(输变电)一般使用AMP方案,少数客户使用SMP方案。2019年11月使用SylixOS的国内首台100%全国产化500kv继电保护装置在河南投运(许继);一个月后,四方继保、国电南自等客户使用SylixOS的10......
  • Kotlin启动方式
    launchlaunch用来启动协程,但是不需要获取运行后的返回结果。它类似于”射箭“场景,将箭发射出去,但是不需要箭返回。使用者不关心协程的返回值。开启新的子协程,执行不阻塞当前线程的作业,不返回结果。runBlocking普通阻塞式函数,直接用GlobalScope执行阻塞式协程,一般只会用在单元测试中......
  • 基于DSP+FPGA的机载雷达伺服控制系统的硬件设计与开发(一)总体设计
    2.1功能要求及性能指标2.1.1功能要求(1)具备方位和俯仰两轴运动的能力;(2)方位轴可实现预置、周扫和扇扫功能;(3)俯仰轴可实现预置功能。2.1.2性能指标(1)运动范围:方位转动范围为,俯仰转动范围为;(2)角速度:方位最大角速度为100º/s,俯仰最大角速度为40º/s......
  • JavaScript运算符与表达式
    目录一、===二、||三、??与?.???.四、...五、[]{}[]{}一、===严格相等运算符,用作逻辑判断1==1 //返回true1=='1' //返回true,会先将右侧的字符串转为数字,再做比较1==='1' //返回false,类型不等,直接返回falsetypeof查看某个值的类型typeof1 //返回'number'ty......