logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

OS第一章随手记

2、在单批道联机批处理中,CPU要执行监督程序,来将纸袋/卡片的01信息送到磁盘上,再将磁盘的作业调入内存,最后将结果保存到外存上,再打印。交换技术(Swapping):是把暂时不能运行的进程从内存换到外存,把具备运行条件的进程换入内存,主要是为了解决内存不足的问题。系统调用一定是应用程序做不到,找操作系统帮忙的事,不是什么内核做的事都是系统调用,它的前提是应用程序想去做,而因为权限做不到的事。7

文章图片
#linux#运维#服务器
【操作系统】线程、进程调度、KLT和ULT

所谓的“多线程并发”,在硬件层面,就是 CPU 飞快地在不同组的寄存器数值之间跳来跳去。我的理解:一:如果把进程的代码区当作一本书,那线程就是书中的一个段落,PC寄存器就是书签,CPU运行进程中的线程,就是每一段看一会,时间片到了,就更新书签到最新的位置,然后去看下一个书签位置看书,依次循环二:线程是执行流,因为看”书“中的章节是一次过程,可以看很多遍,但书才是那个占了书架位置也就是资源的单位,所

文章图片
#java#jvm#开发语言 +1
为什么你的程序不敢“反抗”操作系统 | CPU的权限分级之谜

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

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

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

文章图片
#linux#运维#服务器 +2
三剑合璧: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++#数据结构
【Linux】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
  • 请选择