Linux进程的管理

LINUX系统进程管理 进程是计算机系统中最重要的概念之一,在计算机系统中并行运行着大量的程序,这些程序不可能独占系统的全部资源,而是需要这些程序共享系统资源,所以这些程序在运行时会产生一定的竞争关系。那在这种情况下,系统资源怎么分配?运行程序该如何管理呢?操作系统为了解决这一系列的问题引入了进程的概念,用来作为操作系统分配和管理系统资源的基本单位。所以进程的出现是为了让系统资源的利用更加合理,从而提高系统的运行效率。定义进程,就避免不了提到另一个概念“程序”。 阅读详情

1.1 多任务

多任务操作系统就是能同时并发地交互执行郭哥进程的操作系统。在单处理机器上,这会产生多个进程在同时运行的错觉。在多处理机上,着会使多个进程在不同机器上真正同时,并行地运行。无论在单处理机还是多处理器机器上,多任务操作系统都能使多个进程处于堵塞或者睡眠的状态,也就是说,实际上并没有被真正的投入运行。进程利用内核堵塞自己,直到某些事件的产生。

多任务系统可以分为两类:非抢占式多任务和抢占式多任务,而Linux则提供了抢占式的多任务模式。

在Linux2.4以前,linux的进程调度程序都设计的相当简陋,设计近乎原始。在linux2.5的内核当中,进行了大手术,引入了许多的新特性。主要感谢静态时间片算法和针对每一处理器的运行队列。在2.6内核当中,增加了完全公平调度算法。

1.3策略

策略决定决定调度程序在何时让什么程序运行。调度器的策略往往就决定了系统的整体映像,并且,还要优化处理器的使用时间。所以呀,他是至关重要的。

1.3.1 I/O消耗型和处理器消耗型的进程。

进程可以被分为I/O消耗型和处理器消耗型,要注意这两种进程资源的分配。但是,对于某些进程来说,并不能单纯的将其归类为I/O消耗型或者处理器消耗型。

1.3.2进程优先级

调度算法当中最基本的一类就是机遇优先级的调度,。Linux采用了两种不同的优先级范围。一种是nice值,它的范围是-20到+19,默认值为0,越大的nice值意味着更低的优先级。nice值低的可以获得更多的时间。在Linux当中,nice值代表分配给进程的时间片的比例。

第二种范围是实时优先级,其值是可配置的,默认情况下它的变化范围是从0~99。实时优先级和nice优先级处于互不相交的两个范畴。

1.4Linux 调度算法

1.4.1 linux的调度器类:

linux调度器是以模块的方式提供的,这样做的目的是允许不同类型的进程可以有针对性的选择调度算法。

这种模块化结构被称为调度器类,它允许多种不同的可动态添加的调度算法的并存。每一个调度器都有自己的优先级。

1.4.2Unix系统中的进程调度:

在Unix当中,若采用nice值直接经行绝对时间的映射,那么时间片的分配并不是很理想。为了使进程能够更快的投入运行,而去对新要唤醒的进程提升优先级,即使他们的时间片已经用完,虽然这种方式能够提升不少的交互性能,但是一些例外的情况也有可能发生使得给定进程打破公平原则。

通过对传统Unix调度器进行改造以解决问题,但是实际的问题在于分配绝对的时间片引发的固定的切换频率,给公平性造成很大的变数。CFS采用的方法是对时间片分配方式进行根本的性的重新设计:完全摒弃时间片而是而是分配给进程一个处理器使用比重。通过这种方式。CFS确保了进程调度中能有恒定的公平性,而将切换频率至于不断变换当中。

1.4.3公平调度

进程调度的效果应如同系统具有一个理想中的完美多处理器。进程的调用实现却并不如理想中的那样完美。调度时进程抢占会带来一定的代价。CFS充分考虑额外的消耗,确保系统性能不受损失。

每个进程都按其权重在全部可运行进程中所占比例的“时间片”运行,为了计算准确的时间片,CFS为完美多任务中的无线小调度周期的近似值设立了一个目标。这个目标被称为“目标延迟”。越小的调度周期将带来更好的交互性。但是要承受更高的切换代价。linux当中有一个最小力度保证切换时候的延迟。默认请款下这个值为1ms。

在CFS中,两个进程的nice值的相对差才会影响两个进程的所占时间片的权重。在多进程的环境下,降低了调度延迟带来的不公平性。


在没有你的世界里,爱你,叶铮









保姆级教程:用CameraX API快速搞定Android多摄像头切换与预览(附避坑指南) 本文提供了一份详细的CameraX API教程,帮助开发者快速实现Android多摄像头切换与预览功能。通过简化API设计和生命周期感知能力,CameraX大幅降低了开发复杂度,同时解决了多摄像头兼容性、预览优化等常见问题。文章包含完整代码示例和实战避坑指南,特别适合需要高效集成相机功能的Android开发者。 阅读详情

相关推荐

YOLOv5 改进点总览:轻量化、高精度的背后有哪些魔改?

YOLOv5是由Ultralytics团队开发的高效目标检测模型,其核心改进包括:主干网络采用CSPDarknet53提升梯度传播效率;特征融合使用PANet增强小目标识别;输出结构采用解耦头设计优化定位和分类任务。此外,YOLOv5通过CIoU损失函数、Mosaic数据增强和SimOTA标签分配机制进一步提升性能。模型支持多种推理格式(ONNX/TensorRT等),并具备自动锚框匹配和多尺度训练功能,使其在轻量化(yolov5s仅7MB)与高性能(最高51.2% mAP)间取得平衡,但缺乏正式论文支撑是

guoguozgw的博客 1805

Linux进程管理

进程是Linux系统中最基本的执行单元,它们可以被创建、管理、通信和退出。本文将详细介绍Linux进程的基本概念、状态、管理方法。

weixin_65262119的博客 2240

Cadence Virtuoso实战:NMOS差分放大器设计与SPICE仿真全解析

本文详细解析了使用Cadence Virtuoso设计NMOS差分放大器并进行SPICE仿真的全流程。从基础设计要点、原理图绘制到工作点分析与性能调优,提供了实用的设计技巧和常见问题解决方案,帮助工程师高效完成模拟集成电路设计。重点介绍了差分放大器的关键参数设置、饱和区优化及版图设计注意事项,适用于ADC、DAC等高性能电路开发。

weixin_28340315的博客 610

【linux】linux实操篇之进程管理

本篇博客总结linux中的进程管理相关知识,主要有进程介绍,终止进程,服务管理以及监控服务,一起来看看吧!

阿牛的博客 3717

从零配置Archery:手把手教你用Docker部署多数据库审核系统(MySQL/PostgreSQL/ClickHouse)

本文详细介绍了如何从零开始使用Docker部署Archery多数据库审核系统,涵盖MySQL、PostgreSQL和ClickHouse的配置与整合。文章提供了生产级Docker-compose配置、审核规则定制、工单流程设置以及企业微信通知集成等实战指南,帮助团队构建统一的企业级SQL审计平台,提升数据库操作规范与安全。

e4f5g6h7的博客 941

开源LocalAI本地人工智能安装教程

LocalAI是一款能在本地运行的人工智能应用,它兼容了OpenAI API规范,它可以在普通的电脑运行,不需要GPU,也不需要联网,音频转录

2301_78652552的博客 3613

Linux中的进程管理总结

前言 日期:2020/05/28 心情:???????????? Description:进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。一般来说,Linux系统会在进程之间共享程序代码和系统函数库,所以在任何时刻内存中都只有代码的一份拷贝。本文的主要内容是有关于Linux进程的管理(查看,终止,监控) 1. 进程的进本介绍 在linux中,每一个执行的程序和指令都称为一个进程.每一个进程都有一个独立的进程号 每一个进程,都会有一个对应的父进程.而这个父进程可以复制多个子进程

qq_45048713的博客 3905

RPA与旅游与酒店行业自动化实战案例

1. 背景介绍 1.1 旅游与酒店行业的挑战 旅游与酒店行业是一个高度竞争的市场,企业需要不断提高服务质量、降低成本、提高效率以保持竞争力。在这个过程中,企业面临着诸多挑战,如客户需求多样化、市场变化快速、人力资源成本高昂等。为了应对这些挑战,企业需要寻求新的技术手段来提高运营效率。

AI天才研究院 615

深入解析 Linux 进程管理

深入学习进程相关知识,包括概念、状态、创建、特殊进程情况、调度、优先级、特性以及环境变量与相关指令、函数等。

Edison's 小宇宙 7万+

yandex 不定长旋转验证码PPOCR识别案例

可以看到,此种验证码非常变态,旋转角度不固定,干扰背景不固定,字符长度不固定,弯曲形变都是不固定的,在人眼都很难分辨验证码的情况下,其实都是对于模型来讲,也是比较困难的哈哈,传统验证码可能小几百张就能达到很好的效果了,是因为,验证码难度比较简单,通常都是4,6位定长,但是对于模型而言,无非就是增加数据量。由于该验证码的复杂度,自己写一个rcnn或者其他模型,来优化改数据集进行训练变的尤为困难复杂,所以这里强烈推荐百度飞桨的开源模型。在得到较好的loss后,导出模型。如有侵犯,请联系作者下架。

码王吴彦祖的博客 723

LabVIEW实现TCP通信

在本节中,我们将简要探讨TCP通信的基础知识,并以工业物联网平台TLINK中的云端设备数据发布设计为例,详细阐述在互联网环境下TCP客户端应用程序设计的基本方法。

不脱发的程序猿 1959

linux下的进程管理

本文系统介绍了Linux系统中的进程管理相关知识。首先阐述了进程和线程的概念区别:进程是资源分配的基本单位,拥有独立内存空间;线程是CPU调度的基本单位,共享进程资源。接着详细说明了进程的五种状态(运行、可中断休眠、不可中断休眠、暂停、僵死)及其状态码。文章重点讲解了进程查看工具的使用方法,包括ps、pgrep、pidof、top等命令的参数解析和输出信息解读。此外,还介绍了进程前后台调度、优先级调整(nice/renice)、信号处理机制(kill/killall/pkill)以及systemd守护进程的

2501_93973982的博客 1036

173、LLC谐振变换器的PCB设计实战(布线)

LLC谐振变换器PCB设计实战要点 LLC谐振变换器的PCB设计核心在于控制寄生参数,避免高频振铃和EMI问题。功率回路需确保电流路径最短且紧耦合,谐振电容焊盘需加宽以减少发热。驱动走线应独立于功率回路,避免干扰,并合理控制宽度和长度。变压器绕组结构影响共模噪声,建议原边在外层并加屏蔽铜箔。地平面设计需根据功率等级选择整块或分割,大功率下功率地与信号地应单点连接。谐振电流采样推荐四端开尔文电阻以减少电感干扰。散热需优化铜皮和过孔布局,功率器件优先放置顶层。布局应先确定谐振腔,再排布控制电路。经验上需实测寄生

Jack010169的博客 46

linux进程管理

Linux进程管理 Linux实现进程管理 在linux中每个执行的程序都称为一个进程。每个进程都分配一个ID号 每一个进程都会对应一个父进程,这个父进程可以复制多个子进程 每个进程都可以以两种方式存在: 前台和后台 一般系统的服务都是以后台进程的方式存在 Ps命令 相关字段: PID 进程识别号 TTY 终端机号 TIME 此进程所消耗的CPU时间 CMD 正在执行的命令或进程名 ps -a 显示当前终端的所有进程信息 Ps -u 以用户的格式显示进程信息 Ps -x 显示后台运行的参数 相关例子 Ps

qq_51088445的博客 6673

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[Linux] Linux如何管理进程

标题:[Linux] Linux如何管理进程@水墨不写bug目录一、如何理解管理二、如何进行管理(先描述,后管理) 三、进程的概念正文开始: 在《Linux操作系统入门详解》中,我们了解到了操作系统的定位和基本概念: 但是,操作系统是如何管理的呢?接下来我们需要对“管理”这个概念进行深入的理解。 对于管理的,我们可以从身边的管理体系进行理解: 我们身边最典型的例子: 校长是如何管理学生的呢?我们在平时并没有见到校长,但是校长如何进

石墨博客 1257

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Linux 进程管理

Linux 进程管理

m0_56051805的博客 817

linux-进程管理

进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。程序是人使用计算机语言编写的可以实现特定目标或解决特定问题的代码集合。这么讲很难理解,那我们换一种说法。程序是人使用计算机语言编写的,可以实现一定功能,并且可以执行的代码集合。而进程是正在执行中的程序。当程序被执行时,执行人的权限和属性,以及程序的代码都会被加载入内存,操作系统给这个进程分配一个 ID,称为 PID(进程 ID)。也就是说,在操作系统中,所有可以执行的程序与命令都会产生进程。

qq_64485253的博客 1309

linux进程管理实验报告_Linux系统管理—进程管理

linux 系统管理--进入管理一、进程基本概述1.什么是进程?比如:windows上安装的QQ,我们会将其称为QQ程序,那么当QQ运行之后,在任务管理器中,我们可以看到QQ程序在运行着,此时,我们称其为:QQ进程。言简意赅总结:当我们运行一个程序,那么我们将该程序叫进程注意:1.当程序运行为进程后,系统会为该进程分配内存,以及运行的身份和权限。2.在进程运行的过程中,服务器上会有各种状态来表示当...

weixin_33134753的博客 6750

【Linux的进程管理】

一个task_struct内会有许多的属性,有当前该进程的唯一标识ID,操作系统为该进程创建为模板的父进程ID,当前任务的状态,文件描述符集合,进程地址空间,内存空间,信号集等一些重要属性。然后每个进程都会有一个指向下一个进程的指针。当正在执行的进程被切换的时候,操作系统会保存当前进程的消息,包括当前寄存器的数据,程序计数器PC,内存管理的信息,进程的内核栈,用户堆栈的信息,当前的进程状态或者打开的文件,网络套接字等,因为有些进程是因为进程的时间片用完了,但可以继续在就绪队列中等待下一次被CPU调度。

m0_72818727的博客 1004
上一篇: openwrt与安卓端的通信
下一篇: Linux调度的实现
maclinuxye
博客等级 码龄11年 10粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值