草庐IT

guard-malloc

全部标签

Windows 10主机上的VMware Workstation出现“VMware Workstation and Device/Credential Guard不兼容”错误解决办法

今天在使用虚拟机的时候出现了这个错误:Windows10主机上的VMwareWorkstation出现“VMwareWorkstationandDevice/CredentialGuard不兼容”错误。一、出现的原因出现这个错误的原因:一、是因为Device或CredentialsGuard不兼容;二、是因为Windows的Hyper-v与VMware不兼容的问题。想要解决出现的这个错误,我们需要去逐个排查问题。(我一开始就想到了我昨天安装AndroidStudio的时候修改了相关的Hyper-v的内容)二、解决办法一:关闭Device/CredentialsGuard1、win+R打开Win

Win10 家庭版找不到Device Guard来处理 VMware Workstation与Device Guard不兼容问题

Win10家庭版用虚拟机运行虚拟机系统时,提示VMware与DeviceGuard不兼容,需要禁用DeviceGuard才能运行。在网上找了很多方法,大多数都是说在本地组策略中禁用基于虚拟化的安全性,但是这个模组在Win10家庭版中是没有的;还有的方法是采用代码的方式来处理,但是我试了依然不能解决问题。最后发现还可以通过修改注册表的默认数值进行功能的禁用。问题的原因windows10家庭版就没有DeviceGuard这个模组设计,导致常规的解决办法根本无法使用但是虽然家庭版没有这个模组的管理功能,但是系统上依然默认跑着这个功能,所以也就引发了和VMware的冲突可以在开始菜单中输入msinfo

Win10 家庭版找不到Device Guard来处理 VMware Workstation与Device Guard不兼容问题

Win10家庭版用虚拟机运行虚拟机系统时,提示VMware与DeviceGuard不兼容,需要禁用DeviceGuard才能运行。在网上找了很多方法,大多数都是说在本地组策略中禁用基于虚拟化的安全性,但是这个模组在Win10家庭版中是没有的;还有的方法是采用代码的方式来处理,但是我试了依然不能解决问题。最后发现还可以通过修改注册表的默认数值进行功能的禁用。问题的原因windows10家庭版就没有DeviceGuard这个模组设计,导致常规的解决办法根本无法使用但是虽然家庭版没有这个模组的管理功能,但是系统上依然默认跑着这个功能,所以也就引发了和VMware的冲突可以在开始菜单中输入msinfo

操作系统实现:malloc 与 堆 实现

本文参考书:操作系统真像还原 什么是malloc?malloc是用户态申请内存时使用的函数。 malloc在哪里申请?堆中。 什么是堆?程序运行过程中需要申请额外的内存都会在堆中分配,堆中的内存分为几个规格类型的块用链表保存,程序需要内存就分配一个大于等于所需内存大小的块。如果一个规格的块用完了就像系统申请页,再将页切分成规格块的大小一个一个用链表链接起来。 如何找到堆?一般堆在进程pcb处有指针,内核的堆可以是一个全局变量。 由以上几个问题我们可以知道,只要先搞定堆后,malloc的作用就是在堆中拿个内存块就好啦。 堆的结构图   堆的核心结构是个数组u_block_desc 代表用户堆,放

操作系统实现:malloc 与 堆 实现

本文参考书:操作系统真像还原 什么是malloc?malloc是用户态申请内存时使用的函数。 malloc在哪里申请?堆中。 什么是堆?程序运行过程中需要申请额外的内存都会在堆中分配,堆中的内存分为几个规格类型的块用链表保存,程序需要内存就分配一个大于等于所需内存大小的块。如果一个规格的块用完了就像系统申请页,再将页切分成规格块的大小一个一个用链表链接起来。 如何找到堆?一般堆在进程pcb处有指针,内核的堆可以是一个全局变量。 由以上几个问题我们可以知道,只要先搞定堆后,malloc的作用就是在堆中拿个内存块就好啦。 堆的结构图   堆的核心结构是个数组u_block_desc 代表用户堆,放

<二>线程间互斥-mutex互斥锁和lock_guard

多线程程序竞态条件:多线程程序执行的结果是一致的,不会随着CPU对线程不同的调用顺序而产生不同的运行结果.解决?:互斥锁mutex经典的卖票问题,三个线程卖100张票代码1#include#include#include#includeintticketCount=100;std::mutexmtx;//互斥锁voidsellTicket(intwindow){ while(ticketCount>0){ mtx.lock(); std::couttlist; for(inti=0;i上面代码的问题...while(ticketCount>0){ mtx.lock();std::c

<二>线程间互斥-mutex互斥锁和lock_guard

多线程程序竞态条件:多线程程序执行的结果是一致的,不会随着CPU对线程不同的调用顺序而产生不同的运行结果.解决?:互斥锁mutex经典的卖票问题,三个线程卖100张票代码1#include#include#include#includeintticketCount=100;std::mutexmtx;//互斥锁voidsellTicket(intwindow){ while(ticketCount>0){ mtx.lock(); std::couttlist; for(inti=0;i上面代码的问题...while(ticketCount>0){ mtx.lock();std::c

<四>关于lock_guard和unique_lock

unique_lockcondition_variable1:lock_guard和unique_lock2:condition_variablewait和notify_all方式1std::mutexmtx;mtx.lock();.....mtx.unlock();//容易出现死锁方式2lock_guradlock(mtx)出作用域,自动析构(释放锁),缺陷:不能用在函数参数传递或者返回过程中.只能用在简单的临界区代码段的互斥操作中.方式3unique_lock不仅可以使用在简单的临界代码段的互斥操作中,还可以使用在函数调用过程中unique_lock(mtx)关于condition_var

<四>关于lock_guard和unique_lock

unique_lockcondition_variable1:lock_guard和unique_lock2:condition_variablewait和notify_all方式1std::mutexmtx;mtx.lock();.....mtx.unlock();//容易出现死锁方式2lock_guradlock(mtx)出作用域,自动析构(释放锁),缺陷:不能用在函数参数传递或者返回过程中.只能用在简单的临界区代码段的互斥操作中.方式3unique_lock不仅可以使用在简单的临界代码段的互斥操作中,还可以使用在函数调用过程中unique_lock(mtx)关于condition_var

驱动开发学习笔记---malloc、kmalloc和vmalloc

对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。 进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间。 区别如下:1、kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存2、kmalloc保证分配的内存在物理上是连续的,内存只有在要被DMA访问的时候才需要物理上连续,malloc和vmalloc保证的是在虚拟地址空