操作系统笔记1:知识回顾和操作系统概述
知识回顾
冯·诺依曼体系结构
- 只用北桥的话性能好,但需要集成封装,可扩展性差,且北桥造价高。
- 只用南桥的话可扩展性好,造价更低,但是性能不够好。
- 北桥更新换代更快。
- 智能手机也符合冯·诺依曼体系结构。
结构特点
可编程、计算和存储分离
- 采用指令和数据存储在一起的结构
- 存储器是按地址访问、线性编址的空间
- 指令由操作码和地址码组成:MOV AX, 2
- 指令在CPU的运算单元处理
- 控制流由指令流产生
新的体系结构
背景:云原生和软件定义的出现。
- 智能网卡:在网卡内进行计算
- 存内计算:把CPU和内存进行整合
- RDMA:远程直接数据存取,通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响
计算机指令
- CPU是执行各种计算机指令的逻辑机器
- 计算机指令也被称为机器语言,由一串0和1组成
- 不同架构的CPU能听懂的语言不太一致,每种CPU均有其支持的计算机指令集
- 指令执行的流程:硬盘→内存←→CPU
内存布局
- BP(基址指针寄存器):与SS配合使用,指向栈底
- SP(堆栈指针寄存器):与SS配合使用,指向栈顶
- SI(源变址寄存器):存放相对于DS段的偏移量
- IP(指令指针寄存器):与CS配合使用,跟踪程序的执行过程
8086 vs 80386
- 8086:采用实模式(物理内存一一映射),直接左偏移,存在安全隐患,且寻址的范围较小
- 80386:采用保护模式(引入虚拟内存),使用段选择子寄存器,较为安全,寻址范围较大
内存操作
函数调用
- 参数入栈:将参数从右向左依次压入系统栈中
- 返回地址入栈: 将当前代码区调用指令的下一条指令地址压入栈中, 供函数返回时继续执行
- 代码区跳转: 处理器从当前代码区跳转到被调用函数的入口处
- 栈帧调整
(1)保存当前栈帧状态值,已备后面恢复本栈帧时使用:BP入栈
(2)将当前栈帧切换到新栈帧:将SP值装入BP,更新栈帧底部
(3)给新栈帧分配空间:把SP减去所需空间的大小,抬高栈顶
函数返回
- 保存返回值,将函数的返回值保存在寄存器AX
- 弹出当前帧,恢复上一个栈帧
(1)将当前栈帧底部保存的前栈帧BP值弹入BP寄存器,恢复出上一个栈帧
(2)将函数返回地址弹给IP寄存器 - 跳转:按照CS:IP跳回调用函数中继续执行
函数调用和返回实例
int static add(int a, int b){
0: 55 push rbp
1: 48 89 e5 mov rbp,rsp
4: 89 7d fc mov DWORD PTR [rbp-0x4], edi
7: 89 75 f8 mov DWORD PTR [rbp-0x8], esi
a: 8b 55 fc mov edx, DWORD PTR [rbp-0x4]
d: 8b 45 f8 mov eax, DWORD PTR [rbp-0x8]
10: 01 d0 add eax, edx
}
12: 5d pop rbp # 这里把红色的rbp赋值给rbp
13: c3 ret 0000000000000014 <main>:int main(){
14: 55 push rbp
15: 48 89 e5 mov rbp,rsp
18: 48 83 ec 10 sub rsp,0x10 # 开辟栈空间
1c: c7 45 fc 05 00 00 00 mov DWORD PTR [rbp-0x4], 0x5
23: c7 45 f8 0a 00 00 00 mov DWORD PTR [rbp-0x8], 0xa
2a: 8b 55 f8 mov edx, DWORD PTR [rbp-0x8]
2d: 8b 45 fc mov eax, DWORD PTR [rbp-0x4]
30: 89 d6 mov esi, edx
32: 89 c7 mov edi, eax # 这四步看起来冗余,实际上提高了性能
34: e8 c7 ff ff ff call 0 <add> # 函数声明必须在调用之前,否则不知道call哪里# 内存中看不出来函数返回值类型,因此只有函数返回值不同的不是函数重载
39: 89 45 f4 mov DWORD PTR [rbp-0xc], eax
3c: b8 00 00 00 00 mov eax,0x0
}
41: c9 leave
42: c3 ret
![](/assets/blank.gif)
CPU执行指令流程
操作系统概述
操作系统的特征
- 并发(Concurrence):同时存在多个运行的进程(多道程序), 需要OS管理和调度
- 共享(Sharing)
- 互斥共享: 某种资源(e.g., CPU)某时刻只能被一个进程独享
- 同时访问: 允许在一段时间内由多个进程交替访问(e.g., 磁盘)
- 虚拟(Virtual)
- 利用多道程序设计技术, 让每个进程和每个用户觉得
- 有一个处理器(CPU) 专门为他服务
- 异步(Asynchronism):进程执行不是一贯到底, 而是走走停停且执行速度不可预知
操作系统的功能
- 计算机系统资源的管理者
- 用户与计算机硬件系统之间的接口
操作系统的分类
单道操作系统
- 多个进程按照先来先服务的方式顺序执行(排队系统)
- 内存中只有一个进程运行且它需要执行完毕(独占内存)
操作系统笔记1:知识回顾和操作系统概述相关推荐
- 清华大学MOOC《操作系统》第1讲:“操作系统概述”总结(转)
课程内容概述 这一讲对课程内容和操作系统做了一个概括性的介绍,主要包括以下几块内容: 教学安排 什么是操作系统 操作系统的演变 操作系统结构的分类 教学安排 本课程将讲述的内容包括: 操作系统结构 中 ...
- 计算机考研408 - 操作系统 - 核心知识点总结 - 第一章操作系统概述(23考研408大纲)
操作系统概述 (结合王道知识点/课后习题/真题总结而来,概念选择题为主) 1.操作系统的分类 1)批处理操作系统:作业成批处理,交互能力较差 2)分时操作系统:主要使用时间片轮转调度算法,进行进程/作 ...
- 现代操作系统原理与实践01:操作系统概述
目录 1 什么是操作系统 1.1 操作系统的功能 1.1.1 对硬件进行管理和抽象 1.1.2 为应用提供服务和管理 1.3 操作系统的结构 1.4 操作系统的发展趋势 1.5 操作系统面临的挑战 1 ...
- 【操作系统学习笔记】—— 【一】操作系统概述
本文参考: JavaGuide 王道考研-操作系统 CS-Notes 文章目录 一.操作系统的概念和功能 1. 什么是操作系统 2. 操作系统的功能和目标 二.操作系统的四个特征 1. 并发(最基本特 ...
- 『Linux基础 - 2 』操作系统,Linux背景知识和Ubuntu操作系统安装
这篇笔记记录了以下几个知识点: 1.目前常见的操作系统及分类,虚拟机 2.Linux操作系统背景知识,Windows和Linux两个操作系统的对比 3.在虚拟机中安装Ubuntu系统的详细步骤 OS( ...
- doc unix linux,[整理]unix,linux操作系统概述及基本知识.doc
[整理]unix,linux操作系统概述及基本知识.doc unix,linuxunix,linux 操作系统概述及基本知识操作系统概述及基本知识unix,linux 操作系统概述 及基本 知识 un ...
- 操作系统学习笔记 第一章:操作系统概述(王道考研)
本文章基于 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 后续章节陆续推出- ...
- [操作系统精髓与设计原理笔记] Chapter2 操作系统概述
Chapter2 操作系统概述 2.1 操作系统的目标和功能 2.1.1 作为用户/计算机接口的操作系统 操作系统是应用程序和计算机硬件间的接口,三个目标:方便.有效.扩展能力 计算机软硬件结构 ...
- 【操作系统】面向真题学操作系统 —— 操作系统概述客观题
文章目录 1)前言 2)正文 2.1)看完文档总结的思维导图 2.2)横扫试题 2.2.1)代表性试题讲解 ① 操作系统的基本认识 ② 并发和并行 ③ 系统调用 ④ 操作系统分类与发展 ⑤ 操作系统的 ...
最新文章
- Junit中error和failure区别
- WebKit与event.layerX和event.layerY有关的问题
- [TCP/IP] TCP第三次握手失败怎么办
- 图片压缩质量并保存指定尺寸
- mysql maxconnections 最大值,MySQL性能优化之max_connections配置参数浅析
- android 广播 关闭对话框,Android 对话框、信息提示和菜单
- Ubuntu——安装中文拼音输入法
- 基于ASP.NET AJAX技术开发在线RSS阅读器(下篇)
- waf 防火墙限制_Web攻击分类有哪些?防火墙WAF可以抵御哪些攻击?
- fluidsim元件库下载_fluidsim手册.pdf
- canvas实现flybird小游戏
- 数值运算pythonmopn_python – 计算每列的Pandas DataFrame的自相关性
- NRR52832 获取扫描请求
- 小程序分享H5链接地址异常
- orcad DRC检查,元件C2都没连接,为什麼不报错
- mfc上位机网络接收图片并显示_基于UDS on CAN的BootLoader上位机
- 美的同一性和神秘的算法分析
- 入手评测 华为擎云 L410怎么样
- TC358746AXBG/748XBG 桥接器说明
- 如何使用AD账号登录腾讯企业邮箱?
热门文章
- 清华大学MOOC《操作系统》第1讲:“操作系统概述”总结(转)