![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统真象还原
文章平均质量分 62
weixin_40293999
前几年web后端,后来AI深度学习,会一些运维。 AI聚焦于CV领域,熟悉nlp
展开
-
【操作系统】知识补漏进程之间的关系和线程调度&自旋锁&磁盘格式化【后面的部分难】
如果在forking之后立即调用exec(),由于exec()会替换掉进程,那么fork()是否会重复创建所有线程将没有任何意义,在这种场景下,仅需重复创建调用者所在的线程即可。然而,如果在forking之后,独立的进程没有调用exec(),则新创建的进程会重复创建所有的线程。如果一个线程调用了fork(),会创建包含所有线程的进程还是会创建仅包含一个线程的进程?一些UNIX系统提供了两种版本的fork(),一种会创建重复所有线程,而另一种仅会创建调用fork()的线程。2. real-time 模式。原创 2024-01-31 00:13:16 · 390 阅读 · 0 评论 -
【操作系统】死锁、活锁、自旋锁
自旋锁:是一种互斥锁的实现方式,当线程尝试获得一个锁时,如果发现这个锁已经被其他线程占用,它会不断地重复尝试获取锁,而不是放弃 CPU 的控制权。举个生活中的小例子,两个人相向过马路,如果两人同时向一边谦让,那么两个人都过不去,紧接着两人同时又移到另一边,此时两个人依然过不去。简单来说,在一个系统中,如果进程之间形成了一个循环依赖关系,那么就会发生死锁。在代码中引入一定的随机性可以避免发生活锁,例如在重试的过程中,引入随机的休眠时间来中断死循环,让线程有机会释放资源并且重新获取资源。原创 2024-01-28 18:18:23 · 406 阅读 · 0 评论 -
【操作系统】在阅读论文:OrcFS: Orchestrated file system for flash storage时需要补充的基础知
LBA转换成CHS方法,简单的转换,实际的转换方法一定要复杂得多。//假设一个盘面有10圈磁道,一圈有500个扇区,一个盘面有5000个扇区。读取6500号数组下标。原创 2024-01-13 14:33:42 · 467 阅读 · 0 评论 -
DMA接口组成中HLDA DACK DREQ HRQ的英文全称是什么
HRQ:Hold ReQuest (总线)保持/(占有、控制…怎么翻译都行)请求信号。HLDA:HoLD Acknowledge 总线保持响应信号。DACK:DMA Acknowledge DMA响应信号。DREQ:DMA REQuest DMA请求信号。原创 2024-01-10 14:25:35 · 424 阅读 · 0 评论 -
电路知识记录一下
原创 2024-01-10 10:43:57 · 381 阅读 · 0 评论 -
【操作系统xv6】学习记录5--实验1 Lab: Xv6 and Unix utilities
请注意,UNIX上的xargs进行了优化,一次可以向该命令提供更多的参数。注意,这里的命令是echo bye,额外的参数是hello too,这样就组成了命令echo bye hello too,此命令输出bye hello too。、1000输入管道的左端:行中的第一个进程消除2的倍数,第二个进程消除3的倍数,第三个进程消除5的倍数,依此类推。取数据:lpipe,写数据rpipe, 从图中可以看到,每个矩形的操作是重复的,所以应该用递归调用function primes,搭建了1天,大家自求多福吧,哎。原创 2024-01-03 21:09:34 · 1083 阅读 · 0 评论 -
【操作系统xv6】学习记录4 -CPU上下文:进程上下文、线程上下文、中断上下文
CPU 寄存器和程序计数器就是 CPU 上下文,因为它们都是 CPU 在运行任何任务前,必须的依赖环境。先把前一个任务的 CPU 上下文(也就是 CPU 寄存器和程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务。而这些保存下来的上下文,会存储在系统内核中,并在任务重新调度执行时再次加载进来。这样就能保证任务原来的状态不受影响,让任务看起来还是连续运行。原创 2024-01-02 23:06:11 · 1230 阅读 · 0 评论 -
【操作系统xv6】学习记录3-Wsl2 Ubuntu18.04图形化界面
不知道为啥,wls2和windows用vscode ssh的方式连接识别,既然如此,那就装一个桌面版的,其实2年多前装过一次,后来pc机跑深度学习的任务,硬盘坏了~原创 2024-01-02 19:32:35 · 585 阅读 · 0 评论 -
【操作系统xv6】学习记录2 -RISC-V Architecture
说明:看完这节,不会让你称为汇编程序员,知识操作系统的前置。p=7。原创 2024-01-02 18:15:24 · 1262 阅读 · 0 评论 -
Operating Systems: Three Easy Pieces 读书笔记之目录篇
作者主页:https://github.com/remzi-arpacidusseau (其中包含中文翻译版书籍、homework 等)英文原版电子书:http://pages.cs.wisc.edu/~remzi/OSTEP/因为近期正在学习xv6代码,需要不断的学习操作系统,所以贴出这个目录,供查阅使用。第二部分:并发性(25-34 章)?读完这本书将收获什么。第一部分:虚拟化(3-24 章)第三部分:持久性(35-)原创 2024-01-02 16:01:31 · 382 阅读 · 0 评论 -
【操作系统xv6】学习记录1
前置说明:git-v9版本:git clone https://github.com/mit-pdos/xv6-public/tree/xv6-rev9深圳大学罗秋明老师的课程我自己用的wsl2的ubuntu18 无桌面版本 make qemu-nox。原创 2023-12-31 22:17:51 · 593 阅读 · 0 评论 -
[x86汇编语言]从实模式到保护模式第二版
D:\BaiduNetdiskDownload\01b站\lizhong\myasm>nasm -f bin exam.asm -o exam。D:\BaiduNetdiskDownload\01b站\lizhong\myasm>nasm -f bin exam.asm -o exam.bin。C:\Users\HP>cd D:\BaiduNetdiskDownload\01b站\lizhong\myasm。D:\BaiduNetdiskDownload\01b站\lizhong\myasm>原创 2023-12-25 14:05:27 · 155 阅读 · 0 评论 -
【操作系统】补充:你看到的所有地址都不是真的
这里有一个小程序,打印出 main() 函数(代码所在地方)的地址,由 malloc()返回的堆空间分配的。你看到的值(一些大数字,通常以十六进制打印)是虚拟地址(virtual。你也可以打印出来,是的,如果你可以打印它,它也。实际上,作为用户级程序的程序员,可以看到的任何地址都是虚拟地址。统,通过精妙的虚拟化内存技术,知道这些指令和数据所在的物理内存的位置。果你在一个程序中打印出一个地址,那就是一个虚拟的地址。的假象,只有操作系统(和硬件)才知道物理地址。补充:你看到的所有地址都不是真的。原创 2023-12-23 12:38:38 · 63 阅读 · 0 评论 -
【操作系统】学习操作系统知识
零散的记录知识,看《操作系统引论》原创 2023-12-22 21:19:20 · 115 阅读 · 0 评论 -
《操作系统真象还原》第一章 部署工作环境
写入虚拟机启动磁盘 dd if=/home/ubuntu/test of=/home/ubuntu/bochs/hd60M.img bs=512 count=1 conv=notrunc。下载Bochs https://udomain.dl.sourceforge.net/project/bochs/bochs/2.6.8/bochs-2.6.8.tar.gz。为即将要安装的bochs创建一个空目录,我的在家目录/home/ubuntu/ 下。进入解压后的文件夹,并且配置编译安装的路径,进行安装。原创 2023-10-15 00:52:30 · 241 阅读 · 0 评论