操作系统
文章平均质量分 89
嗯
Strive for the best!
这个作者很懒,什么都没留下…
展开
-
15.操作系统——文件IO,page cache保证内存与磁盘一致性与设备管理
Linux 存储系统的 I/O 软件分层,分为三个层次,分别是文件系统层、通用块层、设备层。常见的IO分为三类:缓冲与非缓冲 I/O直接与非直接 I/O阻塞与非阻塞 I/O VS 同步与异步 I/O阻塞 I/O、非阻塞 I/O,还是基于非阻塞 I/O 的多路复用都是同步调用。因为它们在 read 调用时,内核将数据从内核空间拷贝到应用程序空间,过程都是需要等待的,也就是说这个过程是同步的,如果内核实现的拷贝效率不高,read 调用就会在这个同步过程中等待比较长的时间。1.缓冲与非缓冲IO根据是否利用原创 2022-07-09 19:26:01 · 1793 阅读 · 1 评论 -
14操作系统基础——内存页面置换算法——LRU
缺页中断当CPU访问的页面不在内存时,便会产生缺页中断,请求操作系统将所缺页从硬盘中调入到内存里。和一般中断的区别:是指令执行期间产生和处理中断信号一般中断程序计数器返回的时候会执行下一条指令,而缺页中断需要重新执行该条指令。流程:CPU访问一条Load指令,然后去找指令对应的页表项。如果页表有效,则直接访问内存,如果无效,则CPU发送缺页中断请求。操作系统收到缺页中断,执行处理函数,先查找页面在磁盘中的位置。然后需要把页面换入到物理内存中 ,但换入前需要物理内存有空位,如果没有空位需要原创 2021-11-22 18:46:23 · 1396 阅读 · 0 评论 -
13.操作系统基础——超详细 进程与线程,进程调度,进程间通信,多线程同步,死锁,乐观锁与悲观锁
这个部分主要面试问的比较多,提前补一补进程和线程的知识,之前的操作系统实战会继续更,踏实完成内存管理之后再考虑进程和线程的问题。内容主要来自学习小林coding继图解网络之后出的图解系统的一些笔记,写的比较通俗易懂,向大家推荐。进程代码通过预编译编译汇编连接到可执行文件,运行中的程序被称为进程。多个程序,通过CPU中断,交替执行即可实现并发。进程与程序关系拿做菜举例:人——CPU菜谱——程序食材——数据做菜这个动作——进程做到一半突然想喝可乐,于是,人把做菜的事情停一下,记录菜谱到原创 2021-11-21 15:14:47 · 1201 阅读 · 1 评论 -
12.操作系统实战——内存篇——内存的划分与组织
分段 || 分页分段与分页的问题我们在MMU那一部分说过,添加链接描述当时说主要考虑三个问题,段长度可变,但物理地址长度固定跟内存的交互时如果分段我们要把整个段都放入内存假设段很长,物理段整块划分可能无法找到完整那么长的物理段,由此有很多碎片。我们简单整理一下,还是这几个问题,表达的更清楚一些:从表示方式与分配是否确定角度: 首先段长度不固定,那么我们无法用一个确定的数据结构去表示这个段;其次我们无法确定这个段是否已经被分配。而对应的,页的大小是固定的,我们用位图表示页的分配与释放。这原创 2021-11-15 17:07:34 · 1340 阅读 · 0 评论 -
11.操作系统实战——第一个C函数,hal层初始化,初始化平台,
切换CPU到长模式在调用第一个c函数之前,我们仍然要写一段汇编,切换CPU进入长模式,初始化CPU寄存器和C语言要用的栈。因为目前代码执行流在二级引导器中,进入到 Cosmos 中这样在二级引导器中初始过的东西都不能用了因为 CPU 进入了长模式,寄存器的位宽都变了,所以需要重新初始化。让我们一起来写这段汇编代码吧,我们先在 Cosmos/hal/x86/ 下建立一个 init_entry.asm 文件,写上后面这段代码[section .start.text][BITS 32]_start:原创 2021-11-02 19:49:20 · 643 阅读 · 0 评论 -
10.操作系统实战——二级引导器探查收集信息(检查CPU,获取内存布局,初始化内核栈,放置内核文件和字库文件,建立MMU页表,设置图形模式,显示LOGO)
该课程来自极客时间《操作系统实战45讲》,踩坑笔记,具体操作步骤见“显示logo”目录。在二级引导器中,我们要检查 CPU 是否支持 64 位的工作模式、收集内存布局信息,看看是不是合乎我们操作系统的最低运行要求,还要设置操作系统需要的 MMU 页表、设置显卡模式、释放中文字体文件。检查与收集机器信息我们需要一个函数,来检查CPU的模式,收集内存信息,设置内核栈,设置内核字体,建立内核MMU页表数据。//初始化machbstart_t结构体,清0,并设置一个标志void machbstart.原创 2021-11-01 19:00:43 · 473 阅读 · 0 评论 -
3.操作系统——CPU的实模式、保护模式和长模式
有实模式、保护模式、长模式实模式(实地址模式)真实分为两个方面:运行真实指令。不区分指令动作,只是直接执行指令的真实功能发往内存的地址是真实、不加限制的。总结来说就是,这个模式下直接往物理层写,而不是我们上一章说过的硬件抽象层实模式寄存器X86CPU在实模式下的每个寄存器都是16位。其中:AX:累加器,主要用于存放数据,算数、逻辑运算中的操作数或者结果。也可用来存放临时的地址。BX:基地址寄存器,存放访问存储器时的地址。CX:计数寄存器,保存计算值,如在移位、循环等指令中作为隐原创 2021-10-21 10:28:04 · 2944 阅读 · 1 评论 -
2.操作系统——业界成熟内核架构
Linux内核Linux内核主要有五大组件,系统、进程、内存、储存和网络。没有层次关系,主要依赖函数调用,所以一旦某一个函数出现问题,整个系统都有可能崩溃。这和我们上一讲中宏内核结构是一致的,他的优点是这样的架构性能很高。Darwin-XNU内核Darwin是macos与ios操作系统的核心。使用微内核架构。在内核-用户转换层以下,有两个内核层,Mach层与BSD层其中Mach内核是卡耐基梅隆大学的经典微内核,提供最基本的操作系统服务。一开始是只有这一个内核。随着性能发展,最基本的内核无法满足原创 2021-10-09 17:06:57 · 396 阅读 · 0 评论 -
1.操作系统——内核
计算机资源计算机中资源分为软硬件两类:其中,硬件资源有总线:主要负责连接其他设备,是其他设备工作的基础。CPU:中央处理器,负责执行程序和处理数据运算。内存:负责储存正在运行时的代码和数据。硬盘:长期储存用户文件数据。网卡:负责计算机与其他计算机之间的通信。显卡:用于显示工作。I/O设备:显示器,鼠标,键盘总之,就是以一条总线连接,各个硬件设备。而软件资源主要时是各种文件和软件程序。操作系统内核与驱动操作系统内核是计算机硬件和软件资源的管理者主要表现在:管理CPU:CPU原创 2021-10-08 15:14:57 · 845 阅读 · 0 评论 -
linux 系统安装
因为之前一直存在一个linux系统里检测不到显卡的问题,所以本周首先探究了一下这个问题。经查阅了多篇文档,发现在虚拟机内是无法模拟出显卡的,所以在虚拟机(如vmvare)里装Unbuntu,此时的虚拟系统仅能使用其自带的模拟显卡版本,仅有数m大小,检测不出电脑硬件的RTX显卡,所以在虚拟机内是无法使用电脑自身的gpu加速的。这样一来的话,得先给电脑装一个双系统Ubuntu。因为之前没有装过双系统,比较担心直接在自己电脑上装出啥问把原本的win10系统搞崩了。但是之前老师说要敢于尝试,还是尝试着装了一下。原创 2021-01-15 21:04:24 · 186 阅读 · 0 评论