![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
操作系统原理与应用
文章平均质量分 81
操作系统原理与应用
cogitoErgoSumlif
这个作者很懒,什么都没留下…
展开
-
ch5 并发控制——互斥
并发控制——互斥互斥共享内存上的互斥实现互斥:软件不够,硬件来凑RISC-V:原子操作设计数据竞争 互斥问题 共享内存上的互斥 原子指令与互斥 数据竞争 把线程想象成人,把共享内存想象成物理世界 互斥 互斥:线程不想被打断的做一件事 共享内存上的互斥 排他性: - 互斥锁恢复了原子性、顺序、可见性。一个lock的锁,只有unlock后才能被其他的使用。 有锁保护的代码完全不能并发 原子性:锁保护的代码不能被打断 处理器可能会乱序执行 peterson算法在现代操作系统上是错误的 多线程求原创 2021-05-08 16:22:22 · 166 阅读 · 0 评论 -
ch4 理解并发程序的执行
理解并发程序的执行串行程序的状态机模型有限状态机程序=有限状态机程序执行的状态是有限的状态机的模型,其状态空间是非常大的。大部分状态,有唯一的后续状态。不确定(non-deterministic)x86-64例子状态机模型的应用哲学探讨物理世界可以模拟为状态机吗?应用实现状态机逆时间查看状态Record & Replay(记录与重放)并发程序的状态机模型线程并发程序难写理解并发程序状态机的执行程序 & 状态机并发算法——互斥总结 概述: 串行程序的状态机模型(工具) 状态机模型的应用 并发原创 2021-04-24 23:10:06 · 212 阅读 · 0 评论 -
ch3 并发(Concurrency)
什么是并发? 为什么需要并发? (共享内存)多处理器上的并发程序原创 2021-04-23 12:01:57 · 106 阅读 · 0 评论 -
ch2 系统调用(编程工具)
OS ——对象 API 什么是应用程序 1、什么是软件? 可执行的文件和其他数据文件: ELF(Executable Linkable Format) vi elf.c //写入空的main函数 gcc -c elf.c // gcc -c 编译,生成目标文件elf.o man gcc //查看帮助文档 file elf.o //查看目标文件, ELF 64位可重定位的文件 gcc elf.o // 链接程序,生成a.out ./a.out //运行的程序 —— 进程 file a.out原创 2021-04-21 15:02:35 · 175 阅读 · 0 评论 -
ch1 操作系统的历史
什么是操作系统? 操作系统的历史: 计算机与计算器没有本质的区别。 1940s:计算机系统就是一个状态机 标准的Mealy型数字电路。 计算机到底是怎么造出来的? 实现方法: - 逻辑门:电子管(vacuum tubes)——工作原理 触发器可以用几个逻辑门简单实现,但用电子管效率比较低。 - 存储器:延迟线(delay lines) —— 雷达技术:将01序列以机械波的的形式调制到水银管中,由于水银管 密度很大,波动震动频率来encode0和1。通过输入输出就保留了数据。cool!!! -原创 2021-04-21 11:14:18 · 87 阅读 · 0 评论 -
计算机系统 = 程序 = 状态机
理解方法: AbstractMachine C Runtime 中断(上下文管理) I/O设备访问 虚拟存储 多处理器 操作系统就是状态机的模拟者 提供虚拟化的状态机和其他服务 设备/持久数据管理、进程间通信、网络 从逻辑门到计算机系统 刷一下手机的复杂过程: 应用程序(app) ——> 库函数(Android Framewok) ——> 系统调用 ——> 操作系统中的对象 ——> 操作系统实现(C 程序) ——> 设备驱动程序 ——> 硬件抽象层(Abstrac原创 2021-04-16 16:31:13 · 597 阅读 · 0 评论