操作系统理论知识快速总览

操作系统整体架构

搬出考研时的思维导图
在这里插入图片描述

操作系统主要分为

  • 批处理系统(老古董,基本不用了)
  • 实时操作系统(嵌入式中使用较多,RTOS)
  • 分时操作系统(PC中使用较多,Linux,Windows)

分时操作系统和实时操作系统的使用场景不同,没有高低贵贱之分。
注意,Linux是分时操作系统,RT-Linux是实时操作系统

分时系统根据实现的方法不同又可以分为:

  • 微内核架构(目前业界没有纯粹的微内核,Harmony号称要做微内核系统)
  • 宏/单内核架构
  • 混合内核架构(目前Linux和Window都是混合内核,并不是单纯的宏内核)
  • 外核架构(只停留在学界,发了几篇论文,压根没有实现)
  • 虚拟机架构:在操作系统之下再设一个“操作系统”,这个架构主要使用在云服务上。

分时操作系统的基本组成部分为:

  • 进程管理
  • 内存管理
  • 文件管理
  • 设备驱动

实时操作系统的基本组成部分为:

  • 任务调度
  • 中断管理
  • 资源管理
  • 时钟和定时器

分时操作系统中也有时钟和定时器,也有中断管理等。在计算机的发展中,老的技术往往并不是被淘汰,而是被集成在底层,就像进程调度和任务调度,进程调度是更高端的任务调度,任务调度的思想以及实现方法并没有被淘汰,而是被集成。

操作系统的工作以及理念

操作系统的三个特性:虚拟化,并发,持久

来自操作系统导论,与考研的可能不太一样。

  • 虚拟化,即将底层的硬件进行抽象,提供给软件以虚拟的硬件。例如进程的概念就是对CPU的虚拟化,让每个软件以为自己独占CPU,主要面临的问题是如何在虚拟化的同时不损失过多的性能。
  • 并发:多个软件“同时”运行,主要面临的问题是如何调度,确保每个软件都能正常运行,涉及到调度算法,共享资源等问题。
  • 持久:保持信息不丢失,主要面临的问题是保存在哪里?跟这些设备如何进行通信。

除此三项之外,操作系统还要确保每个软件和硬件的安全,不会被其他软件破坏,这个功能贯穿在三大特性中的任何地方。
解决以上几项问题的程序,组合到一起构成了操作系统这么一个大程序。
在这里插入图片描述
Linux kernel的组成

Linux内核的构成

进程管理

进程管理的主要内容包括:

  • 进程模型 & 进程创建 & 进程销毁
  • 进程调度算法:Linux中进程分为实时进程,非抢占式进程和正常进程,对于最常用的正常进程,使用的是CFS调度方法,
  • 进程间通信 & 进程间共享数据 & 锁

内存管理

主要内容包括:

  • 虚拟地址机制 & 虚拟地址下的读取 and 修改
  • TTL快表的引入以及相匹配的机制
  • 内存分配算法 & 内存管理算法
  • 内存共享 & 内存保护

文件系统

  • 虚拟设备,spooling技术
  • VFS虚拟文件系统
  • IO调度
    请添加图片描述

除了上面谈到的这三大部分以外,Linux还有网络编程部分,字符设备部分
请添加图片描述

向上向下:

操作系统向上,需要提供系统调用,例如fork(),exec(),open(),write()这些API,并提供相应的ABI二进制接口供编程语言调用。
操作系统向下,需要根据ISA提供的一系列信息来实现自己的功能,例如中断功能,就需要根据ISA的规定,将负责中断的CSRs设置为相应的状态,并在相应的中断程序入口地址写上相应的处理代码。简而言之就是将软件状态机转化为硬件状态机。
在这里插入图片描述

ISA是标准,是软件硬件相互的约定,并不是计算机中实际存在的实体。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/802046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【蓝桥杯第十二届省赛B】(部分详解)

空间 8位1b 1kb1024b(2^10) 1mb1024kb(2^20) 时间显示 #include <iostream> using LLlong long; using namespace std; int main() {LL t;cin>>t;int HH,MM,SS;t/1000;SSt%60;//like370000ms370s,最后360转成分余下10st/60;MMt%60;t/60;HHt%24;printf("%02d:…

[C语言]——动态内存管理

目录 一.为什么要有动态内存分配 二.malloc和free 1.malloc 2.free 三.calloc和realloc 1.calloc 2.realloc 3.空间的释放​编辑 四.常见的动态内存的错误 1.对NULL指针的解引用操作 2.对动态开辟空间的越界访问 3.对非动态开辟内存使用free释放 4.使用free释放⼀块…

外汇110:谷歌起诉应用程序开发商伪造加密投资APP诈骗!

谷歌&#xff08;Google&#xff09;已对两家应用程序开发商提起诉讼&#xff0c;指控其参与“国际在线消费者投资欺诈计划”。该计划欺骗用户从 Google Play 商店和其他渠道下载虚假的安卓&#xff08;Android&#xff09;应用程序&#xff0c;并以承诺更高回报为幌子窃取他们…

SinoDB用户权限

SinoDB用户权限是由数据库对象和操作类型两个要素组成的&#xff0c;定义一个用户的权限就是定义这个用户可以对哪些数据对象进行哪些类型的操作。 SinoDB使用了三级权限来保证数据的安全性&#xff0c;它们分别是数据库级权限&#xff0c;表级权限和字段级权限。 1. 数据库级…

备考ICA----Istio实验17---TCP流量授权

备考ICA----Istio实验17—TCP流量授权 1. 环境准备 1.1 环境部署 kubectl apply -f <(istioctl kube-inject -f istio/samples/tcp-echo/tcp-echo.yaml) -n kim kubectl apply -f <(istioctl kube-inject -f istio/samples/sleep/sleep.yaml) -n kim1.2 测试环境 检测…

LangChain-14 Moderation OpenAI提供的功能:检测内容中是否有违反条例的内容

背景描述 我们在调用OpenAI的接口时&#xff0c;有些内容可能是违反条例的&#xff0c;所以官方提供了一个工具来检测。 安装依赖 pip install --upgrade --quiet langchain-core langchain langchain-openai编写代码 下文中我们使用了: OpenAIModerationChain 这个工具来…

PHP运算符与流程控制

华子目录 运算符赋值运算符算术运算符比较运算符逻辑运算符连接运算符错误抑制符三目运算符自操作运算符 计算机码位运算符 运算符优先级流程控制控制分类顺序结构分支结构if分支switch分支 循环结构for循环while循环continuebreak 运算符 运算符&#xff1a;operator&#xf…

JNA、JNI、原生C++函数调用效率及测试过程

结论 如果JAVA要高效调用C函数&#xff0c;则需要通过JNI封装C函数后进行native方法调用&#xff0c;JNI的执行效率比JNA高600倍左右。从开发效率上来说&#xff0c;JNA开发速度比JNI快许多&#xff0c;因为不需要做二次封装 测试对比 纯C调用&#xff1a; Function call to…

深入了解iOS内存(WWDC 2018)笔记-内存诊断

主要记录下用于分析iOS/macOS 内存问题的笔记。 主要分析命令&#xff1a; vmmap, leaks, malloc_history 一&#xff1a;前言 有 3 种思考方式 你想看到对象的创建吗&#xff1f;你想要查看内存中引用对象或地址的内容吗&#xff1f;或者你只是想看看 一个实例有多大&#…

【强化学习】Actor-Critic

Actor-Critic算法 欢迎访问Blog全部目录&#xff01; 文章目录 Actor-Critic算法1.Actor-Critic原理1.1.简述1.1.优劣势1.3.策略网络和价值网络1.3.1.策略网络&#xff08;Actor)1.3.2.价值网络&#xff08;Critic) 1.4.程序框图和伪代码 2.算法案例&#xff1a;Pendulum-v12…

T-Mamba:用于牙齿 3D CBCT 分割的频率增强门控长程依赖性

T-Mamba&#xff1a;用于牙齿 3D CBCT 分割的频率增强门控长程依赖性 摘要Introduction方法T-Mamba architectureTim block T-Mamba: Frequency-Enhanced Gated Long-Range Dependendcy for Tooth 3D CBCT Segmentation 摘要 三维成像中的高效牙齿分割对于正畸诊断至关重要&am…

Windows系统读取XDMA实际运行链路速度和PCIE带宽

在我们平常设计XDMA的时候&#xff0c;经常会遇到一个问题&#xff1a; 在Vivado中设计的XDMA IP中选择的PCIE带宽和链路速度是理想的&#xff0c;但是下到板卡运行的时候&#xff0c;测量速度却发现读写速度根本不是理想中的速度&#xff0c;找不到问题&#xff0c;无法证明我…

Octopus:2B 参数语言模型即可媲美 GPT-4 的函数调用性能

近年来&#xff0c;大语言模型在 PC、智能手机和可穿戴设备的操作系统中应用逐渐成为趋势。 例如&#xff0c;MultiOn (Garg, 2024) 和 Adept AI (Luan, 2024) 等 AI 助理工具&#xff0c;以及 Rabbit R1 (Lyu, 2024) 和 Humane AI Pin (Chaudhri, 2024) 等 AI 消费产品在消费者…

蓝桥杯 交通信号 2022研究生组

问题&#xff1a; Dijstra算法变形题&#xff0c;有向边分正行和逆行方向&#xff0c;注意逆行的绿灯时间是正行的红灯时间。 这题的关键是理清从当前节点出发&#xff0c;到下一个节点是哪一时刻&#xff0c;理清这一点后&#xff0c;再跑Dijstra算法求最短路。 假设curr_t时…

JavaScript(三)-Web APIS

文章目录 DOM事件进阶事件流事件流与两个阶段说明事件捕获事件冒泡阻止冒泡解绑事件 事件委托其他事件页面加载事件元素滚动事件页面尺寸事件 元素尺寸与位置 DOM事件进阶 事件流 什么是事件流 事件流指的是事件完整执行过程中的流动路径 事件流与两个阶段说明 捕获与冒泡 …

简介:基于Web的产品3D

基于 Web 的产品 3D 通过可视化界面获得各种选项来个性化他们的产品&#xff0c;例如颜色、材料、尺寸、文字、徽标、零件等。 在过去几年中&#xff0c;随着 3D 建模和渲染软件的出现&#xff0c;3D 渲染现在更常用于营销和促销目的。设计师、制造商和营销人员使用 3D 产品渲…

政安晨:【Keras机器学习实践要点】(二十一)—— MobileViT:基于变换器的移动友好图像分类模型

目录 简介 导入 超参数 MobileViT 实用程序 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; …

AI 创业指难(一) :Stable Diffusion AI 绘画怎么用

一. 前言 一年不到&#xff0c;AI对生活和工作的影响已经逐步体现。所以千万别掉队了&#xff0c;也许 AI 不能成为我们的主要工作&#xff0c;但是如何借助 AI 实现副业的扩展同样值得思考。 这一篇就来讲一个 AI 绘画工具&#xff0c;这个工具我也是才上手不久&#xff0c;…

冻干可以长期给猫咪吃吗?五款顶尖生骨肉冻干盘点推荐

近年来&#xff0c;冻干猫粮因其高品质而备受喜爱&#xff0c;吸引了无数猫主人的目光&#xff0c;像我这样的养猫老手早已开始冻干喂养。但对于新手养猫的人来说&#xff0c;他们可能会对冻干猫粮感到陌生&#xff0c;并产生疑问&#xff1a;这到底是什么&#xff1f;冻干可以…

.NET 设计模式—装饰器模式(Decorator Pattern)

简介 装饰者模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你在不改变对象接口的前提下&#xff0c;动态地将新行为附加到对象上。这种模式是通过创建一个包装&#xff08;或装饰&#xff09;对象&#xff0c;将要被装饰的对象包裹起来…