案例研究:机器人和餐具 其次,也是更重要的一点,我们过去(现在也仍然不相信)标准的多线程模型,它是共享内存抢占式并发:我们仍然认为没有人能够在“a = a + 1”是不确定的语言中编写正确的程序。 我讲了一个餐厅的故事,里面的类人机器人——ThreadBots——做了所有的工作。在这个比喻里,每个工 ...
分类:
编程语言 时间:
2020-05-31 11:29:38
阅读次数:
57
课程源自http://e-learning.51cto.com/course/15234 """进程和线程的概述"""""" 进程就是运行中的应用程序。应用程序是静态的,进程是动态的。 查看所有正在运行的进程,每个进程至少对应一个线程。每个进程都用来完成一件作任务,每个线程完成进程内的一件子任务。线 ...
分类:
编程语言 时间:
2020-05-30 12:53:50
阅读次数:
56
1 概述 linux常见的五大进程间通信方式包括:共享内存、管道、消息队列、信号量、Socket。 2 共享内存 定义:将同一块物理内存映射到不同的进程的虚拟地址空间中,实现不同进程间对同一资源的共享。 特定:(1)不用从用户态到内核态的频繁切换和拷贝数据,直接从内存中读取就可以。 (2)共享内存是 ...
分类:
系统相关 时间:
2020-05-28 01:02:42
阅读次数:
79
DM 支持多种操作系统。常用的操作系统基本上可以划分为 Windows 操作系统和 Linux操作系统。下面分别介绍这两种操作系统下启动和关闭 DM 数据库的操作。
分类:
数据库 时间:
2020-05-26 19:56:47
阅读次数:
327
真正的零拷贝有两种方式: mmap+write Sendfile mmap 是一种内存映射文件的方法,即将一个文件或者其他对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对应关系。 这样就可以省掉原来内核 Read 缓冲区 Copy 数据到用户缓冲区,但是还是需要内核 ...
分类:
其他好文 时间:
2020-05-20 18:34:29
阅读次数:
72
# 一面1. 学习过哪些课程啊?为什么想着做JAVA2. 中断向量了解么?把你知道的所有跟中断相关的说出来3. 计算机中的数据都是怎么保存的?4. 进程和线程区别,进程间通信方式和线程通信方式5. 两个进程采用共享内存来通信,创建共享内存的进程死掉了那这块共享内存会被回收么?6. 二叉树除了用链表还... ...
分类:
编程语言 时间:
2020-05-20 12:13:07
阅读次数:
72
铁人三项(第五赛区)_2018_seven 先来看看保护 保护全开,IDA分析 首先申请了mmap两个随机地址的空间,一个为rwx,一个为rw 读入的都shellcode长度小于等于7,且这7个字符不能重复。 然后把一个叫initial的东西复制到rwx_page上,再把我们写的shellcode拼 ...
分类:
其他好文 时间:
2020-05-16 12:34:18
阅读次数:
90
本文转自:https://blog.csdn.net/gfgdsg/article/details/42709943 借花献佛,以留后用 Linux 的虚拟内存管理有几个关键概念: 1、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址; 2、虚拟地址可通过每个进程上的页表(在每 ...
分类:
系统相关 时间:
2020-05-13 16:32:43
阅读次数:
75
一面: hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移? Linux的共享内存如何实现,大概说了一下。 socket网络编程,说一下TCP的三次握手和四次挥手 同步IO和异步IO的区别? Java GC机制?GC Roots有哪些? 红黑树讲一下,五个特性,插入删除操作,时间复 ...
分类:
编程语言 时间:
2020-05-06 14:10:59
阅读次数:
134
一般流程是先创建或打开一个文件,然后使用mmap进行内存映射。 1. 读取文件 // 打开文件 int fd = open("input.txt", O_RDONLY); // 读取文件长度 int len = lseek(fd,0,SEEK_END); // 建立内存映射 char *addr = ...
分类:
编程语言 时间:
2020-05-01 16:19:49
阅读次数:
176