【进程概念】进程的优先级PRI和NI

简介: 【进程概念】进程的优先级PRI和NI

如何理解进程的优先级

进程的优先级代表着cpu资源分配的先后顺序,也叫做进程的优先权。一般来说,优先级越高的进程先对来说越重要,越重要的越容易获得cpu.这样可以使进程调度变得更加灵活,也使得整体的系统性能得到改善。

那如何描述一个进程的优先级呢?换句话说就是擦做系统是怎么知道操作系统是如何比较进程的优先级的呢?

之前我们学过进程是如何被描述的。进程=PCB进程控制块+数据段+代码段

在linux中,用task_struct描述一个进程,优先级其实就是结构体task_struct里面的一个整型变量,其值越高优先级也就越大。

如何查看进程的优先级

在linux系统中,可以考虑用ps -l指令查看进程的优先级

分析几个比较重要的字段

UID:表示执行者的身份,即用户的id.

PID:进程号,进程的唯一标识符

PPID:父进程的PID

PRI:进程的优先级,值越小优先级越高

NI:进程的nice值(优先级的调整值)

PRI和NI

PRI用来表示进程的优先级,NI即nice,用来修改进程的优先级,但是也不能随意修改,其范围表示为 [-20-19],一共四十个级别

所以调整nice值就是调整进程优先级,新的PIR=以前的PIR+NI

使用top命令修改进程的nice

首先创建一个测试进程:

运行该程序后会输出进程的PID,我们用top命令可以看到该进程的信息

可以观察到23886进程的PR(PRI)值和NI(nice)值分别是20 0.

在进入top后按r,输入23886,就可以修改23886进程的nice值。现在输入10.

我们发现进程23886的PR(PRI)值和NI(nice)值分别变成了是30 10.

表示当前的进程的PRI是由原来的PRI加上10得来的。

值得注意的是,每次修改进程的PRI值都是在最初始的PRI的基础上+nice得来的。

也就是说,第一次修改PRI是20+10=30,第二次也是在20的基础上+nice,而不是在新的基础上。系统会记录进程的初始PRI。

相关文章
|
1月前
|
算法 调度 UED
深入理解操作系统:进程调度与优先级队列
【10月更文挑战第31天】在计算机科学的广阔天地中,操作系统扮演着枢纽的角色,它不仅管理着硬件资源,还为应用程序提供了运行的环境。本文将深入浅出地探讨操作系统的核心概念之一——进程调度,以及如何通过优先级队列来优化资源分配。我们将从基础理论出发,逐步过渡到实际应用,最终以代码示例巩固知识点,旨在为读者揭开操作系统高效管理的神秘面纱。
|
18天前
|
调度 开发者
核心概念解析:进程与线程的对比分析
在操作系统和计算机编程领域,进程和线程是两个基本而核心的概念。它们是程序执行和资源管理的基础,但它们之间存在显著的差异。本文将深入探讨进程与线程的区别,并分析它们在现代软件开发中的应用和重要性。
38 4
|
2月前
|
算法 调度
深入理解操作系统:进程调度与优先级反转问题
【9月更文挑战第36天】操作系统是计算机科学中的核心概念,它管理着计算机的硬件资源和软件进程。在多任务处理环境中,进程调度是保证系统高效运行的关键机制之一。本文将探讨进程调度的基本概念、调度算法以及它们如何影响系统性能。同时,我们还将讨论优先级反转问题,这是一个在实时系统中常见的问题,它可能导致系统响应时间不可预测。通过分析优先级反转的原因和解决方案,我们可以更好地理解操作系统的设计和优化策略。
|
3月前
|
存储 算法 前端开发
深入理解操作系统:进程调度与优先级队列算法
【9月更文挑战第25天】在操作系统的复杂世界中,进程调度是维持系统稳定运行的核心机制之一。本文将深入探讨进程调度的基本概念,分析不同的进程调度算法,并着重介绍优先级队列算法的原理和实现。通过简洁明了的语言,我们将一起探索如何优化进程调度,提高操作系统的效率和响应速度。无论你是计算机科学的初学者还是希望深化理解的专业人士,这篇文章都将为你提供有价值的见解。
|
3月前
|
算法 调度
深入理解操作系统:进程调度与优先级反转
【9月更文挑战第21天】在操作系统的心脏跳动着的,是进程调度器。它决定了哪个进程运行,何时运行,以及如何优雅地共享CPU资源。本文将通过浅显易懂的语言和直观的代码示例,探索进程调度的奥秘,揭示优先级反转问题及其解决方案,带领读者领略操作系统中这一精妙绝伦的设计。
|
3月前
|
算法 人机交互 调度
进程调度算法_轮转调度算法_优先级调度算法_多级反馈队列调度算法
轮转调度算法(RR)是一种常用且简单的调度方法,通过给每个进程分配一小段CPU运行时间来轮流执行。进程切换发生在当前进程完成或时间片用尽时。优先级调度算法则根据进程的紧迫性赋予不同优先级,高优先级进程优先执行,并分为抢占式和非抢占式。多队列调度算法通过设置多个具有不同优先级的就绪队列,采用多级反馈队列优先调度机制,以满足不同类型用户的需求,从而优化整体调度性能。
131 15
|
2月前
|
存储 算法 调度
MacOS环境-手写操作系统-34-进程优先级
MacOS环境-手写操作系统-34-进程优先级
26 0
|
3月前
|
数据采集 消息中间件 并行计算
进程、线程与协程:并发执行的三种重要概念与应用
进程、线程与协程:并发执行的三种重要概念与应用
70 0
|
4月前
|
算法 调度 UED
探索操作系统核心:进程调度与优先级队列
【8月更文挑战第31天】在计算机的心脏——操作系统中,进程调度是维持系统运行的关键机制。本文将深入浅出地介绍进程调度的概念,并通过一个简单的优先级队列算法示例,展示如何在操作系统设计中实现基本的进程管理。我们将从理论到实践,逐步揭示如何通过代码构建一个模拟的进程调度系统,帮助读者理解这一复杂但至关重要的操作系统特性。
|
4月前
|
数据可视化 JavaScript 前端开发
Python中的数据可视化:从基础到进阶深入理解操作系统:进程调度与优先级
【8月更文挑战第29天】数据可视化是现代数据分析不可或缺的一环。本文将引导读者通过Python这一强大的编程语言,利用其丰富的库和工具,探索数据可视化的奥秘。我们将从最基础的图表开始,逐步深入到更复杂的可视化技术,最终实现高级定制和交互式可视化。无论你是数据科学新手还是希望提升可视化技能的开发者,这篇文章都将为你打开一扇通往数据美学的大门。

相关实验场景

更多