[伴学笔记]01-操作系统概述 [南京大学2024操作系统]
文章目录
- 前言
- jyy:01-操作系统概述 [南京大学2024操作系统]
- 为什么要学操作系统?
- 学习操作系统能得到什么?
- 什么是操作系统?
- 想要明白什么是操作系统:
- 时间线:
- 1940s
- 1950s-1960s
- 1960-1970s年代.
- 信息来源:
前言
督促自己,同时分享所得,阅读完本篇大约需要10分钟,希望为朋友的技术精进之路尽到绵薄之力.码字不易,望能给个点赞和收藏,以激励笔者源源不断的创作.在此以表谢意,同时因为笔者实力有限,如果发现错误,请及时指正,以免误导后人,谢谢!
jyy:01-操作系统概述 [南京大学2024操作系统]
为什么要学操作系统?
因为我们要重走学科从 无 到有的这个过程,理解这个学科里面种种产生的 基本动机 基本方法 里程碑 走过的弯路。 最终的目的肯定是 想能让我们进行 应用 创新 革命
所有概念的产生 都不是凭空产生,是有所原因的,比如遇到什么什么问题 提出什么什么理论 怎么怎么样克服,把此叫做什么名字 定义下来一个概念
什么都想要一点最后注定四不像,要学会做减法,要学会专注
除了和考研相关的,其他都不去花费时间和精力
操作系统诞生的基本动机 就是更快更好的服务应用
操作系统的发展带动硬件的发展

学习操作系统能得到什么?
可以理解更多的问题比如 为什么可以用 ctr c 结束死循环 更基础的理解什么什么东西是怎么样工作的
可以手搓更多的东西,比如浏览器 病毒 编译器 杀毒软件

什么是操作系统?
管理软/硬件资源,并且为程序提供服务一个程序(或者换句话说就是 管理软硬件资源,并且为程序提供服务的软件 注 个人理解下 程序就是软件 软件也就是一个程序)
想要明白什么是操作系统:
需要走一遍操作系统发展的历史
需要理解 什么是软件 什么是硬件 什么是资源

| 管道符 一个东西的输出 是另一个东西的输入
夹在 software hardware中间的是操作系统

时间线:
1940s
1940s的时候还没有操作系统,第一台计算机1946年诞生,那时候是画流程图 打纸带,用不到操作系统,程序直接在硬件上执行,那个时候跑起来程序就很难
中断机制的出现,是因为I/O设备已经跟不上处理器的处理速度
小tip :80个字符一行代码,是从1950s沿用至今
操作系统的诞生很自然,因为那时候随着一台计算机被多人共享,就需要一个人/软件调度算力,也就自然而然的诞生了操作系统

1950s-1960s
计算机的硬件得到改进
此时出现了I/P设备的速度低于了处理器的速度,中断机制出现

1960-1970s年代.
在1960-1970s年代
操作系统很自然的出现 以API形式调度资源,一切资源调度都要经过我的允许,借助API进行调度:
由此也就延伸出
进程(progress)的概念
虚拟存储 (就是 可以防止一个程序执行异常 造成一个系统的crush 。)
程序之间的空间隔离,以及CPU进行不同空间隔离程序之间的切换。
也就是这个时间段 1965年 分时操作系统诞生了 (就如同上文所言,既然程序与程序之间可以进行切换,那为啥不能定时进行切换,所以自然而然就诞生了 分时操作系统)
1970s年代
UNIX的诞生 奠定了分时操作系统,也就是如今常用操作系统的基础

怎么样学操作系统? 在PPT中
Opreating systems Three Easy pieces 这本书 必读必读必读.(点点关注,后面也一定会更新本书的阅读心得和笔记.)
信息来源:
[01-操作系统概述 南京大学2024操作系统]_哔哩哔哩_bilibili
相关学习资料: 操作系统:设计与实现 (2024 春季学期) (jyywiki.cn)
相关文章:
[伴学笔记]01-操作系统概述 [南京大学2024操作系统]
文章目录 前言jyy:01-操作系统概述 [南京大学2024操作系统]为什么要学操作系统?学习操作系统能得到什么? 什么是操作系统?想要明白什么是操作系统:时间线:1940s1950s-1960s1960-1970s年代. 信息来源: 前言 督促自己,同时分享所得,阅读完本篇大约需要10分钟,希望为朋友的技术…...
c++二叉树
二叉树进阶 1.二叉搜索树(binary search tree) 二叉搜索树天然就适合查找,对于满二叉树或者完全二叉树,最多搜索lgn次(就像是有序数组二分查找,每次搜索都会减少范围),极端情况简化成单链表就要走n次,即要走高度次…...
第19章-IPv6基础
1. IPv4的缺陷 2. IPv6的优势 3. 地址格式 3.1 格式 3.2 长度 4. 地址书写压缩 4.1 段内前导0压缩 4.2 全0段压缩 4.3 例子1 4.4 例子 5. 网段划分 5.1 前缀 5.2 接口标识符 5.3 前缀长度 5.4 地址规模分类 6. 地址分类 6.1 单播地址 6.2 组播地址 6.3 任播地址 6.4 例子 …...
浅谈人才招聘APP开发的解决方案
随着企业竞争加剧,高效、精准地招聘人才成为企业持续发展的关键。人才招聘系统能够简化招聘流程,提高效率,确保企业快速找到合适人才。同时,通过智能匹配和数据分析,提升招聘质量,优化候选人体验。因此&…...
大语言模型LLM推理加速:Hugging Face Transformers优化LLM推理技术(LLM系列12)
文章目录 大语言模型LLM推理加速:Hugging Face Transformers优化LLM推理技术(LLM系列12)引言Hugging Face Transformers库的推理优化基础模型级别的推理加速策略高级推理技术探索硬件加速与基础设施适配案例研究与性能提升效果展示结论与未来展望大语言模型LLM推理加速:Hug…...
JVM 第四部分—垃圾回收相关概念 2
System.gc() 在默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存 然而System.gc()调用附带一个免责声明,无法保证对垃…...
tritonserver学习之八:redis_caches实践
tritonserver学习之一:triton使用流程 tritonserver学习之二:tritonserver编译 tritonserver学习之三:tritonserver运行流程 tritonserver学习之四:命令行解析 tritonserver学习之五:backend实现机制 tritonserv…...
2024有哪些免费的mac苹果电脑深度清理工具?CleanMyMac X
苹果电脑用户们,你们是否经常感到你们的Mac变得不再像刚拆封时那样迅速、流畅?可能是时候对你的苹果电脑进行一次深度清理了。在这个时刻,拥有一些高效的深度清理工具就显得尤为重要。今天,我将介绍几款优秀的苹果电脑深度清理工具…...
UE5中实现后处理深度描边
后处理深度描边可以通过取得边缘深度变化大的区域进行描边,一方面可以用来做角色的等距内描边,避免了菲尼尔边缘光不整齐的问题,另一方面可以结合场景扫描等特效使用,达到更丰富的效果: 后来解决了开启TAA十字线和锯齿…...
Java面试值之集合
集合 1.HashMap底层?扩容机制?1.7-1.8的升级?2.HashMap的长度为什么是2的幂次方?3.HashMap 插入1.7和1.8的区别?4.什么是红黑树?O(logn)5.HashMap为什么会使用红黑树?6.ArrayList底层?扩容机制?7.LinkedList底层?扩容机制?8.ArrayList可以序列化,但是为什么不直接序…...
React之组件定义和事件处理
一、组件的分类 在react中,组件分为函数组件和class组件,也就是无状态组件和有状态组件。 * 更过时候我们应该区别使用无状态组件,因为如果有状态组件会触发生命周期所对应的一些函数 * 一旦触发他生命周期的函数,它就会影响当前项…...
LeetCode -55 跳跃游戏
LeetCode -55 跳跃游戏 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。…...
Android和Linux的嵌入式开发差异
最近开始投入Android的怀抱。说来惭愧,08年就听说这东西,当时也有同事投入去看,因为恶心Java,始终对这玩意无感,没想到现在不会这个嵌入式都快要没法搞了。为了不中年失业,所以只能回过头又来学。 首先还是…...
关于Node.js异常处理的教程
在Node.js开发中,异常处理是非常重要的一部分。良好的异常处理可以帮助我们及时发现和解决问题,提高系统的稳定性和可靠性。本教程将向您介绍Node.js中异常处理的最佳实践和策略。 1. 使用try-catch捕获同步异常 在Node.js中,可以使用try-c…...
13. Springboot集成Protobuf
目录 1、前言 2、Protobuf简介 2.1、核心思想 2.2、Protobuf是如何工作的? 2.3、如何使用 Protoc 生成代码? 3、Springboot集成 3.1、引入依赖 3.2、定义Proto文件 3.3、Protobuf生成Java代码 3.4、配置Protobuf的序列化和反序列化 3.5、定义…...
Spring: Springboot 框架集成不同版本的spring redis
文章目录 一、集成不同版本的spring redis1、Spring Data Redis 1.x:2、Spring Data Redis 2.x:3、Spring Data Redis 3.x(Spring Boot 2.x): 二、springboot集成Spring Data Redis 2.x1、首先,确保在 pom.…...
学习JAVA的第八天(基础)
目录 多态 前提 形式 测试类 调用成员的特点 优势 劣势 包 注意事项: final关键字 常量 命名规范: 注意事项: 权限修饰符 分类 代码块 局部代码块 构造代码块 静态代码块 抽象类 抽象类: 定义格式 抽象…...
【硬件相关】IB网/以太网基础介绍及部署实践
文章目录 一、前言1、Infiniband网络1.1、网络类型1.2、网络拓扑1.3、硬件设备1.3.1、网卡1.3.2、连接线缆a、光模块b、线缆 1.3.4、交换机 2、Ethernet网络 二、部署实践(以太网)1、Intel E810-XXVDA21.1、网卡信息1.2、检查命令1.2、驱动编译 2、Mella…...
【JavaEE】_Spring MVC项目之建立连接
目录 1. Spring MVC程序编写流程 2. 建立连接 2.1 RequestMapping注解介绍 2.2 RequestMapping注解使用 2.2.1 仅修饰方法 2.2.2 修饰类与方法 2.3 关于POST请求与GET请求 2.3.1 GET请求 2.3.2 POST请求 2.3.3 限制请求方法 1. Spring MVC程序编写流程 1. 建立连接&…...
【JavaEE进阶】 Spring AOP源码简单剖析
文章目录 🍃前言🍀Spring AOP源码剖析⭕总结 🍃前言 前面的博客中,博主对代理模式进行了一个简单的讲解,接下来博主将对Spring AOP源码进行简单剖析,使我们对Spring AOP了解的更加深刻。 🍀Sp…...
UE5物体附加后 结束附加物体会回到原点解决方法
附加栏右键设置 属性...
前端安全最佳实践
前端安全最佳实践:守护用户数据的第一道防线 在数字化时代,前端作为用户与系统交互的入口,其安全性直接影响用户体验和企业声誉。随着网络攻击手段的多样化,前端开发不再仅关注功能实现,更需要将安全视为核心需求。本…...
FourWireFan库:嵌入式四线风扇高精度闭环控制方案
1. FourWireFan库概述:面向嵌入式系统的四线风扇全功能控制方案FourWireFan是一个专为微控制器平台设计的开源风扇控制库,核心目标是实现对标准PC冷却风扇(三线/四线制式)的高精度转速测量、闭环调速、软启动控制及运行状态监控。…...
从ChatGLM到Qwen,不同架构大模型的监控差异图谱:8大维度对比分析(含GPU/TPU/NPU全栈指标映射表)
第一章:大模型工程化运维监控体系建设的范式演进 2026奇点智能技术大会(https://ml-summit.org) 大模型工程化运维监控已从传统AI服务的“可观测性补丁”阶段,演进为覆盖训练、推理、评估、反馈全生命周期的“闭环治理范式”。这一转变由模型规模跃升、…...
如何为MVVM应用编写高质量测试:完整测试策略
如何为MVVM应用编写高质量测试:完整测试策略 【免费下载链接】Android-MVVM-Architecture MVVM Kotlin Retrofit2 Hilt Coroutines Kotlin Flow mockK Espresso Junit5 项目地址: https://gitcode.com/gh_mirrors/mv/Android-MVVM-Architecture 在An…...
终极指南:如何使用Sony-PMCA-RE解锁索尼相机的隐藏功能
终极指南:如何使用Sony-PMCA-RE解锁索尼相机的隐藏功能 【免费下载链接】Sony-PMCA-RE Reverse Engineering Sony Digital Cameras 项目地址: https://gitcode.com/gh_mirrors/so/Sony-PMCA-RE Sony-PMCA-RE是一款强大的索尼相机逆向工程工具,通过…...
SetDPI完全指南:掌握Windows多显示器DPI缩放控制的高效方案
SetDPI完全指南:掌握Windows多显示器DPI缩放控制的高效方案 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI Windows多显示器DPI缩放控制一直是专业用户面临的痛点,SetDPI作为一款开源命令行工具,提供了…...
网络运维实战:如何使用 Traceroute 进行网络故障排查?
网络运维实战:如何使用 Traceroute 进行网络故障排查?前言一、Traceroute 概述:是什么?能干什么?1.1 基本定义1.2 核心作用二、Traceroute 工作原理(通俗版)2.1 核心原理:利用 TTL 超…...
APM固件编译进阶:如何为你的Pixhawk飞控定制和编译稳定版固件(Copter-4.4.0)
APM固件编译进阶:如何为你的Pixhawk飞控定制和编译稳定版固件(Copter-4.4.0) 当你需要为特定飞行任务定制固件时,直接使用master分支的开发版固件往往不是最佳选择。本文将带你深入APM固件编译的进阶领域,专注于如何为…...
5分钟掌握llama-cpp-python:本地AI模型部署终极指南
5分钟掌握llama-cpp-python:本地AI模型部署终极指南 【免费下载链接】llama-cpp-python Python bindings for llama.cpp 项目地址: https://gitcode.com/gh_mirrors/ll/llama-cpp-python 想要在个人电脑上运行大型语言模型却不知从何入手?llama-c…...
