logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【Linux操作系统】进程篇(六):进程上下文切换与 O(1) 调度算法

本文探讨进程上下文切换与调度算法的核心机制。当进程时间片用完或主动让出CPU时,操作系统需保存其寄存器状态(如PC、SP、通用寄存器等)及运行环境,形成“进程上下文”,并存入PCB中。切换至新进程时,再从其上下文中恢复现场,确保执行连续性。同时,为高效调度多个就绪进程,Linux采用O(1)调度算法,利用优先级数组、位图及活跃/过期队列实现快速选中高优先级进程,提升系统响应效率。

文章图片
#算法#linux#c++ +2
【Linux操作系统】进程篇(五):从浅入深讲懂进程优先级

本文系统梳理了Linux进程优先级的底层逻辑:从CPU稀缺引发的竞争与并发,引出时间片与进程调度需求,进而阐明优先级的本质是资源分配规则而非权限。通过“基准PRI + NI”的换算机制(PRI = 80 + NI),解释了nice值如何影响实际优先级,并揭示其-20至19的范围设计旨在防止进程饥饿、保障系统公平性。最终强调,理解优先级需超越命令记忆,把握“为何要优先级→如何实现→为何有限制”的完整

文章图片
#linux#学习#c++ +1
【Linux操作系统】进程(四):僵尸进程与孤儿进程

本文系统讲解了Linux中僵尸进程与孤儿进程的产生机制、危害及验证方法。僵尸进程因子进程退出后父进程未回收而残留,占用内核资源;孤儿进程则因父进程先于子进程退出,由1号进程(systemd)接管。通过模拟代码与ps命令可直观观察其状态变化。文章还补充说明内核通过SLUB等缓存机制高效管理task_struct等进程控制块,提升系统性能。

文章图片
#linux#ubuntu#学习 +1
【Linux底层原理】进程篇(三):进程状态——从运行、阻塞到内核链表的动态变化

本文系统讲解了进程状态管理的核心机制。操作系统通过PCB管理进程,根据运行需求在新建、就绪、运行、阻塞、终止等状态间切换。Linux中进程状态包括R(可运行)、S/D(睡眠)、T(停止)、Z(僵尸)等,其中R状态涵盖运行与就绪。调度器基于运行队列(如FIFO思想)选择任务,而阻塞进程因等待I/O等事件进入睡眠,由等待队列管理。当事件触发,进程被唤醒但需重新调度。为缓解内存压力,系统还可将不活跃进程

文章图片
#linux#链表#c++ +2
【Linux 底层原理】进程篇(二):从 task_struct 到 fork,彻底理解进程与父子关系

本文系统阐述了程序与进程的本质区别,指出进程是程序运行时的执行实体,由内核数据结构(如Linux中的task_struct)管理。操作系统通过描述进程的状态、资源和调度信息来实现对进程的创建、调度与回收。文章结合系统调用(如getpid()、getppid())和命令行工具(如ps axj),展示了如何在实际环境中观察和理解进程的运行状态,强调“先描述,再组织”的进程管理思想,帮助读者建立清晰的进

文章图片
#linux#网络#学习 +1
【Linux 底层原理】进程(一):从硬件、操作系统到系统调用,理解程序运行机制

本文从冯诺依曼体系结构出发,阐明程序运行的硬件基础:CPU、内存与外设协同工作。操作系统作为资源管理者,通过系统调用与库函数为应用程序提供统一接口,实现对进程、内存、设备的高效管理。核心思想是“先描述,再组织”——操作系统先抽象描述资源状态,再按规则调度与分配,保障多任务并发下的安全性与稳定性。理解这一哲学,是掌握进程管理与系统运作的关键。

文章图片
#linux#服务器#算法 +2
【Linux系统编程】:从操作系统历史到用户管理

计算机从埃尼阿克走向平民化,摩尔定律推动算力飞跃。1991年林纳斯·托瓦兹开源Linux,凭借透明与协作优势,现主宰服务器与安卓。企业青睐其可定制、无后门特性。学习推荐使用云服务器+Xshell,通过Ubuntu或CentOS搭建环境。核心操作包括:root用户掌控全局,adduser创建用户,userdel -r彻底删除,whoami与users查身份。一句话总结:算力普惠催生开源生态,用户管理

文章图片
#c++#算法#数据结构 +1
转轮数组(github)

输入: nums = [1,2,3,4,5,6,7], k = 3。- 输入:nums = [-1,-100,3,99], k = 2。- 向右轮转 1 步: [7,1,2,3,4,5,6]- 向右轮转 2 步: [6,7,1,2,3,4,5]- 向右轮转 3 步: [5,6,7,1,2,3,4]- 向右轮转 1 步: [99,-1,-100,3]- 向右轮转 2 步: [3,99,-1,-100

文章图片
#数据结构
从零实现 C++ List:带头循环双向链表的每一个细节

本文详细记录了从零手写C++ std::list容器的完整过程,包括底层双向链表设计、迭代器封装原理、const迭代器合并技巧等核心实现。文章通过16个章节系统讲解了list的节点结构、迭代器本质、深拷贝实现等关键技术点,特别剖析了链表与顺序表的本质差异。作者不仅提供了可直接运行的完整代码,还分享了实际开发中遇到的典型问题(如迭代器失效)及其解决方案。该实现适合学习C++数据结构的开发者参考,能帮

文章图片
#算法#数据结构#leetcode +3
    共 15 条
  • 1
  • 2
  • 请选择