【2022南京大学操作系统(蒋岩炎)】(一)操作系统概述 | 操作系统上的程序
文章目录
- P1 计算机概论
- 什么是操作系统?
- P2操作系统上的程序
- tmux 快捷键操作
- 数字逻辑电路:模拟器
- 状态机和数码管实现
- 程序
- C语言视角
- 二进制程序
- 构造最小的 Hello, World
- 最小的 HolloWorld程序
- 编译器与编译优化
- 操作系统的一般程序
- 总结
P1 计算机概论
什么是操作系统?
P2操作系统上的程序
- 补ppt ppt
tmux 快捷键操作
- https://www.jianshu.com/p/01a18efe2552
数字逻辑电路:模拟器
#define REGS_FOREACH(_) _(X) _(Y)
#define RUN_LOGIC X1 = !X && Y; \Y1 = !X && !Y;
#define DEFINE(X) static int X, X##1;
#define UPDATE(X) X = X##1;
#define PRINT(X) printf(#X " = %d; ", X);int main() {REGS_FOREACH(DEFINE);while (1) { // clockRUN_LOGIC;REGS_FOREACH(PRINT);REGS_FOREACH(UPDATE);putchar('\n'); sleep(1);}
}
状态机和数码管实现
看文档
gcc a.out | python3 seven-seg.py
http://jyywiki.cn/OS/2022/slides/2.slides#/2/2
py代码 接受每一个输入 然后显示
通过 || 将c程序的输出作为py程序的输入
程序
- 程序 == 状态机
- gdb a.out 进入调试状态
layout src
进入 用 c的方式- layout asm 用汇编的形式进入
- start 运行 s 下一步 info frame 查看栈帧
C语言视角
C 程序的状态机模型 (语义,semantics)
状态 = 堆 + 栈
初始状态 = main 的第一条语句
迁移 = 执行一条简单语句
任何 C 程序都可以改写成 “非复合语句” 的 C 代码
函数调用 : 创建栈帧 pc ++
函数返回 消除栈帧
本质仍然是计算
二进制程序
构造最小的 Hello, World
int main() {printf("Hello, World\n");
}
gcc 编译出来的文件不满足 “最小” --verbose 可以查看所有编译选项 (真不少)
printf 变成了 puts@plt -static 会复制 libc汇编实现 :http://jyywiki.cn/pages/OS/2022/demos/minimal.S
最小的 HolloWorld程序
- 程序== 状态机 == 二进制代码 = 状态机
- 如果想让程序退出 就必须得有一段系统调用
syscall
补充知识点
- retq 的行为 : pop 栈顶内容弹出给到PC
- 栈是由寄存器 rsp控制的
编译器与编译优化
- 什么是正确的编译?
- 编译的优化 : 没有对状态机状态进行修改f的语句能删
- C代码 -> 汇编代码
- c编译器 code = compile(S) S; 源代码
void foo() {int x = 1;
}
- compiler barrier 将可以合并的代码划分开了
操作系统的一般程序
补
总结
【2022南京大学操作系统(蒋岩炎)】(一)操作系统概述 | 操作系统上的程序相关推荐
- 操作系统-南京大学(蒋岩炎)课程--操作系统上的程序
操作系统-南京大学(蒋岩炎) 工具: gdb, strace: 理解程序运行时的系统调用 1.程序的状态机模型(和编译器) 1⃣️状态机和数字电路 2.操作系统上的程序
- 操作系统原理第一章:操作系统概述
目录 1 操作系统概念 1.1 为什么要有操作系统 1.2 什么是操作系统 1.3 计算机系统部件 1.4 操作系统设计的目标 1.5 操作系统的其他定义 2 操作系统的发展 2.1 操作系统的历史 ...
- 操作系统概论【一】 - - 操作系统概述
感谢内容提供者:金牛区吴迪软件开发工作室 文章目录 一:什么是操作系统? 操作系统的定义: 操作系统的作用: 二:操作系统的发展 1.单道批处理系统: 单道处理系统的特点: 单道处理系统的缺点: 2. ...
- [南京大学2022操作系统-蒋炎岩-P1] 笔记 - 操作系统概述
国外教授花了时间造了一个 ENIAC 模拟器供学生体验 课本: OSTEP 参考书: CSAPP
- 操作系统原理——第2章 操作系统概述
2.1 操作系统的目标和功能 操作系统是控制应用程序执行的程序, 并充当应用程序和计算机硬件之间的接口. 它有三个主要目标: 方便 有效 扩展能力 2.1.1 作为用户/计算机接口的操作系统 计算机接 ...
- 操作系统概述 操作系统第一章知识点归纳总结
系列文章 第二章 进程的描述与控制 第二章 进程调度 第一章 概述 1.1 目标与功能 1.1.1 操作系统: 控制应用程序的程序 应用程序和硬件间的接口 三大目标: 方便:用户使用 有效:使用系统资 ...
- linux 写操作系统 pdf,Linux操作系统概述.pdf
Liux操作系统 一.概述 教材和参考资料 • E-Learning上将提供课程ppt以及部分文字资料 • L命令行与脚本编程大全 (第3版),R B,C B著, 门佳 .武海峰译, 人民邮电出版社 ...
- 操作系统文件管理_计算机民科笔记-操作系统week1
FBI WARING [到处抄的,抄PPT和书上还有大佬博客的] 操作系统概述 操作系统做了什么? 比如启动一个程序,可以通过命令行,或者鼠标双击程序等方式来执行,操作系统在收到指令后,检查该程序是不 ...
- 2022年R1快开门式压力容器操作考题及答案
题库来源:安全生产模拟考试一点通公众号小程序 2022年R1快开门式压力容器操作培训试题为R1快开门式压力容器操作题库考前押题密卷!2022年R1快开门式压力容器操作考题及答案根据R1快开门式压力容器 ...
最新文章
- centos 扫毒软件clamAV安装
- 消除危害 让BYOD策略更安全的几个秘诀
- golang 生成 指定大小 空白文件
- android 7.0 更新apk,Android更新apk兼容7.0和8.0
- Cloud for Customer的work center显示逻辑
- argparse:shell向Python中传参数
- pagehelper插件oracle,带你学习最简单的分页插件PageHelper
- 资源放送丨《OGG日常运维及故障处理》PPT视频
- 在springboot中,如何读取配置文件中的属性
- rust怎么关阳光指令_我家也有庭院多好,伸缩阳光房装上,能休闲能当车库,还不算违建...
- mysql 删除hash分区_MySQL-如何删除hash表分区
- 树状结构搜索功能_ICLR 2020 高分论文!利用稀疏多层次Transformer结构获取语法树!...
- juc-并发工具类源码解析
- px,em,rem单位转换工具
- 本科计算机软件类毕业论文写作那些事
- 视频教程-【跟一夫学设计】从0基础到精通学全套coreldraw x7轻松掌握CDR基础加案例学习视频教程-CorelDraw
- 开源社与 Dev.Together 2022
- 1.SD卡初始化、写入、读取、数据比较
- C#实现域账号密码登录
- java 图片 内存溢出_Java修改图片尺寸,总是报内存溢出怎么解决?
热门文章
- 如何看懂MOS管的各项参数
- (cocos2d-js游戏)测试你的反应速度----------基本逻辑(上)
- Unity——基于HoloLens的混合现实开发之功能实现
- PowerPmac上位机开发C#(二)_启动与关闭界面设计
- 如何使用 Django 进行测试驱动开发,我来告诉你
- 离散序列周期延拓 matlab
- 操作系统-文件的结构以及文件管理
- 万里数据库与中仪集团达成合作
- 最新重点关注区块链技术,发现以太坊(etherenum)的技术进行两次分叉etz和etf。
- 页面嵌套iframe怎么调用父页面的方法,子页面回调父页面函数方法