进程与线程

【系统资源:指处理机、存储器和其他设备服务于某个进程的”时间“,例如把处理机资源理解为处理及的时间片才是准确的。】

一、操作系统的特征

并发和共享是操作系统两个最基本的特征,两者互为存在的条件。

1.并发(Concurrence):指两个或多个事件在同一时间间隔内发生。操作系统的并发性是指计算机系统中同时存在多个运行中的程序,因此它具有处理和调度多个程序同时执行的能力。

2.共享(Sharing):资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程使用。

(1)互斥共享:为防止脏读,资源在一段时间内只允许一个进程访问。把这种资源称为临界资源或独占资源。软件用的栈,变量等都属于临界资源。把这种资源共享方式称为互斥式共享。

(2)同时访问,

3.虚拟(Virtual)

4.异步(Asychronism)

二、进程(process)的概念和特征

1.概念

进程:一个具有独立功能的程序关于某个数据集合大的一次运行活动。是一个活动的实体。

进程=进程实体的运行过程=进程映象的运行过程=(程序段+相关数据段+PCB)的运行过程

PCB(Process Control Block):是进程存在的唯一标志。系统用此描述进程的基本情况和运行状态。存放能够识别程序运行态的一些变量,,通过这些变量能够更好地了解进程的状况,并在是当时进行进程的切换,以避免一些资源的浪费,甚至划分为更小的调度单位-线程来提高系统的并发度。

创建进程实质就是创建进程映像中的PCB;撤销进程就是撤销进程的PCB

2.特征

进程提出为了服务于描述和控制多道程序地并发执行,进而器基本特征也是对比单个程序地顺序执行提出地,也是对进程管理的基本要求。

1)动态性。是程序的一次执行,是进程最基本的特征。

2)并发性。指多个进程实体同时存在于内存中,能在一段时间内同时运行。是重要特征,使进程能与其他进程的程序并发执行,提高资源利用率。

3)独立性。指进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位。凡未建立PCB的程序,都不能作为一个独立的单位参与运行。

4)异步性。由于进程的互相制约,使得进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。异步性会导致执行结果的不可再现性,为此在操作系统中必须配置相应的进程同步机制。

5)结构性。每个进程都配置一个PCB对其进行描述。

3.进程的通信

进程通信是指进程之间的信息交换。PV操作是第几通信方式,高级通信方式是指以较的效率传输大量数据的通信方式。高级通信方式主要有以下三类。

1.共享存储

在通信的进程之间存在一块可直接访问的共享空间,通过对这片共享空间进行写/读操作实现进程之间的信息交换。

操作系统只负责未通信进程提供可共享使用存储空间和同步互斥的工具,而数据交换则有用户自己安排读/写指令完成。

注意,用户进程空间一般是独立的,进程运行期间一般不能范文其他进程的空间,要想让两个用户进程共享空间,必须通过特殊的系统调用实现,而进程内内的线程是自然共享进程空间的。

2.消息传递

在消息传递系统中,进程间的数据交换是以格式化的消息为单位的。若通信的进程之间不存在可直接访问的共享空间,则必须利用操作系统提供的消息传递方法实现进程通信。进程通过系统提供的发送消息和接收消息两个原语进行数据交换

1)直接通信。发送进程直接把消息发送给接收进程,并将它挂在接收进程的新消息缓冲队列列,接收进程从消息缓冲队列中去的消息

2)间接通信方式。发送进程把消息发送到某个中间实体,接收进程从中间实体去的消息。这种中间实体一般称为信箱。这种通信方式又称为信箱通信方式

3)管道通信方式。所谓“管道”是指用于连接以个读进程和一个写进程以实现他们之间的通信的一个共享文件,又名pipe文件。相关到(共享文件)提供输入的发送进程(即写进程),以字符流形式将大量的数据送入(写)管道;而接受管道输出的接收进程(即读进程)则从管道中接收(读)数据。为了协调双方的通信,管道机制必须提供一下三方面的协调能力:互斥,同步和确定对方的存在。

管道可以理解为未共享存储的优化和发展,因为在共享存储中,若某进程要访问共享存储空间,则必须没有其他进程在该共享存储空间进行写操作,否则访问行为就会被阻塞。而管道通信中,存储空间进化成了缓冲区,缓冲区只允许一边写入,另一边读出,因此只要缓冲区中有数据,进程就能从缓冲区中读出,而不必担心会因为其他进程在其中进行写操作而遭到阻塞,因为·写进程会先把缓冲区写满,然后才让读进程读,当缓冲区还有数据,写进程不会王缓冲区写数据。所以管道通信是半双工通信。

三、线程的基本概念

1.线程的概念

线程:“轻量级进程”,是进程的一个实体,是操作系统独立调度和分派的基本单位,县城自己不拥有系统资源,只拥有一些在运行中发必不可少的的资源。

线程= 线程id+程序计数器+寄存器集合+堆栈

2.线程的属性

引入线程的目的是为了减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。所以主要属性与此息息相关。

1)线程是一个轻型实体。他不拥有系统资源,但每个线程都应该有一个唯一的标识符和一个线程控制块,线程控制块记录了线程执行的寄存器和栈等现场状态。

2)不同的线程可以执行相同的程序,即同一个服务程序被不同用户调用时,操作系统把他们创建成不同的线程。

3)同一进程中的各个线程共享该进程所拥有的资源。所以切换线程不需要太大的开销

4)线程是处理机独立调度单位,多个线程是可以并发执行的。线程切换,进程不一定需要切换,平均而言每次切换所需的开销变小。

5)一个线程被创建后,便有了生命周期:阻塞,就绪,运行等

四、线程和进程的比较(线程小于进程)

所谓进程处于“执行”状态,实际上是指该进程中的某线程正在执行。

1.调度。

进程是拥有资源的基本单位。但不一定是调度的基本单位,在引入线程的操作系统中,线程是独立调度的基本单位。在同一进程中,线程的切换时不会引起进程切换。在不同进程中去进行线程切换,如从一个进程内的线程切换到另一个进程中的线程是,会引起进程切换。

2.拥有资源。

进程拥有资源的基本单位,线程不拥有系统资源(也有一点必不可少的资源),但线程可以访问器隶属进程的系统资源。要知道若是县城也是拥有资源的单位,则切换县城就需要较大的时空开销,县城这个概念的提出就没有意义。

3.并发性

在引入线程的操作系统中,不仅进程之间可以并发执行,而且多个线程之间可以并发执行,从而是操作系用具有更好的并发性,提高了系统的吞吐量。

4.系统开销

由于创建或撤销进程时,系统都要为之分配或收回资源,如内存空间、I/O设备等,因此操作系统所付出的开销远大于创建或撤销线程的开销。类似的,在进行进程切换时,设计当且执行进程CPU环境的保存及新调度到进程CPU环境的设置,而线程切换时只需要保存和设置少量寄存器内容,开销很小。此外,由于统一进程内的多个线程共享进程的地址空间,因此这些线程之间的同步与通信非常容易实现,甚至无需操作系统的干预。

5.地址空间和其他资源(如打开的文件)

进程的地址空间之间互相独立,统一进程的个线程间共享进程的资源,某进程内的线程对其他进程不可见。

6.通信方面

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

五、多线程模型

有些系统同时支持用户线程以及内核线程,因此形成了多种多线程模型

多对一:多个用户线程映射到一个内核线程:线程管理在用户空间完成。用户级线程对操作系统不可见。

优点:效率较高

缺点:一个线程在使用内核服务是被阻塞,整个进程都会被阻塞。多个线程不能并行地运行在多处理机上。

一对一:每个用户级线程映射到一个内核级线程。

优点:当一个线程被阻塞后,允许另一个线程继续执行,所以并发能力较强。

缺点:每创建一个用户级线程,都需要创建一个内核级线程与其对应,这样创建现成的开销比较大,会影响应用程序地性能。

多对多:将n个用户及线程映射到M个内核级线程上,且要求m《=n

特点:是前俩的折中,集二者所长。

资源来源:《2021年操作系统考研复习指导》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值