上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 21 下一页
摘要: 背景 一个CPU core同时刻只能执行一个进程,如果我们不加以控制的话,一个进程可能使用CPU core直到运行结束,于是出现了操作系统调度器和调度算法(策略),而进程也成为了调度单位。 操作系统进程调度算法 进程调度是操作系统的一个服务,进程调度算法也称 CPU 调度算法,CPU 调度处理是从就 阅读全文
posted @ 2021-12-29 01:53 小林野夫 阅读(699) 评论(0) 推荐(0)
摘要: 1秒=1000毫秒(ms)=1,000,000 微秒(μs)=1,000,000,000 纳秒(ns)=1,000,000,000,000 皮秒(ps) 1个CPU时钟周期=时钟频率 2GHz CPU=2000,000,000次每秒=20亿次/秒=时钟周期=(1/20亿)秒=0.5纳秒 cpu时间片 阅读全文
posted @ 2021-12-28 00:27 小林野夫 阅读(4735) 评论(0) 推荐(0)
摘要: CPU 上下文切换是什么 CPU 上下文切换,就是先把前一个任务的 CPU 上下文(也就是 CPU 寄存器和程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务。 CPU上下文的分类 CPU 上下文切换根据任务的不同,可以分为以下三种类 阅读全文
posted @ 2021-12-27 23:43 小林野夫 阅读(1595) 评论(2) 推荐(1)
摘要: 背景 为了确保在线程中声明特定类型的变量,在每个线程中的值都是唯一的,不受到其他线程对该变量读写的影响。也就是俗称的线程本地存储 (TLS),可用于存储对线程和应用程序域唯一的数据。 例如:主线程中声明了变量A ,只能由主线程进行读取和写入。子线程虽然可以使用变量A(相当于复制一个A,可以对该变量进 阅读全文
posted @ 2021-12-27 16:32 小林野夫 阅读(604) 评论(0) 推荐(0)
摘要: 内存模型概述 MSDN:理论与实践中的 C# 内存模型 MSDN:理论与实践中的 C# 内存模型,第 2 部分 内存模型就是内存一致性模型。 以下内如来自维基百科 内存一致性模型列表 线性一致性(Linearizability)或严格一致性(Strict consistency):任何对一个内存位置 阅读全文
posted @ 2021-12-27 02:07 小林野夫 阅读(631) 评论(0) 推荐(0)
摘要: overview 同步基元分为用户模式和内核模式 用户模式:Iterlocked.Exchange(互锁)、SpinLocked(自旋锁)、易变构造(volatile关键字、volatile类、Thread.VolatitleRead|Thread.VolatitleWrite)、MemoryBar 阅读全文
posted @ 2021-12-27 02:06 小林野夫 阅读(942) 评论(4) 推荐(1)
摘要: 转载自:https://gandalfliang.github.io/2019/01/15/loop-hoisting/ Loop Hoisting 在上篇文章中,提到 Loop Hoisting ,这是一个常见的编译器优化项。我们总是能通过汇编代码等低级语言来“窥探”代码实际是怎么“指示”硬件运行 阅读全文
posted @ 2021-12-26 17:56 小林野夫 阅读(244) 评论(0) 推荐(0)
摘要: CPU硬件有它自己的内存模型,不同的编程语言也有它自己的内存模型。 在 C# 的语言规范中 ECMA-334,对于Volatile关键字的描述: 15.5.4 Volatile fieldsWhen a field-declaration includes a volatile modifier, 阅读全文
posted @ 2021-12-26 17:50 小林野夫 阅读(154) 评论(0) 推荐(1)
摘要: 背景 同步基元分为用户模式和内核模式 用户模式:Iterlocked.Exchange(互锁)、SpinLocked(自旋锁)、易变构造(volatile关键字、volatile类、Thread.VolatitleRead|Thread.VolatitleWrite)、MemoryBarrier。 阅读全文
posted @ 2021-12-26 17:09 小林野夫 阅读(2086) 评论(0) 推荐(3)
摘要: 往袋子里面装苹果 错误案例示范 关于C#多线程的文章,大部分都在讨论线程的起停或者是多线程同步问题。多线程同步就是在不同线程中访问同一个变量(一般是线程工作函数外部的变量),众所周知在不使用线程同步的机制下,由于竟态的存在会使某些线程产生脏读或者是覆盖其它线程已写入的值(各种混乱)。而另外一种情况就 阅读全文
posted @ 2021-12-26 03:56 小林野夫 阅读(427) 评论(0) 推荐(0)
摘要: 线程本地存储(TLS:Thread Local Storage) 线程本地存储(Thread Local Storage),字面意思就是专属某个线程的存储空间。变量大体上分为全局变量和局部变量,一个进程中的所有线程共享地址空间,这个地址空间被划分为几个固有的区域,比如堆栈区,全局变量区等,全局变量存 阅读全文
posted @ 2021-12-25 20:27 小林野夫 阅读(1392) 评论(0) 推荐(0)
摘要: 1. 简介 1、延迟初始化出现于.NET 4.0,主要用于提高性能,避免浪费计算,并减少程序内存要求。也可以称为,按需加载。 2、从net 4.0开始,C#开始支持延迟初始化,通过Lazy关键字,我们可以声明某个对象为仅仅当第一次使用的时候,再初始化,如果一直没有调用,那就不初始化,省去了一部分不必 阅读全文
posted @ 2021-12-25 19:23 小林野夫 阅读(313) 评论(0) 推荐(0)
摘要: 重命名将MyThread.exe 重命名 一下其他名字后就可以了。 阅读全文
posted @ 2021-12-25 17:59 小林野夫 阅读(728) 评论(0) 推荐(0)
摘要: 概述 线程主要学习什么,通过一个月的摸索、终于总结出来了:学习Thread类涉及到学习Thread类涉及到线程单元状态: ApartmentState、GetApartmentState\SetApartmentState内存屏障:VolatileWrite()、VolatileRead()、Mem 阅读全文
posted @ 2021-12-24 22:24 小林野夫 阅读(676) 评论(0) 推荐(2)
摘要: 什么是句柄 句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址访问对象。但是,如果您真的这样认为,那么您就大错特错了。 我们知道,Windows是一个以虚拟内存为基 阅读全文
posted @ 2021-12-20 18:32 小林野夫 阅读(690) 评论(0) 推荐(0)
摘要: 一、进程间通信简述 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess C 阅读全文
posted @ 2021-12-20 18:10 小林野夫 阅读(1276) 评论(0) 推荐(0)
摘要: 【原创】 本文只是个人笔记,很多错误,欢迎指出。 环境:vs2022 .net6.0 C#10 参考:https://blog.csdn.net/brook_shi/article/details/50803957 Await 就像一个一元运算符:它接受一个参数,一个可等待的("awaitable" 阅读全文
posted @ 2021-12-19 00:36 小林野夫 阅读(1739) 评论(1) 推荐(1)
摘要: 一、同步上下文(SynchronizationContext)概述 由来 多线程程序在.net框架出现之前就已经存在了。这些程序通常需要一个线程将一个工作单元传递给另一个线程。Windows程序以消息循环为中心,因此许多程序员使用这个内置队列来传递工作单元。每个想要以这种方式使用Windows消息队 阅读全文
posted @ 2021-12-19 00:36 小林野夫 阅读(1913) 评论(0) 推荐(1)
摘要: await的作用: 1、await是一个标记,告诉编译器生成一个等待器来等待可等待类型实例的运行结果。 2、一个await对应一个等待器 ,任务的等待器类型是TaskAwaiter/TaskAwaiter<TResult>。 3、Await 就像一个一元运算符:它接受一个参数,一个可等待的"awai 阅读全文
posted @ 2021-12-17 21:50 小林野夫 阅读(751) 评论(1) 推荐(0)
摘要: async的作用: 1、async是一个标记,告诉编译器这是一个异步方法。 2、编译器会根据这个标志生成一个异步状态机。 3、编译器将原异步方法中的代码清空,写入状态机的配置,原先异步方法中的代码被封装入状态机。 4、async 关键字是上下文关键字,原因在于只有当它修饰方法、lambda 表达式或 阅读全文
posted @ 2021-12-17 21:37 小林野夫 阅读(560) 评论(0) 推荐(1)
摘要: 原文连接:执行上下文与同步上下文 - .NET 并行编程 (microsoft.com) 执行上下文与同步上下文 斯蒂芬 6月15日, 2012 最近,我被问了几次关于 ExecutionContext 和 SynchronizationContext 的各种问题,例如它们之间的区别是什么,"流动" 阅读全文
posted @ 2021-12-16 06:38 小林野夫 阅读(470) 评论(0) 推荐(0)
摘要: 转载地址:https://www.liaoxuefeng.com/wiki/1177760294764384/1179611198786848 事务是什么? 【事务】:是用户定义的一个数据库操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单元 例如: 在执行SQL语句的时候,某些业务要求 阅读全文
posted @ 2021-12-15 19:02 小林野夫 阅读(110) 评论(0) 推荐(0)
摘要: 对 C# 开发者来说,不可不理解清楚 Thread、ThreadPool 和 Task 这三个概念。这也是面试频率很高的话题,在 StackOverflow 可以找到有很多不错的回答,我总结整理了一下。 Thread Thread 是一个实际的操作系统级别的线程(OS 线程),有自己的栈和内核资源。 阅读全文
posted @ 2021-12-15 01:44 小林野夫 阅读(1163) 评论(0) 推荐(1)
摘要: I/O管理器 nt!_IRP IRP表示一个I/O请求包结构体,它用来封装执行一个特定I/O操作所需要的所有参数以及I/O操作的状态。IRP的表现也类似于一个线程独立调用栈因此它可以从一个线程传递到另一个线程,也可以通过驱动实现的队列传递给一个DPC例程。IRPs是Windows异步I/O处理模型的 阅读全文
posted @ 2021-12-14 17:00 小林野夫 阅读(663) 评论(0) 推荐(0)
摘要: 文章作者:r00tk1t 发布时间:2018年01月08日 - 21时56分 最后更新:2020年10月20日 - 21时01分 原始链接:https://r00tk1ts.github.io/2018/01/08/关键的Windows内核数据结构一览(上)/ 近期一直在整理归纳知识体系,译几叠好文 阅读全文
posted @ 2021-12-14 15:55 小林野夫 阅读(1162) 评论(0) 推荐(0)
摘要: 转载地址:https://blog.csdn.net/qq_38499859/article/details/80057427一.目录文章目录 操作系统3 ————进程控制块(PCB)详解 一.目录 二. 进程控制块 1.概述 2.进程控制块中的信息 3.进程控制块的作用 4.进程控制块的组织方式 阅读全文
posted @ 2021-12-14 14:48 小林野夫 阅读(6884) 评论(0) 推荐(1)
摘要: 怎么理解程序中的同步和异步把线程比作道路,目标比作任务。同步:同道中人或者朝着同一个目标去的。异步:道不同,不相为某或者朝着不同的目标去的。并发:很短的时间内同时发生的事件 阅读全文
posted @ 2021-12-14 02:31 小林野夫 阅读(162) 评论(0) 推荐(0)
摘要: 装载地址:https://www.1024sou.com/article/566302.html 一、大数据时代的现状 据统计,YouTube上每分钟就会增加500多小时的视频,面对如此海量的数据,如何高效的存储与处理它们就成了当前最大的挑战。但在这个对硬件要求越来越高的时代,CPU却似乎并不这么给 阅读全文
posted @ 2021-12-14 02:13 小林野夫 阅读(398) 评论(0) 推荐(0)
摘要: ◆ 协程 由程序员手动切换。 属于线程,是在线程里面跑的,因此协程又称微线程和线程等。由于不用进行线程上下文切换,因此效率会更高。 资源: 拥有自己的栈空间,大小动态调整。 安全性: 拥有自己的寄存器上下文和栈。 上下文切换: 无消耗,直接操作栈。调度切换是用户(程序员)手动切换,可控的切换时机,很 阅读全文
posted @ 2021-12-11 21:33 小林野夫 阅读(400) 评论(0) 推荐(0)
摘要: 内核对象简介 内核对象就是 一些数据结构该结构用来描述存储内核中的一个内存块中的数据信息。 内存块是一种数据结构,其中的数据成员负责维护该对象的相应信息,这个数据结构以及其中的数据成员只能由内核访问,应用程序是无法访问到的,更别说修改其中的数据成员了。 概念:内核对象可以供系统和应用程序使用来管理各 阅读全文
posted @ 2021-12-11 20:31 小林野夫 阅读(840) 评论(0) 推荐(0)
摘要: 在.net framework框架上,一个进程可以有多个appdomain。因此一个进程可以运行多个程序。 应用程序域的出现: (来自msdn) 在.net出现以前,一个进程下,只能运行一个应用程序,而在,net出现后,一个进程下,可以运行多个应用程序,这都是因为应用程序域的出现。 以前使用进程边界 阅读全文
posted @ 2021-12-11 15:59 小林野夫 阅读(181) 评论(0) 推荐(0)
摘要: CPU架构要谈超线程和多核,就不得不谈CPU的架构和逻辑。无关的技术细节太多,这里略去。我们重点谈一下CPU中两个相关的模块:1)Processing Unit(运算处理单元),简称PU2)Architectual State(架构状态单元),简称ASPU一般就是执行运算,比如算数运算加减乘除。AS 阅读全文
posted @ 2021-12-11 15:48 小林野夫 阅读(1073) 评论(0) 推荐(0)
摘要: 并发 在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥 微观角度 所有的并发处理都有排队等候,唤醒,执行等这样的步骤,在微观上他们都是序列被处理的,如果是同一时刻到达的请求(或线程)也会根据优先级的不同,而 阅读全文
posted @ 2021-12-11 15:45 小林野夫 阅读(787) 评论(0) 推荐(0)
摘要: 前言 Windows的内部实现也近似于“一切皆文件”的思想,当然,这一切都只在内核里才有,下载一个WinObj这软件就可以看到,Windows上各种设备、分区、虚拟对象都是挂载到根“\”下的,通过这个树可以访问各种设备、驱动、文件系统等等。 Windows与Linux不同的就是把这些对象又重新封装了 阅读全文
posted @ 2021-12-11 15:41 小林野夫 阅读(1385) 评论(0) 推荐(0)
摘要: 转载:https://cloud.tencent.com/developer/article/1744660 二、异步与多线程 1)基本概念 1. 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥其中 阅读全文
posted @ 2021-12-09 19:24 小林野夫 阅读(882) 评论(0) 推荐(0)
摘要: 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条 阅读全文
posted @ 2021-12-09 18:31 小林野夫 阅读(235) 评论(0) 推荐(0)
摘要: 所有的现代操作系统中,CPU是在两种不同的模式下运行的: 注意以下内容来自微软: windows用户模式和内核模式 运行 Windows 的计算机中的处理器有两个不同模式:用户模式 和内核模式 。 用户模式和内核模式都是针对CPU运行状态来说的,在用户模式下,CPU无法执行一些特权指令,而在内核模式 阅读全文
posted @ 2021-12-09 16:17 小林野夫 阅读(3377) 评论(0) 推荐(0)
摘要: 编程范式paradigm(philosophy) 其实所谓架构就是限制,限制源码放在哪里、限制依赖、限制通信的方式,但这些限制比较上层。编程范式是最基础的限制,它限制我们的控制流和数据流:结构化编程限制了控制权的直接转移,面向对象编程限制了控制权的间接转移,函数式编程限制了赋值,相信你看到这里一定一 阅读全文
posted @ 2021-12-08 22:18 小林野夫 阅读(280) 评论(0) 推荐(0)
摘要: WMI应用(一个系统自带的测试WMI语句的工具) 1. 开始-运行-输入:wbemtest 回车2. 单击"连接", 输入:root\cimv2 回车; 或者ROOT\SecurityCenter 3. 单击"查询", 输入:SELECT * FROM Win32_Process 应用; 或者SEL 阅读全文
posted @ 2021-12-04 01:37 小林野夫 阅读(2160) 评论(0) 推荐(0)
摘要: 文件保护:文件访问类型和访问控制 为了防止文件共享可能会导致文件被破坏或未经核准的用户修改文件,文件系统必须控制用户对文件的存取,即解决对文件的读、写、执行的许可问题。 为此,必须在文件系统中建立相应的文件保护机制。 文件保护通过口令保护、加密保护和访问控制等方式实现。 其中,口令保护和加密保护是为 阅读全文
posted @ 2021-12-03 18:53 小林野夫 阅读(1006) 评论(0) 推荐(0)
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 21 下一页
原文链接:https://www.cnblogs.com/cdaniu/