深入linux内核架构读书笔记-进程管理和调度

简介: 看了这本书以后才知道自己对Linux了解的肤浅,希望写一些笔记对大家有所帮助。 一。进程分类: 1、硬实时进程例如飞机操作系统 2、软实时进程有些延迟 3、普通进程,分配进程优先级。

看了这本书以后才知道自己对Linux了解的肤浅,希望写一些笔记对大家有所帮助。

一。进程分类:

1、硬实时进程例如飞机操作系统

2、软实时进程有些延迟

3、普通进程,分配进程优先级。

二。进程生命周期

1. 运行 分配CPU时间之后进入运行状态

2. 等待 进程回收CPU资源进入等待状态

3.睡眠  进程等待事件,状态从运行转到睡眠,但是无法从睡眠转到运行,只能转到等待,然后进入循环

4.终止 程序退出

5. 僵尸 正常退出程序的流程是程序必须由另外一个进程或者用户杀死通过SIGTERM或SIGKILL信号,第二个重要的进程的父进程在子进程终止时必须调用或者已经调用wait4系统调用。僵尸程序就是正常退出程序,但同时没有执行wait4函数,其数据尚未从进程表删除之前,处于僵尸状态。系统重启以后即可解决僵尸进程。

三。进程内核结构

代码省略,太过复杂主要分成以下几个方面

1. 状态和执行信息,例如进程pid号,到父进程及其他有关进程的指针、优先级和程序执行有关的时间信息例如CPU时间

2.有关已经分配的虚拟内存信息

3.进程身份凭据例如uid,gid以及权限

4.task_struct定义在sched.h定义了STATE状态

TASK_RUNNING 进程处于可以运行状态

TASK_INTERRUPTIBLE 针对等待某事件或其他资源的睡眠进程设置的

TASK_UNINTERRUPTIBLE 因为内核指示而停用的睡眠进程

TASK_STOPPED 停止运行

TASK_TRACED

EXIT_ZOMBIE 僵尸

EXIT_DEAD 值wait系统调用已经发出,而进程完全从系统移除之前的状态

 

5. 资源限制

resource.h

struct rlimit{

         unsigned long rlim_cur;

         unsigned long rlim_max;

}

rlim_cur是进程当前的资源限制称为soft limit

rlim_max是hard limit

系统调用函数setrlimit增减当前限制

系统调用函数getrlimits检查当前限制

setrlimit资源限制:

RLIMIT_CPU 按毫秒计算的最大CPU时间

RLIMIT_FSIZE 允许的最大文件长度

RLIMIT_STACK 用户状态栈的最大长度

RLIMIT_DATA 数据段的最大长度

RLIMIT_CORE 内存转储文件的最大长度

RLIMIT_RSS 常驻内存的最大尺寸

RLIMIT_NPROC 与进程真正UID关联的用户可以拥有的进程的最大数目

RLIMIT_MEMLOCK 不可换出页的最大数目

RLIMIT_AS 进程占用的虚拟地址空间的最大尺寸

RLIMIT_LOCKS 文件锁的最大数目

RLIMIT_SIGPENDING 待决信号的最大数目

RLIMIT_MSGQUEUE 信息队列的最大数目

RLIMIT_NICE 非实时进程的优先级

RLIMIT_PTPRIO 最大的实时优先级

查看以前内容通过cat /proc/self/limits

 

目录
相关文章
|
2月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
478 57
|
3月前
|
并行计算 Linux
Linux内核中的线程和进程实现详解
了解进程和线程如何工作,可以帮助我们更好地编写程序,充分利用多核CPU,实现并行计算,提高系统的响应速度和计算效能。记住,适当平衡进程和线程的使用,既要拥有独立空间的'兄弟',也需要在'家庭'中分享和并行的成员。对于这个世界,现在,你应该有一个全新的认识。
184 67
|
1月前
|
存储 负载均衡 算法
Linux2.6内核进程调度队列
本篇文章是Linux进程系列中的最后一篇文章,本来是想放在上一篇文章的结尾的,但是想了想还是单独写一篇文章吧,虽然说这部分内容是比较难的,所有一般来说是简单的提及带过的,但是为了让大家对进程有更深的理解与认识,还是看了一些别人的文章,然后学习了学习,然后对此做了总结,尽可能详细的介绍明白。最后推荐一篇文章Linux的进程优先级 NI 和 PR - 简书。
38 0
|
7月前
|
存储 算法 调度
深入理解操作系统:进程调度的奥秘
在数字世界的心脏跳动着的是操作系统,它如同一个无形的指挥官,协调着每一个程序和进程。本文将揭开操作系统中进程调度的神秘面纱,带你领略时间片轮转、优先级调度等策略背后的智慧。从理论到实践,我们将一起探索如何通过代码示例来模拟简单的进程调度,从而更深刻地理解这一核心机制。准备好跟随我的步伐,一起走进操作系统的世界吧!
|
8月前
|
消息中间件 算法 调度
深入理解操作系统:进程管理与调度
操作系统是计算机系统的核心,负责管理和控制硬件资源、提供用户接口以及执行程序。其中,进程管理是操作系统的重要组成部分,它涉及到进程的创建、调度、同步和通信等方面。本文将深入探讨进程管理的基本概念、进程调度算法以及进程间的同步和通信机制。通过本文的学习,读者将能够更好地理解操作系统的工作原理,并掌握进程管理的基本技能。
119 11
|
8月前
|
算法 调度 UED
深入理解操作系统:进程管理与调度策略
操作系统作为计算机系统的核心,其进程管理和调度策略对于系统性能和用户体验至关重要。本文将通过直观的代码示例和浅显易懂的语言,带领读者了解操作系统如何有效管理进程以及常见的进程调度算法。我们将从进程的基本概念出发,逐步深入到进程状态、进程控制块(PCB)的作用,最后探讨不同的调度算法及其对系统性能的影响。无论您是初学者还是有一定基础的开发者,都能从中获得有价值的信息。
|
8月前
|
缓存 算法 Linux
Linux内核的心脏:深入理解进程调度器
本文探讨了Linux操作系统中至关重要的组成部分——进程调度器。通过分析其工作原理、调度算法以及在不同场景下的表现,揭示它是如何高效管理CPU资源,确保系统响应性和公平性的。本文旨在为读者提供一个清晰的视图,了解在多任务环境下,Linux是如何智能地分配处理器时间给各个进程的。
|
8月前
|
负载均衡 算法 调度
深入理解操作系统:进程管理与调度
在数字世界的心脏,操作系统扮演着至关重要的角色。它如同一位精明的指挥家,协调着硬件资源和软件需求之间的和谐乐章。本文将带你走进操作系统的核心,探索进程管理的艺术和调度策略的智慧。你将了解到进程是如何创建、执行和消亡的,以及操作系统如何巧妙地决定哪个进程应该在何时获得CPU的青睐。让我们一起揭开操作系统神秘的面纱,发现那些隐藏在日常计算背后的精妙机制。
|
8月前
|
调度 开发者
深入理解操作系统之进程调度
在计算机科学领域,操作系统是核心的一环,它管理着计算机硬件资源,并提供接口供上层软件运行。本文将通过深入浅出的方式,探讨操作系统中至关重要的一个概念——进程调度。我们将从基础理论出发,逐步展开讲解进程调度的原理和实现,并配以实际代码示例,旨在帮助读者更好地理解和掌握这一主题。文章不仅适合初学者建立基础,也适合有一定基础的开发者深化理解。
|
7月前
|
Java Linux API
[JavaEE]———进程、进程的数据结构、进程的调度
操作系统,进程任务,PCB,PID,内存指针,文件描述符表,进程的调度,并发编程,状态,优先级,记账信息,上下文

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问