当前位置: 首页 > news >正文

Python标准库 - os (3) 调度策略、系统信息

文章目录

  • 6 调度策略
    • 6.1 调度策略常量
    • 6.2 访问和设置进程的调度策略
  • 7 系统信息
    • 7.1 系统信息
    • 7.2 系统配置信息
    • 7.3 系统负载
    • 7.4 路径相关常量
    • 7.5 生成随机字节


os模块提供了各种操作系统接口。包括环境变量、进程管理、进程调度、文件操作等方面。

这里整理了进程调度和查看系统信息的方法。

参考:os模块官方文档


6 调度策略

6.1 调度策略常量

调度策略常量说明
os.SCHED_OTHER默认调度策略
os.SCHED_BATCH用于CPU密集型进程的调度策略,尽可能为计算机的其余任务保留交互性。
os.SCHED_IDLE用于低优先级的后台任务的调度策略。
os.SCHED_SPORADIC用于偶发型服务程序的调度策略。
os.SCHED_FIFO先进先出的调度策略。
os.SCHED_RR循环式的调度策略。
os.SCHED_RESET_ON_FORK可与其他调度策略进行OR运算。进程设置分叉时,子进程的调度策略和优先级会被重置为默认。

6.2 访问和设置进程的调度策略

  • os.sched_get_priority_min(policy) 获取调度策略的最低优先级数值。

  • os.sched_get_priority_max(policy) 获取调度策略的最高优先级数值。

  • os.sched_getscheduler(pid) 返回指定进程的调度策略。

  • os.sched_setscheduler(pid, policy, param) 设置pid对应的进程的调度策略。
    pid为0表示当前进程。param是一个os.sched_param实例。

  • os.sched_getparam(pid) 获取指定进程的调度参数。

    >>> os.sched_getparam(0)
    posix.sched_param(sched_priority=0)
    
  • os.sched_setparam(pid, param) 设置指定进程的调度参数。

  • class os.sched_param(sched_priority)
    这个类是上述的方法中用到的调度形参,是不可变对象。
    sched_priority表示调度策略的优先级。

  • os.sched_rr_get_interval(pid) 返回指定进程在循环调度策略下的时间片长度,单位为秒。

    >>> os.sched_rr_get_interval(0)
    0.011000000000000001
    
  • os.sched_yield() 主动让出CPU。

  • os.sched_setaffinity(pid, mask) 将指定进程限制到一组CPU上,mask是整数的可迭代对象。

  • os.sched_getaffinity(pid) 返回指定进程被限制的那一组CPU。
    pid为0时,返回当前进程的调用方线程被限制到的那组CPU。

    >>> os.sched_getaffinity(0)
    {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}
    >>> os.sched_setaffinity(0, {0,1,2,3,4})
    >>> os.sched_getaffinity(0)
    {0, 1, 2, 3, 4}
    

7 系统信息

7.1 系统信息

  • os.uname() 返回当前操作系统的识别信息。
    返回值是一个对象,它有五个属性:sysname(操作系统名)、nodename(机器在网络上的名称)、release(操作系统发行信息)、version(操作系统版本信息)、machine(硬件标识符)。可以作为元组迭代这五个属性。

    >>> os.uname()
    posix.uname_result(sysname='Linux', nodename='xxxx', release='3.10.0-1062.9.1.el7.x86_64', version='#1 SMP Fri Dec 6 15:49:49 UTC 2019', machine='x86_64')
    >>> os.uname().sysname
    'Linux'
    
  • os.cpu_count() 返回系统中的逻辑CPU数量,无法确定时返回None。

    >>> os.cpu_count()
    32
    
  • os.process_cpu_count() 获取当前进程的调用方法线程可以使用的逻辑CPU数量。

7.2 系统配置信息

  • os.confstr(name) 返回字符串格式的系统配置信息。仅Unix可用。
    name指定要查找的配置名称,可选值和所在系统相关,当前系统已定义的名称可以在os.confstr_names查看。
    name指定的配置值未定义时,返回None。
    name配置名称不在已定义名称中时,出现ValueError
    os.confstr_names中存在的名称,但系统不支持,出现OSError

  • os.confstr_names 字典,系统定义的配置名称和配置值的映射。

    >>> os.confstr_names
    {'CS_GNU_LIBC_VERSION': 2, 'CS_GNU_LIBPTHREAD_VERSION': 3, ...}
    
  • os.sysconf(name) 返回整数格式的系统配置信息。仅Unix可用。
    name指定的配置值未定义时,返回-1。

  • os.sysconf_names 系统配置名称对应的整数值。仅Unix可用。

    >>> os.sysconf_names
    {'SC_2_CHAR_TERM': 95, 'SC_2_C_BIND': 47, ...}
    

7.3 系统负载

  • os.getloadavg() 返回系统运行队列中最近1、5和15分钟内的平均进程数。
    无法获取平均负载时出现OSError错误。
    >>> os.getloadavg()
    (0.0, 0.01, 0.05)
    

7.4 路径相关常量

常量说明
os.curdir操作系统用来表示当前目录的常量字符串
os.pardir操作系统用来表示父目录的常量字符串
os.sep操作系统用来分隔路径的字符
os.altsep操作系统用来分隔路径的替代字符
os.extsep分割基本文件名宇扩展名的字符
os.pathsep操作系统用于分隔搜索路径(如环境变量PATH)中不同部分的字符串
os.defpath在环境变量没有PATH的情况下,默认的搜索路径
os.linesep系统用于分割行的字符
os.devnull空设备的文件路径

创建一个python文件:

import os
print("os.curdir".ljust(11, " "), os.curdir)
print("os.pardir".ljust(11, " "), os.pardir)
print("os.sep".ljust(11, " "), os.sep)
print("os.altsep".ljust(11, " "), os.altsep)
print("os.extsep".ljust(11, " "), os.extsep)
print("os.pathsep".ljust(11, " "), os.pathsep)
print("os.defpath".ljust(11, " "), os.defpath)
print("os.linesep".ljust(11, " "), os.linesep)
print("os.devnull".ljust(11, " "), os.devnull)

在linux上运行:

os.curdir   .
os.pardir   ..
os.sep      /
os.altsep   None
os.extsep   .
os.pathsep  :
os.defpath  /bin:/usr/bin
os.linesep  os.devnull  /dev/null

在Windows上运行:

os.curdir   .
os.pardir   ..
os.sep      \
os.altsep   /
os.extsep   .
os.pathsep  ;
os.defpath  .;C:\bin
os.linesepos.devnull  nul

7.5 生成随机字节

  • os.getrandom(size, flags=0) 获取指定大小的随机字节。
    用于为随机数生成器提供种子或用于加密。
    需要Linux版本不低于3.17。
    flags可以是os.GRND_NONBLOCKos.GRND_RANDOM或它俩的或运算结果。

    默认从/dev/urandom读取时,熵池未初始化则os.getrandom()会阻塞;从/dev/random读取随机字节,没有可用的随机字节时,也会阻塞。
    设置os.GRND_NONBLOCK时,os.getrandom()不会阻塞,会抛出BlockingError异常。
    设置os.GRND_RANDOM,会从/dev/random而不是/dev/urandom提取随机字节。

  • os.urandom(size) 返回指定字节的随机字节。适合加密使用。
    如果getrandom()系统调用可用,就以阻塞模式运行,直到系统的urandom熵池初始完毕。


以上是os模块关于进程管理的方法和常量整理。
该模块的其他内容参考:
os模块:环境变量、进程所属的用户和组
os模块:进程管理

相关文章:

Python标准库 - os (3) 调度策略、系统信息

文章目录 6 调度策略6.1 调度策略常量6.2 访问和设置进程的调度策略 7 系统信息7.1 系统信息7.2 系统配置信息7.3 系统负载7.4 路径相关常量7.5 生成随机字节 os模块提供了各种操作系统接口。包括环境变量、进程管理、进程调度、文件操作等方面。 这里整理了进程调度和查看系统…...

【NLP251】NLP RNN 系列网络

NLP251 系列主要记录从NLP基础网络结构到知识图谱的学习 1.原理及网络结构 1.1RNN 在Yoshua Bengio论文中( http://proceedings.mlr.press/v28/pascanu13.pdf )证明了梯度求导的一部分环节是一个指数模型…...

【漫话机器学习系列】067.希腊字母(greek letters)-写法、名称、读法和常见用途

希腊字母(Greek Letters) 希腊字母在数学、科学、工程学和编程中广泛使用,常用于表示变量、常量、参数、角度等。以下是希腊字母的完整列表及其常见用途。 大写与小写希腊字母表 大写小写名称(英文)名称(…...

2.文件IO

2.文件IO **1. 文件I/O概述****2. 文件I/O函数接口****3. 文件定位****4. 文件描述符与文件流指针的转换****5. 文件I/O与标准I/O的比较****6. 练习与作业****7. 文件I/O与标准I/O的对应关系****8. 其他注意事项****9. 总结** 1. 文件I/O概述 文件I/O:操作系统为了…...

毕业设计--具有车流量检测功能的智能交通灯设计

摘要: 随着21世纪机动车保有量的持续增加,城市交通拥堵已成为一个日益严重的问题。传统的固定绿灯时长方案导致了大量的时间浪费和交通拥堵。为解决这一问题,本文设计了一款智能交通灯系统,利用车流量检测功能和先进的算法实现了…...

【SpringBoot教程】Spring Boot + MySQL + HikariCP 连接池整合教程

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 在前面一篇文章中毛毛张介绍了SpringBoot中数据源与数据库连接池相关概念,今天毛毛张要分享的是关于SpringBoot整合HicariCP连接池相关知识点以及底层源码…...

设计模式的艺术-策略模式

行为型模式的名称、定义、学习难度和使用频率如下表所示: 1.如何理解策略模式 在策略模式中,可以定义一些独立的类来封装不同的算法,每个类封装一种具体的算法。在这里,每个封装算法的类都可以称之为一种策略(Strategy…...

【memgpt】letta 课程1/2:从头实现一个自我编辑、记忆和多步骤推理的代理

llms-as-operating-systems-agent-memory llms-as-operating-systems-agent-memory内存 操作系统的内存管理...

动态规划DP 最长上升子序列模型 合唱队形(题目分析+C++完整代码)

概览检索 动态规划DP 最长上升子序列模型 合唱队形 原题链接 AcWiing 482. 合唱队形 题目描述 N位同学站成一排,音乐老师要请其中的 (N−K)位同学出列,使得剩下的 K位同学排成合唱队形。 合唱队形是指这样的一种队形:设 K位同学从左到右…...

【踩坑】解决Hugging-face下载问题

解决Hugging-face下载问题 问题1:couldnt connect to https://huggingface.co问题2:HTTPSConnectionPool(hostcdn-lfs-us-1.hf-mirror.com, port443)设置hf_transfer加快速度 问题3:requests.exceptions.ChunkedEncodingError: (Connection b…...

Spring AI 在微服务中的应用:支持分布式 AI 推理

1. 引言 在现代企业中,微服务架构 已成为开发复杂系统的主流方式,而 AI 模型推理 也越来越多地被集成到业务流程中。如何在分布式微服务架构下高效地集成 Spring AI,使多个服务可以协同完成 AI 任务,并支持分布式 AI 推理&#x…...

5.3.2 软件设计原则

文章目录 抽象模块化信息隐蔽与独立性衡量 软件设计原则:抽象、模块化、信息隐蔽。 抽象 抽象是抽出事物本质的共同特性。过程抽象是指将一个明确定义功能的操作当作单个实体看待。数据抽象是对数据的类型、操作、取值范围进行定义,然后通过这些操作对数…...

java求职学习day20

1 在线考试系统 1.1 软件开发的流程 需求分析文档、概要设计文档、详细设计文档、编码和测试、安装和调试、维护和升级 1.2 软件的需求分析 在线考试系统的主要功能分析如下: ( 1 )学员系统 (1.1)用户模块&…...

Python NumPy(8):NumPy 位运算、NumPy 字符串函数

1 NumPy 位运算 位运算是一种在二进制数字的位级别上进行操作的一类运算,它们直接操作二进制数字的各个位,而不考虑数字的整体值。NumPy 提供了一系列位运算函数,允许对数组中的元素进行逐位操作,这些操作与 Python 的位运算符类似…...

日志2025.1.30

日志2025.1.30 1.简略地做了一下交互系统 public class Interactable : MonoBehaviour { private MeshRenderer renderer; private Material defaultMaterial; public Material highlightMaterial; private void Awake() { renderer GetComponentInChildren<Me…...

实战:如何快速让新网站被百度收录?

本文来自&#xff1a;百万收录网 原文链接&#xff1a;https://www.baiwanshoulu.com/22.html 要让新网站快速被百度收录&#xff0c;可以采取以下实战策略&#xff1a; 一、网站基础优化 网站结构清晰&#xff1a;确保网站的结构简洁清晰&#xff0c;符合百度的抓取规则。主…...

PhotoShop中JSX编辑器安装

1.使用ExtendScript Tookit CC编辑 1.安装 打开CEP Resource链接&#xff1a; CEP-Resources/ExtendScript-Toolkit at master Adobe-CEP/CEP-Resources (github.com) 将文件clone到本地或者下载到本地 点击AdobeExtendScriptToolKit_4_Ls22.exe安装&#xff0c;根据弹出的…...

01-时间与管理

时间与效率 一丶番茄时钟步骤好处 二丶86400s的财富利用时间的方法每天坚持写下一天计划 自我管理体系计划-行动-评价-回顾 一丶番茄时钟 一个计时器 一份任务清单,任务 步骤 每一个25分钟是一个番茄时钟 将工作时间划分为若干个25分钟的工作单元期间只专注于当前任务,遇到…...

MiniMax-01技术报告解读

刚刚MiniMax发布了MiniMax-01&#xff0c;简单测试了效果&#xff0c;感觉不错。于是又把它的技术报告看了一下。这种报告看多了&#xff0c;就会多一个毛病&#xff0c;越来越觉得自己也能搞一个。 这篇文章我觉得最有意思的一句是对数据质量的强调“低质量数据在训练超过两个…...

多头潜在注意力(MLA):让大模型“轻装上阵”的技术革新——从DeepSeek看下一代语言模型的高效之路

多头潜在注意力&#xff08;MLA&#xff09;&#xff1a;让大模型“轻装上阵”的技术革新 ——从DeepSeek看下一代语言模型的高效之路 大模型的“内存焦虑” 当ChatGPT等大语言模型&#xff08;LLM&#xff09;惊艳世界时&#xff0c;很少有人意识到它们背后隐藏的“内存焦虑”…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...