Linux内核的七大区间
.进程管理(进程创建,进程的三种状态,进程间的调度,调度算法...)
.内存管理(段式管理(Linux所有段都从0开始),页式管理--地址偏移量)
.系统调用(C语言库函数的区别)
.网络协议(TCP/IP协议)
.UFS--虚拟文件系统==》Linux驱动总线模型
.驱动管理(网络设备,块设备,字符设备...)
7ARCH(对各个硬件平台的支持...RAM x86 power pc)
进程数据结构
进程的静态描述:由三部分组成:PCB,有关程序段和该程序段对其进行操作的数据结构集
进程控制块(PCB):用于描述进程情况及控制进程运行所需的全部信息
代码段:是进程中能被进程调度程序在CPU上执行的程序代码段。
数据段:一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行后产生的中间或最终数据
进程是操作系统对资源的一种抽象:一个进程:代码段、数据段,堆栈段(内存四区)+进程控制块(PCB)
PCB是操作系统感知进程存在的一个重要数据结构。
fork函数和vfork函数
vfork()函数有个限制,子进程必须立刻执行_exit或者exec函数,
即使fork实现了copy on write,效率也没有vfork高,但是我们不推荐使用vfork,因为几乎每一个vfork的实现,
都或多或少存在一定的问题
结论:
.fork子进程会写时拷贝父进程的数据段;vfork子进程与父进程共享数据段
.fork父子进程的执行次序不确定;vfork子进程先运行,父进程后运行
vfork和exec函数在一起
execve替换进程映像(加载程序),注意execve是一个系统调用;替换意味着:代码段,数据段,堆栈段,进程控制块PCB全部替换

Linux 进程详解的更多相关文章

  1. unix/linux进程详解

    技术分享 启动新进程 stdlib.hintsystem(const char *string)whichequals to "sh -c string" 替换进程映像unistd ...

  2. unix/linux进程详解——代码

    #include <iostream>#include <vector>#include <cstdint>#include <cstring>#inc ...

  3. Linux学习之守护进程详解

    Linux系统守护进程详解                                                              ---转自:http://yuanbin.blog ...

  4. PHP 进程详解

    .note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...

  5. Linux命令详解之—tail命令

    tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...

  6. Linux 系统结构详解

    Linux 系统结构详解 Linux系统一般有4个主要部分: 内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统 ...

  7. linux syslog详解

    linux syslog详解 分三部分 一.syslog协议介绍 二.syslog函数 三.linux syslog配置   一.syslog协议介绍 1.介绍 在Unix类操作系统上,syslog广 ...

  8. Linux init详解(转)

    Linux init详解 一.什么是INIT: init是Linux系统操作中不可缺少的程序之一. 所谓的init进程,它是一个由内核启动的用户级进程. 内核自行启动(已经被载入内存,开始运行,并已初 ...

  9. Linux内存详解

    --Linux内存详解 -----------------2014/05/24 Linux的内存上表现的不像windows那么直观,本文准备详细的介绍一下Linux的内存. 请看这下有linux命令f ...

随机推荐

  1. php设计模式 适配器模式

    适配器模式,可以将截然不同的函数接口封装成统一的API: 应用举例,PHP的数据库操作有Mysql.Mysqli.pdo三种,可以用适配器模式统一成一致,类似的场景还有cache适配器,将memcac ...

  2. symfony2 安装并创建第一个页面

    1.安装和配置 参考 http://symfony.cn/docs/book/installation.html 使用安装工具: windows系统 Open your command console ...

  3. Biee 11g权限详解

    前言:BIEE11g的权限较之前10g版本有了较大的变化,最明显的地方就是构架上的变化,其与 Oracle Fusion Middleware Security 紧密的集成在了一起. 在开始之前先让我 ...

  4. java的finalize()函数

    在说明finalize()的用法之前要树立有关于java垃圾回收器几个观点: "对象可以不被垃圾回收" : java的垃圾回收遵循一个特点, 就是能不回收就不会回收.只要程序的内存 ...

  5. SQL Server调优系列基础篇(联合运算符总结)

    前言 上两篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符的优化技巧,本篇我们总结联合运算符的使用方式和优化技巧. 废话少说,直接进入本篇的主题. 技术准备 基于SQL Server200 ...

  6. Servlet/JSP-05 Cookie

    一. 问题? HTTP协议是一种无状态协议,服务器本身无法识别出哪些请求是同一个浏览器发出的,浏览器的每一次请求都是独立的.现实业务中服务器有时候需要识别来自同一个浏览器的一系列请求,例如购物车,登录 ...

  7. x01.Game.LitSkull: 梯次防御

    1.人要有点精神 人要有点精神,否则,不是沦落为毫无意义的看客,就是退化成食色性也的动物,有被开除球籍的危险,如晚清. 2.框架 引号头文件在当前目录下搜寻,三角头文件在配置目录下搜寻,这是一个简单的 ...

  8. python enumerate函数用法

    enumerate函数用于遍历序列中的元素以及它们的下标 i = 0 seq = ['one', 'two', 'three'] for element in seq: print i, seq[i] ...

  9. java报表工具FineReport的公式编辑框的语法简介

    FINEREPORT用到公式的地方非常多,单元格(以=开头的便被解析为公式),条件显示,数据字典,报表填报属性值定义,图表标题,轴定义,页眉页脚,甚至单元格的其他属性中的鼠标悬浮提示内容都可以写公式, ...

  10. chrome内核浏览器input边框

    直接给input加outline:none和设置input {outline:none}都没效 最后逼得没法,*:focus { outline: none; },然后整个世界就安静了,嚯嚯