news 2026/5/1 8:32:06

操作系统调度、浏览器历史——使用线性表实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
操作系统调度、浏览器历史——使用线性表实现

操作系统调度中的线性表实现

在操作系统(如Linux内核)中,进程调度通常涉及队列(Queue),例如就绪队列(Ready Queue)用于管理等待CPU的进程。这是一种线性表的形式,遵循FIFO原则(或优先级变体)。根据需求(如频繁的进程插入、删除和优先级调整),操作系统内核更倾向于使用**链表(Linked List)**实现队列,而不是数组:

  • 原因:进程数量动态变化,插入/删除操作频繁(O(1)时间复杂度),链表避免了数组的元素移动开销和固定大小限制。数组在这种场景下容易导致碎片或溢出。
  • 示例:在多级反馈队列调度(MLFQ)或圆robin调度中,就绪队列常用单链表或双向链表,每个节点代表一个进程控制块(PCB)。优先级队列可能用数组索引的链表数组(bucket queuing)。
  • 实际应用:如在操作系统概念书中,Ready Queue常用链表来允许进程在队列间移动。 现代OS如Linux的CFS调度器也使用红黑树(树形结构,但基础队列部分仍借鉴链表动态性)。
如果进程数固定且少,数组实现(如循环队列)可能用于简单嵌入式系统,但主流桌面/服务器OS优先链表以优化性能和内存。

浏览器历史中的线性表实现

浏览器历史(Back/Forward功能)通常用两个栈(Stacks)实现:一个后退栈(存储已访问页面),一个前进栈(存储前进页面)。这也是线性表的特殊形式,遵循LIFO原则。
实现方式根据浏览器而异,但现代浏览器更常用**动态数组(Dynamic Array,如C++的std::vector或Java的ArrayList)**而不是纯链表:

  • 原因:历史记录数量有限(通常数百条),动态数组支持高效的push/pop(摊销O(1)),且允许随机访问(如查看历史列表)。链表虽灵活,但缓存不友好,现代CPU更青睐数组的连续内存。内存开销也较低。
  • 示例:在设计题中,常建议用双向链表(Doubly Linked List)模拟,因为它便于在历史中“跳转”(forward/back)。 但实际浏览器如Chrome或Firefox,使用自定义数组结构或deque(双端队列,常基于数组),以平衡性能和内存。
  • 实际应用:当你后退时,从当前栈pop并push到前进栈;前进反之。数组实现简化了历史持久化(如保存到数据库)。

总体上,选择取决于具体需求:如果强调动态性和频繁操作,链表更好;

如果大小可控且需高效访问,数组优先。

在C语言实现中,可以根据场景灵活选择(如用malloc动态数组模拟vector)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 3:51:48

Qwen3-VL-4B Pro部署教程:解决transformers版本兼容的内存补丁实践

Qwen3-VL-4B Pro部署教程:解决transformers版本兼容的内存补丁实践 想快速体验一个能“看懂”图片的AI助手吗?Qwen3-VL-4B Pro就是一个不错的选择。它基于阿里通义千问的官方4B模型,不仅能识别图片里的物体,还能回答关于图片的各…

作者头像 李华
网站建设 2026/5/1 3:47:18

通义千问1.5-1.8B-Chat-GPTQ-Int4在LaTeX文档编写中的智能排版辅助

通义千问1.5-1.8B-Chat-GPTQ-Int4在LaTeX文档编写中的智能排版辅助 写学术论文或者技术手册,最头疼的环节是什么?很多人会说是排版。尤其是用LaTeX,虽然最终效果专业漂亮,但那一堆复杂的命令和语法,还有动不动就报错的…

作者头像 李华
网站建设 2026/5/1 3:52:02

经典歌曲免费下载分享

经典歌曲免费下载分享 文章目录经典歌曲免费下载分享一、前言二、歌曲分享三、其他一、前言 马上过年了,可能大部分上班的人都没什么心思上班了。 分享点轻松的音乐干货资源。 这里免费分享一下可以播放的一些mp3和mp4音乐歌曲,有需求的可以收藏下载。…

作者头像 李华
网站建设 2026/5/1 4:48:05

你以为自己漏消息了?其实是 GitHub “卡了下”

2月9日 GitHub 确实出现了一波 通知延迟,并且伴随 多个核心服务的性能降级:包括 Actions、Git Operations、Issues、Pull Requests、Webhooks、Packages、Pages、Codespaces,甚至还波及到 Copilot、Dependabot 等相关能力。最后官方宣布恢复正…

作者头像 李华
网站建设 2026/5/1 4:49:06

中医学四大经典著作,不包括本草纲目

中医学四大经典的认定,不包括本草纲目。中医学四大经典是指《黄帝内经》《难经》《伤寒杂病论》和《神农本草经》。这些著作成书于战国至东汉时期,奠定了中国传统医学的理论基础。其中,《黄帝内经》和《难经》为理论经典,而《伤寒…

作者头像 李华
网站建设 2026/5/1 4:47:13

为什么AI Native公司更需要飞函私有化IM

在AI创业浪潮中,越来越多的AI Native公司如雨后春笋般涌现。这些公司以AI为核心竞争力,业务高度依赖算法、数据和模型。然而,在选择内部协同工具时,许多AI公司却忽视了一个关键问题:你的聊天记录,可能比你想…

作者头像 李华