操作系统(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.线程---作为调度和分派的基本单位

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


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


单线程进程


aab295875a2670cbe7c9fac78dc1696c_6438430d76e17a87b2dcd79c859a4f15.png


管理和执行相分离的模型


641dcc82a2dc1d86f5620267eb9f83e8_cc225dd5f57b77a6da29cac232264cc9.png


多线程进程模型


f5ed1f8ef9d5b1ca97539c00f72c5e4f_308b483d3a11ac6edc2af05d77840564.png


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

由于线程具有许多传统进程所具有的特征,所以又称之为轻型进程(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中,线程作为独立运行的基本单位。进程仍具有与执行相关的状态。例如,所谓进程处于“执行”状态,实际上是指该进程中的某线程正在执行。


线程的内存布局

8741f14cd8545a525a3e4f3f2ae44ad7_4b572485aba4b96a6e647e10d433d419.png

目录
相关文章
|
12天前
|
机器学习/深度学习 算法 调度
深入理解操作系统之进程调度策略
【4月更文挑战第30天】 在多任务操作系统中,进程调度策略是核心组成部分之一,其决定了处理器资源分配的合理性与效率。本文将详细探讨现代操作系统中常见的进程调度算法,包括它们的原理、特点以及适用场景。通过对比分析先来先服务(FCFS)、短作业优先(SJF)以及轮转调度(RR),我们旨在提供一个全面的视角以帮助读者深刻理解不同调度策略对操作系统性能的影响。此外,文章还将讨论如何根据实际需求选择和优化调度算法,以及未来可能的发展趋势。
|
2天前
|
算法 Linux 调度
深入理解操作系统:进程管理与调度策略
【5月更文挑战第10天】 本文将深入探讨操作系统的核心机制之一:进程管理。我们将从进程的概念入手,解析其生命周期,进而展开对操作系统中进程调度策略的详细讨论。文中不仅涉及理论分析,还结合了现代操作系统如Linux的实际案例,以期提供一个全面而深刻的视角。通过阅读本文,读者将对操作系统如何高效地管理计算资源有更深层次的理解。
|
5天前
|
算法 调度 UED
深入理解操作系统的进程调度策略
【5月更文挑战第7天】 在现代计算机系统中,操作系统的核心职责之一是确保CPU资源的有效分配与利用。本文旨在探讨操作系统中的进程调度策略,并分析其对系统性能的影响。我们将从调度的基本概念出发,介绍几种常见的调度算法,如先来先服务、短作业优先和轮转调度等,并对它们的优缺点进行比较。此外,文章还将讨论多级反馈队列调度策略,它结合了多种调度方法的优点,以适应不同类型的工作负载。通过深入分析,本文旨在为读者提供一个清晰的框架,以理解操作系统如何管理并发执行的多个进程,以及这些管理策略如何影响系统的整体效率和响应性。
|
6天前
|
算法 调度
深入理解操作系统:进程管理与调度策略
【5月更文挑战第5天】 在现代计算机系统中,操作系统的核心职能之一是高效地管理计算机资源,尤其是处理多个并发运行的程序(进程)。本文将探讨操作系统中的进程管理机制,重点分析不同的进程调度策略及其对系统性能的影响。我们将从理论和实践的角度出发,比较各种调度算法的优劣,并提出在特定场景下如何选择最合适的调度策略。通过深入剖析进程调度的原理和实现细节,旨在为读者提供全面而深刻的认知框架,以便于更好地理解和优化操作系统的性能。
|
8天前
|
算法 调度 云计算
深入理解操作系统:进程管理与调度策略
【5月更文挑战第4天】本文将深入探讨操作系统中的关键组成部分——进程管理,以及如何通过有效的进程调度策略提升系统性能。我们将剖析进程的概念、状态转换和控制,并详细分析不同的进程调度算法,如先来先服务(FCFS)、短作业优先(SJF)和多级反馈队列(MLFQ)。文章旨在为读者提供一个清晰的框架,以理解操作系统如何处理并发任务,保证系统资源的有效利用和响应性。
|
10天前
|
负载均衡 算法 调度
深入理解操作系统:进程管理与调度策略
【5月更文挑战第2天】 在现代计算环境中,操作系统的核心职能之一是确保系统资源的高效利用和任务的顺畅执行。本文将探讨操作系统中的关键组件——进程管理及其调度策略。通过对进程的概念、生命周期以及调度算法的详细分析,我们旨在揭示操作系统如何协调多个运行中的程序,以实现快速响应和资源优化。文章还将讨论不同类型操作系统(如实时操作系统和通用操作系统)中进程调度策略的差异性及其对系统性能的影响。通过理论与实践相结合的方式,本文为读者提供了一个全面了解操作系统进程管理的平台。
|
10天前
|
负载均衡 算法 大数据
深入理解操作系统:进程管理和调度策略
【5月更文挑战第1天】 在现代操作系统的核心功能中,进程管理与调度策略是确保系统高效、稳定运行的关键。本文旨在深入剖析操作系统中的进程概念、进程状态转换以及进程调度机制。通过对先进先出、最短作业优先和时间片轮转等调度算法的比较分析,我们不仅揭示了它们在资源分配和任务执行中的应用,还讨论了它们在不同场景下的表现和局限性。此外,文章还将探讨多核处理器环境下的调度策略演变,以及未来操作系统在进程管理方面可能面临的挑战。
|
11天前
|
算法 调度
深入理解操作系统中的进程调度策略
【5月更文挑战第1天】在多任务操作系统中,进程调度策略是决定系统性能和响应能力的关键因素。本文将详细探讨现代操作系统中常见的进程调度算法——从简单的先来先服务(FCFS)到复杂的多级反馈队列(MLFQ),以及实时系统中的立即模式和时间片轮转(RR)。我们将分析每种调度策略的工作原理、优势、局限性以及它们如何影响操作系统的整体表现。通过比较不同策略在各种负载场景下的表现,读者将能更好地理解如何为特定应用选择最合适的调度策略。
|
11天前
|
Java 调度 开发者
构建高效微服务架构:后端开发的新趋势深入理解操作系统之进程调度策略
【4月更文挑战第30天】 随着企业数字化转型的不断深入,传统的单体应用逐渐不能满足快速迭代和灵活部署的需求。微服务架构以其高度模块化、独立部署和易于扩展的特性,成为现代后端开发的重要趋势。本文将探讨如何构建一个高效的微服务架构,包括关键的设计原则、技术选型以及可能面临的挑战。
|
11天前
|
安全 算法 网络安全
构筑网络长城:网络安全漏洞解析与防御策略深入理解操作系统:进程管理与调度策略
【4月更文挑战第30天】 在数字化时代,网络安全已成为维护信息完整性、确保数据流通安全和保障用户隐私的关键。本文将深入探讨网络安全的核心问题——安全漏洞,并分享关于加密技术的最新进展以及提升个人和企业安全意识的有效方法。通过对常见网络威胁的剖析,我们旨在提供一套综合性的网络防御策略,以助力读者构建更为坚固的信息安全防线。 【4月更文挑战第30天】 在现代操作系统的核心,进程管理是维持多任务环境稳定的关键。本文将深入探讨操作系统中的进程概念、进程状态转换及进程调度策略。通过分析不同的调度算法,我们将了解操作系统如何平衡各进程的执行,确保系统资源的高效利用和响应时间的最优化。文中不仅剖析了先来先