![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 80
gh877916059
这个作者很懒,什么都没留下…
展开
-
进程与线程模型
一、综述 一直以来, linux内核并没有线程的概念。 每一个执行实体都是一个task_struct结构, 通常称之为进程。Linux内核在 2.0.x版本就已经实现了轻量进程,应用程序可以通过一个统一的clone()系统调用接口,用不同的参数指定创建轻量进程还是普通进程,LWP与普通进程的区别也在于它只有一个最小的执行上下文和调度程序所需的统计信息。 后来为了引入多线程,Linux2.0~2原创 2017-03-13 19:54:00 · 241 阅读 · 0 评论 -
linux进程间通信
①无名管道:是半双工的,数据只能向一个方向流动。需要双方通信时,需要建立起两个管道。只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程)。单独构成一种独立的文件系统,管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。 数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管原创 2017-03-13 20:50:54 · 169 阅读 · 0 评论 -
mmap
mmap是一种内存映射文件的方法,即将一个文件或者其他对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。系统会自动回写脏页面到对应文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。同时内核空间对这段区域的修改也直接反映用户空间,从而可以实现不同进程间的文件共享。原创 2017-03-13 21:40:21 · 250 阅读 · 0 评论 -
各种编程语言的内存模型
①C程序内存分配: 一个正在运行着的C编译程序占用的内存分为代码区、初始化数据区、未初始化数据区、堆区和栈区5个部分。 (点击查看大图)图3-1 C程序的内存布局 (1)代码区(text segment)。代码区指令根据程序设计流程依次执行,对于顺序指令,则只会执行一次(每个进程),如果反复,则需要使用跳转指令,如果进行递归,则转载 2017-04-02 20:59:33 · 3117 阅读 · 0 评论