操作系统原理学习总结

Linux操作系统原理与应用(陈莉君)——学习笔记 《Linux操作系统原理与应用》作者陈莉君是翻译《深入理解Linux内核》的作者。 虽然我不觉得《深入理解Linux内核》翻译得很好,但是从作者这种为推广Linux内 核而努力的精神还是挺佩服的,因此,这里无私分享出学习《Linux操作系统原理与应用》 的学习笔记。 书中给出了许多代码实例,很适合结合边学习边实践。 该教材还提供实践学习网站:Linux内核之旅 网站中有许多关于Li 阅读详情

1.操作系统本质上属于软件的范畴,是一种比较特殊的,系统级的应用软件,所以,我们就可以用应用软件开发的普遍原理来理解操作系统。操作系统从字符界面到图形界面的进化和发展过程,就是就是不断满足用户需求的过程,软件工程讲究用户需求,在这里表现的比较突出,虽然字符界面比较灵活和功能强大,但是其操作比较复杂;而图形界面对于普通人而言操作简单,不需要培训,符合大众的需求,而且比较人性化。这才是windows比较流行的原因。当然,图形界面的本质还是字符界面,专业人员用的还是字符界面。

 

2. 进程是指,程序的一次执行,包括可执行的程序、程序所需的数据和相关状态信息。进程是拥有资源的最小实体。(资源申请的最小单位)线程也是程序的一次执行,但是线程是系统调度的最小单位。

 

3. 进程的组成(进程映像): 程序、数据集合、进程控制块PCB(Process Control Block )

PCB是进程存在的唯一标志。创建进程时,创建PCB;进程结束时,系统将撤消其PCB

 

4.


5.


6.分页与分段技术的比较

(1)页是信息的物理单位,大小固定。段是信息的逻辑单位,各段的长度不固定。每一段都具有一定逻辑含义。

(2)分页的地址空间是一维的,逻辑地址的划分由机器硬件实现,对用户透明。分段的地址空间是二维或多维的,程序员知道段名和段内偏移量。

(3)分页活动源于系统管理物理内存的需要,在系统内部进行,由系统实施,用户看不见。分段活动源于用户进行模块化程序设计的需要,在系统外部进行,由用户实施,用户是知道的。

 

7. 段页式存储管理

基本思想:采用分段方法组织用户程序,采用分页方法分配和管理内存。

即,用户程序可以用模块化思想进行设计,一个用户序由若干段构成。系统将内存划分成固定大小的页框,并将程序的每一段分割成若干页以后装入内存执行时。

8.



9. 综合了分段和分页技术的优点,既能有效地利用存储空间,又能方便用户进行程序设计。

但是,实现段页式存储管理系统需要增加硬件成本,系统的复杂度和管理开销也大大增加。

因此,段页式存储管理技术适合于大、中型计算机系统,不太适合小型、微型计算机系统。

 

10. 逻辑设备和物理设备

— 逻辑设备是指,应用软件所引用的用于实现I/O操作的设备。

— 物理设备则指,物理I/O系统中实际安装的设备。

从应用软件的角度看,逻辑设备是一类物理设备的抽象。从操作系统设备管理程序的角度看,物理设备则是某种逻辑设备的实例。

 

11. 设备驱动,又称设备处理,指对物理设备进行控制,以实现真正的I/O操作。

设备驱动的主要任务是:接收上层软件发来的抽象服务请求,例如读/写命令,再把它转换为具体要求,通过一系列的I/O指令,控制设备完成请求的操作;同时,设备驱动程序还将设备发来的有关信号传送给上层软件,例如设备是否已损坏等。操作系统仅对设备的接口提出要求。

 

12. 通道相当于一个功能单纯的处理机,专门用于处理I/O操作。通道有自己的运控部件和指令系统,但没有专门的内存,而是通过“周期窃用”方式与主机共享内存。

通道通过执行通道程序来完成I/O操作。

—通道程序是通道指令的有序序列,它由系统中的输入/输出进程根据用户进程的I/O要求来确定,可以是事先编制好的程序段,也可以动态产生。通道程序以及需要与设备交换的数据均放置在内存中。

一条通道指令可以传送一组数据,一个通道程序可以传送多组数据。多组数据全部传送完毕后(即一个通道程序执行完毕),才向处理机发出一次中断。

通道不仅可以传送数据,更重要的是它还完成对设备的控制。在通道的协助下,主机只需发出一个启动通道、执行通道程序的指令即可。主机仅与通道直接通信,不必考虑设备的具体控制以及如何完成数据传送等问题,从而大大减轻了主机的负担。

    相当于一个协处理器

13.虚拟设备技术的实现

虚拟设备技术类似缓冲区技术,可以认为是为设备提供了多个更大的、甚至在实际工作中是无限长度的缓冲区,进一步提高系统效率。(一般是磁盘)

虚拟设备技术的实现:在独占型设备与进程之间加入一个共享型设备作为过渡,如图




14、SPOOLing系统

译为:“假脱机操作”(占用少量的CPU时间)

SPOOLing系统是虚拟设备最典型的代表,包括假脱机输入和输出系统两个部分。

核心思想:在快速辅助存储设备中建立I/O缓冲区,用于缓存从慢速输入设备流入内存的数据,或缓存从内存流向慢速输出设备的数据。

 





15. 扇区是磁盘进行I/O传输的基本单位,也是磁盘空间分配的基本单位

磁盘的基本存储单元(扇区)的寻址方式为三维地址:柱面号、盘面号、扇区号。

为了方便管理及屏蔽存储设备的物理细节,操作系统向上层软件提供统一的接口,常使用一维地址,即只有逻辑磁盘块号(逻辑扇区号),将磁盘组中所有的扇区从0开始编号。

显然,这里就存在着一维地址与三维地址间相互转换的问题

为了提高效率,对于移动磁头式磁盘机来说,磁头引臂的机械运动(寻道)速度最慢,其次才是盘片转动的速度,因此,编排逻辑块号时,扇区号先变化,其次是盘面号,最后才是柱面号。 

廉价却有效?ESD防护中的电容 摘要:在成本敏感型电子产品设计中,多层陶瓷电容(MLCC)可作为TVS二极管的替代方案用于静电放电(ESD)防护。其工作原理是通过电容充放电特性吸收静电能量,而非电压钳位。计算表明100nF/50V MLCC可有效缓冲8kV静电冲击,但存在吸收能量有限、无自恢复等局限。建议将MLCC作为一级缓冲措施,配合TVS等器件形成多级防护,并优先选择X7R材质、100nF容值、50V耐压的0402/0603封装MLCC。该方案在低速信号和电源引脚防护中具有显著成本优势,但不能完全替代专业ESD抑制器。 阅读详情

相关推荐

Isaac Sim 使用经验(配置要求,云服务器)

Google Colab及AutoDL都是在docker内运行,其中google colab并不支持docker指令,而依照AutoDL的相关文档,AutoDL并不直接提供docker指令。2. Google Colab/AutoDL 不支持图形化界面,图形渲染等任务,所以没有办法使用Omniverse Streaming进行直播,从而更好的对结果进行展示。对于第一点,或许存在直接手动复现镜像的可能,但是考虑到Isaac Sim/Isaac Lab由于比较新,可能不够稳定,因此还是按照官方文档进行部署。

weixin_44211433的博客 4586

设备管理(八)

8.1 设备管理概念 按交互对象分类 人机交互设备: 显示设备,键盘,鼠标,打印机 与CPU等交互的设备: 磁盘,磁带,传感器,控制器 计算机间的通信设备:网卡,调制解调器 按交互方向分类 输入设备: 键盘,扫描仪 输出设备: 显示设备,打印机 双向设备: 输入/输出:硬盘,软盘,网卡 按外设特性分类 使用特征: 存储, 输入/输出 数据传输率: 低速(键盘),中速(打印机),高诉(网卡,磁盘) 信息组织特征:字符设备(打印机),块设备(磁盘),网络设备 鼠标内部 键盘内部

Briwisdom的博客 1497

智能车轮腿组‘定点排雷’科目全解析:从雷区识别到姿态控制

本文深入解析了智能车竞赛轮腿穿越组‘定点排雷’科目的核心技术。从构建鲁棒的视觉识别系统,到融合编码器与IMU进行厘米级定位,再到实现框内高精度旋转的姿态控制,提供了一套完整的从感知到执行的闭环技术方案,助力参赛队伍攻克这一高难度科目。

weixin_29161719的博客 639

第八章-设备管理

第八章-设备管理

weixin_51231121的博客 956

基于CPCC_S_TASK_LIST_MAINTAIN的工艺路线组件批量分配实战与避坑指南

本文详细解析了SAP PP模块中基于CPCC_S_TASK_LIST_MAINTAIN函数实现工艺路线组件批量分配的实战技巧与避坑指南。针对批量分配的核心挑战,提供了参数配置、BAPI协同使用、Excel导入等解决方案,并分享了大容量数据处理优化经验,帮助用户高效完成工艺路线组件分配任务。

weixin_33563728的博客 305

ROS2中间件选型指南:FastDDS与CycloneDDS零拷贝机制对比与实战

在机器人开发中,通信中间件是连接分布式节点的核心纽带,其性能直接影响系统的实时性与可靠性。DDS作为ROS2默认的通信标准,通过发布订阅模型和QoS策略,为高频大带宽场景提供了灵活的数据分发能力。并行计算与高性能传输的需求,推动了零拷贝技术的演进——从传统序列化到共享内存乃至指针传递,旨在减少数据复制开销、降低延迟。在激光雷达点云、相机图像等场景下,中间件的选型尤为关键。FastDDS凭借与ROS2的深度集成和丰富文档成为入门首选,而CycloneDDS在低延迟和资源占用上表现更优,借助iceoryx实现了

weixin_28726391的博客 250

操作系统期末复习

操作系统期末复习 什么是操作系统? 操作系统是管理系统资源,控制程序运行,改善人机界面,提供各种服务,并合理组机计算机工作流程和为用户使用计算机提供良好接口的系统软件 操作系统主要任务之一就是对资源进行管理,有序的控制软硬件资源的分配、使用和回收,使资源能够共享,资源共享的三种管理技术:资源虚拟、资源抽象、资源 OS种基本类型、性质、五个功能? 处理器管理,存储管理,设备管理,文件管理,用户接口 什么是多道程序设计? 多道程序设计:任何时刻都允许多道程序在系统中同时执行。 特性: 从宏观上看并行; 从微观上

小爽帅到拖网速的博客 4377

无监督低照度增强实战:用ZeroDCE和SCI拯救你的夜间照片(附PyTorch代码)

本文深入探讨了无监督低照度图像增强技术,重点解析了ZeroDCE和SCI两大代表性模型的核心原理与实战应用。通过对比分析两者的技术路径、网络结构及性能特点,并附上详细的PyTorch代码实现,旨在帮助读者掌握无需配对数据即可有效提升夜间照片画质的深度学习解决方案。

git9versioner的博客 489

【爆肝四万字!操作系统原理95+】期末考试知识点超超全总结

计算机系统是由硬件和软件组成的硬件是软件建立与活动的基础,是计算机系统实际的物理实现。由运算器、控制器、存储器、输入设备、输出设备组成,通过系统总线连接在一起,实现彼此通信软件是指计算机系统中运行的程序和数据,对硬件进行管理和功能扩充计算机系统的资源可以归结为:处理器、存储器、I/O设备、数据和程序在硬件基础上“覆盖”一些软件,使得计算机系统更加容易使用并且高效。计算机硬件上的第一层软件就是操作系统(Operating System , OS),OS是计算机必须配置的最基本、最重要的系统软件。

亿维数组's博客 5006

基于Dify构建银行智能客服:从意图识别到多RAG架构的实战解析

本文深入解析了如何利用Dify平台构建银行智能客服系统。从传统客服痛点出发,详细阐述了基于意图识别精准分类用户需求,并通过多RAG架构解决知识混淆问题,实现高效、准确的业务响应。文章重点介绍了结合工具调用实现业务流程自动化,并强调了数据本地化部署、内容安全过滤等银行级安全合规实践,为金融行业AI应用提供了实战指南。

yog99的博客 926

DISK配置服务器软RAID工作任务(RAID1+BITLOCKER)-winserver4

DISK配置服务器软RAID工作任务(RAID1+BITLOCKER)-winserver4

新时代先锋的博客 7298

漫谈如何学习操作系统原理

本人学习计算机技术至今,对于如何学习操作系统原理有一点自己的看法,现在写出来,希望对大家能有所帮助!        操作系统怎么学,首先要想操作系统是怎么来的,在没有操作系统的年代里,人们是怎么编程的。这是首要的问题。不知道有没有人看过INTEL官方的CPU文档,总是分为应用级编程、系统级编程、指令集这三块。其中系统级编程这一块最复杂,我不说内容,就单从文件的大小来看,IA-64编程手册的应用

foodvc的专栏 1127

JavaScript教程-字符集,Unicode转义序列,标识符,数据类型,数字,未定义值,浮点数,字符串,引用数据类型,类型检测,类型转换,运算符,关系运算符,

前端学习

VAN 212

图解操作系统原理 - 学习资源下载

图解操作系统原理 - 学习资源下载 去发现同类优质开源项目:https://gitcode.com/ 此仓库包含了关于操作系统原理的详细图解资源文件。这些资源旨在帮助读者深入理解操作系统的核心概念,涵盖了以下关键领域: 操作系统结构:介绍了操作系统的基本组成和各部分的功能。 进程管理:详细解析了进程的创建、调度、同步与通信。 内存管理:包括内存分配、分页与分段机制以及虚拟内存技术。 文件系统:讨...

gitblog_06705的博客 399

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

如何学习操作系统原理?

我们简单地谈一谈如何学习操作系统原理,这里我们假设读者基本是一个小白,只有一点算法和数据结构的基础,比如会用C语言写链表,快排之类的。有一点我们必须强调,一切没有(伪)代码的理论书籍都是在耍流氓。所以根据这条准则,我们得通过编程的方式来学习操作系统原理。引用某老师的一句话,"Learning by coding them"。还有一点,学习操作系统原理不是学习怎么用各种API以及如何配置操作系统里头...

weixin_30606669的博客 572

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

漫谈如何学习操作系统原理(转载)

漫谈如何学习操作系统原理 本人学习计算机技术至今,对于如何学习操作系统原理有一点自己的看法,现在写出来,希望对大家能有所帮助!        操作系统怎么学,首先要想操作系统是怎么来的,在没有操作系统的年代里,人们是怎么编程的。这是首要的问题。不知道有没有人看过INTEL官方的CPU文档,总是分为应用级编程、系统级编程、指令集这三块。其中系统级编程这一块最复杂,我不说内容,就单从文件的

soBeautiful 904

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

[操作系统-心得]漫谈如何学习操作系统原理

本人学习计算机技术至今,对于如何学习操作系统原理有一点自己的看法,现在写出来,希望对大家能有所帮助! 操作系统怎么学,首先要想操作系统是怎么来的,在没有操作系统的年代里,人们是怎么编程的。这是首要的问题。不知道有没有人看过INTEL官方的CPU文 档,总是分为应用级编程、系统级编程、指令集这三块。其中系统级编程这一块最复杂,我不说内容,就单从文件的大小来看,IA-64编...

anlianhuo0796的博客 397

学习操作系统的必备教科书《操作系统:原理与实现》| 文末赠书4本

本文简单介绍了博主学习操作系统的心路历程,同时还给大家总结了一下当下流行的几种实时操作系统,以及在工程中OSAL应该如何设计。希望对大家有所启发和帮助。

一个专注于嵌入式IoT领域的架构师,深耕IoT领域多年,深度掌握IoT领域的相关技术栈,包括但不限于RTOS内核的实现及其移植、硬件驱动移植开发、网络通讯协议开发、编译构建原理及其实现、底层汇编及编译原理、编译优化及代码重构、嵌入式IoT系统的架构设计等。 1万+

操作系统详解学习资料:助你深入了解操作系统核心原理

操作系统详解学习资料:助你深入了解操作系统核心原理 去发现同类优质开源项目:https://gitcode.com/ 在当今技术日新月异的时代,操作系统作为计算机系统的基础和核心,其重要性不言而喻。今天,我要向大家推荐一个极富价值的开源项目——操作系统详解学习资料。以下是对这个项目的详细介绍。 项目介绍 操作系统详解学习资料是一个专注于操作系统(Operating System, OS)学习的资源...

gitblog_06779的博客 440

当今时代真的有必要学习一下操作系统原理

但这些都是处于应用层,具体到我们的程序如何执行,硬件如何处理的就需要操作系统的知识。比如我们在C语言学习中用到的PRINTF函数,在具体运行时就牵涉到操作系统的知识。本人70后,那个时候学的计算机知识也就是应用层,如WPS等,用的操作系统是DOS。互联网真是好东西,后期在网上找到许多操作系统原理的资料,对计算机的运行过程才有个一个深入的理解,强烈建议有兴趣的爱好者先读LINUX0.11的源码,赵烔博士写的书网上可以找到,在后续的文章中,本人把在学习过程中遇到的问题写一点,对后来者能有点帮助。

weixin_32768871的博客 306

本科生操作系统原理学习记录

本科生操作系统原理学习记录 第一章 绪论 第二章 操作系统结构

weixin_45788387的博客 680
上一篇: jvm垃圾收集器与内存分配策略
下一篇: 我的书单
breaknull
博客等级 码龄14年 15粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值