logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

为什么你的程序不敢“反抗”操作系统 | CPU的权限分级之谜

🎬 开场与引入我们学习操作系统时,最早了解到的内容之一是:操作系统充当硬件和用户程序之间的中间层。这意味着,用户程序无法在没有操作系统干预的情况下访问硬件资源。仔细想一想,操作系统和用户程序都是软件,毕竟他们都是使用编程语言构建的。但如果真是如此,为什么用户程序不能压倒操作系统,并接管计算机的控制权呢?今天我们将探讨硬件与软件之间的巧妙协作,如何共同促进现代操作系统的稳定性和可靠性。

#java#开发语言
【Linux】深入理解Linux进程(二):进程的状态

由于进程优先级可能相同,相同优先级的进程的PCB会被链入同一个运行队列,不同优先级的进程则分别链入不同的运行队列。所有在runqueue中的PCB的状态都是R,它们会根据优先级被分散到不同的小队列中(task_struct * 数组中的不同下标数,依据数组下标的不同,我们从上到下访问PCB,就是按照优先级遍历。把这个数据结构放到该进程的PCB中,这个数据结构也许是哈希表,或者链表,多叉树.....

文章图片
#linux#运维#服务器 +2
C++的“链”珠妙笔:list的编程艺术

前言前言在 C++ 标准模板库(STL)中,list是一个非常强大且灵活的容器。它基于双向链表实现,提供了高效的插入和删除操作,非常适合需要频繁修改数据的场景。小编将详细介绍list的特性、操作方法以及一些使用示例,帮助你更好地理解和掌握这个容器一、 list的介绍list的结构。

文章图片
#c++#开发语言#list +1
霜刃与千面:C++模板的诗性解构

class 类模板名// 类内成员定义以上就是今天小编要讲的内容,本文简单介绍了模板的相关知识,模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生,同时也增强了代码的灵活性。

文章图片
#c++#开发语言
三剑合璧:C++11 lambda、variadic template 与 wrapper 的协奏

在C++98/03,类模版和函数模版中只能含固定数量的模版参数,而C++11的新特性可变参数模板能够让您创建可以接受可变参数的函数模板和类模板,我们希望。可调用对象存储到容器比如 vector <> 中,类型咋写,是写函数指针呢,还是仿函数对象呢,又或者是lambda呢,不确定。捉列表不允许变量重复传递,否则就会导致编译错误。可以很明显看到它的函数体,可以看到它的内部是怎么比较的,而且几乎格式都一

文章图片
#c++#开发语言
C++11新特性解析与应用

相比于C++98/03,C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中约600个缺陷的修正,这使得C++11更像是从C++98/03中孕育出的一种新语言。C++11想统⼀数据的初始化⽅式,想实现⼀切对象皆可⽤{}初始化 ,所以ta扩大了用大括号{}括起的列表(也叫做列表初始化)的使用范围,使其可用于。(这里也可以看到实参传给函数的形参时const的作用,函数的

文章图片
#c++#开发语言
C++11【左右值引用精析】

如果rr是右值,那么它是不能改变的 ,但rr此时能++,说明rr是左值 ,为什么呢 ,因为右值引用变量的属性会被编译器识别成左值,否则在移动构造的场景下,无法完成资源的转移,可以认为编译器在这里做了特殊处理,把rr强行识别成了左值 ,要不然右值是不允许修改的。这里val是右值引用,依旧被识别成了左值,所以这里_val依旧是被左值初始化的,所以在这里我们要把val是右值引用,保持右值的特性。回到上面

文章图片
#c++#数据结构
遗漏知识点补充(lesson12&&Linux进程(1))

系统调用就是你去调用,或者简单一点,你在键盘上敲下了系统提供的接口比如:、、,那么此时,系统为了去执行这些指令,会从用户态变成内核态来执行,执行完后,再变回用户态把结果返回,这就是所谓的:操作系统只提供了系统调用接口来访问内核查看一个进程的ppid为4205父进程,结果如下:bash创建了一个子进程来执行ps ajx的命令父进程与子进程共享代码段,暂时共享数据段,当有一个进程要改写数据时:1、父进

文章图片
#linux#运维#服务器
【万字精讲】一篇文章帮你了解代码从运行到结果之间所有过程(一):编写到CPU执行

这里主要是从编写完代码后,到CPU要执行时,计算机底层发生的大致事情,创建PCB到CPU执行直接发生了什么PCB是怎样被操作系统安排的操作系统做了什么CPU的底层运行原理CPU的底层结构什么CPU是怎样再极小的地方放下极多的电路CPU的工作原理CPU是怎样执行指令(了解了一点CPU循环执行指令的方式)CPU是怎样做出回应的(等等,CPU只是执行01码而已)CPU的寄存器是怎么配合CPU工作的CPU

文章图片
#开发语言#linux#服务器 +2
计算机底层理解:字节、CPU、虚拟内存、mm_struct、函数栈帧、数据段、程序运行

进程创建与账本建立:双击 exe 后,操作系统首先创建 PCB(进程控制块),并初始化mm_struct(内存描述符),这是管理内存的“总账本”。虚拟地址空间规划(画地图):加载器读取 exe 文件头,在虚拟地址空间中划定代码段、数据段、堆和栈的范围,但此时不分配任何物理内存。VMA 与文件映射mm_struct通过 VMA(虚拟内存区域)记录虚拟地址与磁盘文件的对应关系(例如:虚拟地址 0x40

文章图片
    共 11 条
  • 1
  • 2
  • 请选择