![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
操作系统
文章平均质量分 79
少林寺之 《易筋经》,最为上乘的武功, ;
学会《易筋经》 之后,可以 任由我创造武功;
以实现一个最小 内核为例, 理解操作系统
ZhengXinTang
习重要! 学而实习之, 才叫学习!
只学而不习, 不实践, 这叫本末倒置, 丢了大头顾小头;
因缘际会,所有巧合即为 和合事物;
当一个人悄悄的在反省时,努力时,改过时, 命运的齿轮便被他转动了。
展开
-
ch3_6多线程举例
对于我们自己来说,面临的第一个问题是,pytorch 中如何并发调用resnet18模型。本项目开始于一个简单的需求,即我们需要求得一个 X,能够实现模型推理并满足:前向接口需要是线程安全的。在主要硬件平台(如 NVIDIA GPU)以及主要通用加速引擎(如 TensorRT/Libtorch)上实现了此 X。转载 2023-10-27 08:56:25 · 185 阅读 · 0 评论 -
ch3_5多进程中的地址映射
ch3_5多进程中的地址映射。原创 2022-12-20 18:35:01 · 76 阅读 · 0 评论 -
ch3_4 多线程中的同步与合作
ch3_4 多进程中的同步与合作。原创 2022-12-20 18:33:35 · 99 阅读 · 0 评论 -
ch3_3多进程中的调度程序
多进程中寄存器的切换。原创 2022-12-20 18:31:42 · 72 阅读 · 0 评论 -
ch3_2用户线程之间的切换
多进程中寄存器的切换。原创 2022-12-20 18:29:56 · 530 阅读 · 0 评论 -
lab4_进程运行轨迹的跟踪与统计
在修改过的 0.11 上运行样本程序,通过分析 log 文件,统计该程序建立的所有进程的等待时间、完成时间(周转时间)和运行时间,然后计算平均等待时间,平均完成时间和吞吐量。基于模板 process.c 编写多进程的样本程序,实现如下功能: + 所有子进程都并行运行,每个子进程的实际运行时间一般不超过 30 秒;修改 0.11 进程调度的时间片,然后再运行同样的样本程序,统计同样的时间数据,和原有的情况对比,体会不同时间片带来的差异。终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。原创 2022-12-18 11:11:42 · 462 阅读 · 0 评论 -
ch3_1_多进程的概念
CPU的工作原理:从内存中取出程序的指令, 执行程序中的指令;原创 2022-12-18 10:41:54 · 326 阅读 · 0 评论 -
0_操作系统学习方法
注意, 选择的老师, 一定要选择, 有实战经验的老师的视频,如何判断老师 是否理解, 看在讲解一个概念时, 这个老师是否有对这个概念 形成自己独特的理解方式。形成自己独特的理解, 比方 常常会用一些已知的概念, 进行类比,让听众理解,这才是好的 讲解;反观, 如果在讲解知识点时, 讲解的内容,完全照着PPT念, 讲解的知识点内容都是PPT上有的, PPT 上没有的,老师没有补充, 这类视频尽量不看;先看视频, 这里主要是看 那些;原创 2022-12-10 15:02:58 · 678 阅读 · 0 评论 -
lab3_系统调用
在 中 添加 , 系统调用宏定义的编号,1.2 修改 可以系统调用的总数量1.3 添加系统调用名为新增的系统调用 添加 系统调用名 并维护 系统调用表,2. 编写新增的系统调用为新增的系统调用编写代码实现, 在 目录下, 创建一个 的文件;修改 Makefile 文件,参见这里makefile 文件修改原创 2022-12-06 21:06:34 · 957 阅读 · 0 评论 -
ch2_2系统调用的实现
起因, 应用程序 运行时在内存中,操作系统也在内存中, 为什么应用程序想访问 操作系统的提供的功能函数,答: 操作系统是一个重要的存在,他掌控了计算机硬件这个国家中,重要的资源, 比方硬件资源, 和用户的密码和数据,如果,随意的一个应用程序,就可以访问, 捞到用户的密码, 以及任意的掌控这个计算机的资源。如果,这个应用程序有恶意的行为, 那么 对用户的信息安全,将会造成伤害, 对计算机的硬件资源也会造成伤害。所以,不可以给应用程序直接访问 系统中的函数和功能。所以系统调用的作用,原创 2022-12-02 15:32:44 · 900 阅读 · 0 评论 -
ch2_1系统调用接口
什么是操作系统接口:答: 调用操作系统中的内部函数.术语为系统调用,普通应用程序(应用软件): 该程序中, 会调用一些重要的函数, 这些重要的函数便是 一个个操作系统 提供的接口, 提供了应用程序调用操作系统功能的函数。原创 2022-12-02 09:50:33 · 542 阅读 · 0 评论 -
hit_os_lab2 操作系统启动
入理论课程的学习。如果网易云上的课程无法查看,也可以看 Bilibili 上的 操作系统哈尔滨工业大学李治军老师。同济大学赵炯博士的《Linux 内核 0.11 完全注释(修正版 V3.0)》(以后简称《注释》)的第 6 章是非常有帮助的参考,实验中可能遇到的各种问题,几乎都能找到答案。谢煜波撰写的《操作系统引导探究》也是一份很好的参考。原创 2022-11-29 13:51:50 · 489 阅读 · 0 评论 -
ch1_系统启动_setup.S
大写的.s后缀名, 是为了说明是一个16位, 实模式下的汇编语言, 小写的 s 是保护模式下的汇编语言;原创 2022-11-30 16:08:12 · 480 阅读 · 0 评论 -
ch1_系统启动_bootsect.s
bootsect.s这里介绍, 操作系统启动中的bootsect.S文件。原创 2022-11-29 22:04:45 · 877 阅读 · 0 评论 -
故事的开始_ch1_操作系统启动总揽
原文出自于这里原文出自于这里1 启动区启动区的定义非常简单,只要硬盘中的 0 盘 0 道 1 扇区的 512 个字节的最后两个字节分别是 0x55 和 0xaa,那么 BIOS 就会认为它是个启动区;当你按下开机键的那一刻,在主板上提前写死的固件程序 BIOS 会将硬盘中启动区的 512 字节的数据,原封不动复制到内存中的 0x7c00 这个位置,并跳转到那个位置进行执行。...原创 2022-04-12 17:01:37 · 615 阅读 · 0 评论 -
hit-os_lab1 实验环境准备(二)
李志军 :《操作系统原理,实现与实践》中国大学mooc :动手实验环节:另外 赵炯的 《linux 内核0.12 完全剖析》原创 2022-11-28 15:52:41 · 215 阅读 · 0 评论 -
hit-oslab 实验环境准备(一)
下面开始真正的旅途了,原创 2022-11-18 21:55:13 · 1116 阅读 · 1 评论 -
Geek-06 学习记录
虚拟地址空间是由 链接器 产生的;其实我们开发软件经过编译步骤后,就需要链接成可执行文件才可以运行,而链接器的主要工作就是把多个代码模块组装在一起,并解决模块之间的引用,即处理程序代码间的地址引用,形成程序运行的静态内存空间视图。只不过这个地址是虚拟而统一的,而根据操作系统的不同,这个虚拟地址空间的定义也许不同,应用软件开发人员无需关心,由开发工具链给自动处理了。由于这虚拟地址是独立且统一的,所以各个公司开发的各个应用完全不用担心自己的内存空间被占用和改写1. 物理地址虽然虚拟地址解..原创 2022-04-24 14:02:19 · 85 阅读 · 0 评论 -
Geek10 学习记录
.1 hdisk该文件夹, 是自己新建的hdisk 和 hd.img 之间是什么关系呢?.2 grub 目录文件的产生 sudo grub-install --boot-directory=./hdisk/boot/ --force --allow-floppy /dev/loop32Installing for x86_64-efi platform.grub-install: error: cannot find EFI directory.解决方法 :增加 --targe原创 2022-04-15 16:55:51 · 778 阅读 · 0 评论 -
Geek05 学习记录
1. 寄存器和内存的区别1.1 寄存器寄存器是中央处理器内的组成部份, 也就是寄存器在CPU内部。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。1.2 内存内存既专业名上的内存储器,内存是由内存芯片、电路板、金手指等部分组成的。它包涵的范围也很大,一般分为只读存储器和随即存储器,以及最强悍的高速缓冲存储器(CACHE)。只读存储器原创 2022-04-18 15:03:04 · 2397 阅读 · 0 评论 -
Geek 04 学习记录
1.1 linux 中的层级首先,我们从一名计算机黑客切入,简单介绍了一下 Linus,他由于沉迷于技术,对不好的规则敢于挑战而写出了 Linux 雏形,并且利用了 GNU 开源软件的精神推动了 Linux 后来的发展,这样的精神很值得我们学习。1.2 linux 中的内核然后我们探讨了 Linux 内核架构,大致搞清楚了 Linux 内核中的各种组件,它们是系统、进程、内存、储存、网络。其中,每个组件都是从接口到硬件经过了几个层次,组件与组件之间的层次互联调用。这些组件组合在一起,其调用关系形.原创 2022-04-16 14:04:48 · 195 阅读 · 0 评论 -
Geek 02 学习记录 (实现一个最简单内核)
几行汇编几行C:实现一个最简单的内核1. pc 机的引导流程写操作系统要用汇编和 C 语言,尽管这个 Hello OS 很小,但也要用到两种编程语言。1.1 借用已有的 GRUB 引导程序从 PC 的引导程序开始写起,原因是目前我们的知识储备还不够,所以先借用一下 GRUB 引导程序,只要我们的 PC 机上安装了 Ubuntu Linux 操作系统,GRUB 就已经存在了。这会大大降低我们开始的难度,也不至于打消你的热情。...原创 2022-04-14 20:23:12 · 618 阅读 · 0 评论 -
gdb调试 入门
程序的调试过程主要有:单步执行,跳入函数,跳出函数,设置断点,设置观察点,查看变量。本文将主要介绍linux下运行。GDB中的命令很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。原创 2022-11-17 21:47:21 · 788 阅读 · 0 评论 -
CNMOOC-os- ch2硬件基础
资料来源于上海交通大学 并行与分布式系统研究所。原创 2022-10-27 16:55:48 · 568 阅读 · 0 评论