这个lab内容其实不算太多,不过我断断续续的做了有两个礼拜的样子。 基本分为三个部分,第一部分是首先建立一个物理页的结构,第二部分是写一些操作页表的函数, 写到这里会有点困惑,写这些是干嘛的,然后到第三部分可以得到部分解答,第三部分就是把页表本身以及内核地址中的其他一些东西映射到较高的虚拟地址上面。 ...
分类:
其他好文 时间:
2019-01-25 23:49:31
阅读次数:
233
import java.net.InetAddress;import java.net.UnknownHostException;public class HuoQu { public static void main(String[] args) throws UnknownHostExcepti ...
分类:
编程语言 时间:
2019-01-25 12:56:49
阅读次数:
162
linux进程与线程的区别,早已成为IT界经常讨论但热度不减的话题。无论你是初级程序员,还是资深专家,都应该考虑过这个问题,只是层次角度不同罢了。对于一般的程序员,搞清楚二者的概念并在工作中学会运用是其思考的主要问题;对于资深工程师,如何在系统层面实现两种技术及其各自的性能和实现代价是其思考的主要问 ...
分类:
编程语言 时间:
2019-01-15 15:54:35
阅读次数:
229
物理地址和虚拟地址: 计算机的主存被组织成一个由M个连续的字节大小的单元组成的数组。每个字节都有一个唯一的物理地址(PA)。第一个字节地址为0,接下来为1,再接下来为2,依次类推。CPU访问内存的最自然方式就是使用物理地址。我们把这种方式称为物理寻址。如图所示。 现代处理器使用一种称为虚拟地址的寻址 ...
分类:
其他好文 时间:
2019-01-13 12:23:32
阅读次数:
206
在生成动态库时,常常习惯性的加上fPIC选项,fPIC有什么作用和意义,加不加有什么区别,这里做下小结: fPIC的全称是 Position Independent Code, 用于生成位置无关代码。什么是位置无关代码,个人理解是代码无绝对跳转,跳转都为相对跳转。 1、不加fPIC选项 即使不加fP ...
分类:
系统相关 时间:
2019-01-03 21:39:57
阅读次数:
248
一、Linux进程间通信 1、进程隔离 在操作系统中,进程与进程间的内存和数据都是不共享的。两个进程就好像大海中相互独立的两个岛屿,各自生活在互相平行的两个世界中,互不干扰,各自为政。这样做的目的,是为了避免进程间相互操作数据的现象发生,从而引起各自的安全问题。为了实现进程隔离,采用了虚拟地址空间, ...
分类:
移动开发 时间:
2019-01-02 12:51:48
阅读次数:
282
这篇文章主要记录一下c程序运行时内存空间如何使用。(摘抄自网络) 在一个多任务操作系统中的每个进程都运行在它自己的内存“沙箱”中。这个沙箱是一个虚拟地址空间(virtual address space),在 32 位系统中它总共有 4GB 的内存地址空间,包含内核空间和用户空间: 这些虚拟地址是通过 ...
分类:
其他好文 时间:
2018-12-26 15:45:56
阅读次数:
161
内核分配给进程的虚拟地址空间由以下内存区组成: 程序的可执行代码 程序的初始化数据 程序的未初始化数据 初始程序栈(即用户态栈) 所需共享库的可执行代码和数据 堆(由程序动态申请的内存) 内核和MMU(内存控制单元)协同定位虚拟地址空间在 内存中的实际物理位置 进程描述符(process descr ...
分类:
系统相关 时间:
2018-12-22 01:16:18
阅读次数:
138
ipc是什么? 进程间通信(IPC,Inter Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。 进程间为何不能直接共享数据? 如何解决ipc问题? 每个进程的虚拟内存只严格对应自己的那片物理内存空间,也就是说虚拟空间的虚拟地址,只和自己的那片物理 ...
分类:
其他好文 时间:
2018-12-20 10:31:53
阅读次数:
254
一、操作系统用进程(Processe)分隔正在执行的程序,用线程(Thread)作为操作系统分配处理器时间的基本单元,进程上下文中可以运行多个线程,进程的所有线程共享其虚拟地址空间,所有线程均可执行程序代码中的任意部分,包括其他线程正在执行的代码; 1.默认情况下,.NET程序只启动单个线程,被称为 ...
分类:
编程语言 时间:
2018-12-17 02:43:32
阅读次数:
213