加入收藏 | 设为首页 | 会员中心 | 我要投稿 平凉站长网 (https://www.0933zz.com.cn/)- 图像处理、语音技术、媒体智能、运维、低代码!
当前位置: 首页 > 站长资讯 > 动态 > 正文

VUCA时代下的数字化人才管理的思考

发布时间:2021-02-02 16:30:01 所属栏目:动态 来源:互联网
导读:栈区 唉,等等!刚不是说栈区是线程私有资源吗,怎么这会儿又说起栈区了? 确实,从线程这个抽象的概念上来说,栈区是线程私有的,然而从实际的实现上看,栈区属于线程私有这一规则并没有严格遵守,这句话是什么意思? 通常来说,注意这里的用词是通常,通常

栈区

唉,等等!刚不是说栈区是线程私有资源吗,怎么这会儿又说起栈区了?

确实,从线程这个抽象的概念上来说,栈区是线程私有的,然而从实际的实现上看,栈区属于线程私有这一规则并没有严格遵守,这句话是什么意思?

通常来说,注意这里的用词是通常,通常来说栈区是线程私有,既然有通常就有不通常的时候。

不通常是因为不像进程地址空间之间的严格隔离,线程的栈区没有严格的隔离机制来保护,因此如果一个线程能拿到来自另一个线程栈帧上的指针,那么该线程就可以改变另一个线程的栈区,也就是说这些线程可以任意修改本属于另一个线程栈区中的变量。
 

注意到,虽然变量a定义在函数内部,但变量a依然具有全局变量的特性,也就是说变量a放在了进程地址空间的数据区域,即使函数执行完后该变量依然存在,而普通的局部变量随着函数调用结束和函数栈帧一起被回收掉了,但这里的变量a不会被回收,因为其被放到了数据区。

这样的变量对每个线程来说也是可见的,也就是说每个线程都可以访问到该变量。

堆区

堆区是程序员比较熟悉的,我们在C/C++中用malloc或者new出来的数据就存放在这个区域,很显然,只要知道变量的地址,也就是指针,任何一个线程都可以访问指针指向的数据,因此堆区也是线程共享的属于进程的资源。
 

这其实就是进程地址空间的样子,也就是说线程共享进程地址空间中除线程上下文信息中的所有内容,意思就是说线程可以直接读取这些内容。接下来我们分别来看一下这些区域。

代码区

进程地址空间中的代码区,这里保存的是什么呢?从名字中有的同学可能已经猜到了,没错,这里保存的就是我们写的代码,更准确的是编译后的可执行机器指令。'

那么这些机器指令又是从哪里来的呢?答案是从可执行文件中加载到内存的,可执行程序中的代码区就是用来初始化进程地址空间中的代码区的。
 

3) 2017年:勒索病毒爆发年

尽管CryptoLocker、TeslaCrypt和 Locky等勒索软件家族都在全球范围内感染了大量系统。然而,直到2017年中,WannaCry、NotPetya两大勒索软件攻击将战火蔓延至全球,攻击覆盖了从乌克兰的医院到加利福尼亚的广播电台等机构,勒索软件展示了其不可忽视的危害性、破坏性。

WannaCry是WannaCrypt的简写,意味着WannaCry是加密病毒软件的事实。更具体来说就是,它就是加密蠕虫,能自动复制及散播开来。WannaCry勒索病毒利用Windows SMB(“永恒之蓝”)漏洞在全球快速传播,感染全球99个国家和地区超过百万台电脑,这使得WannaCry成为史上规模最大的勒索病毒袭击事件。WannaCry所造成损失据估计为40亿美元到80亿美元之间。

(编辑:平凉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读