zoukankan      html  css  js  c++  java
  • Linux 进程详解

    Linux内核的七大区间
    1.进程管理(进程创建,进程的三种状态,进程间的调度,调度算法...)
    2.内存管理(段式管理(Linux所有段都从0开始),页式管理--地址偏移量)
    3.系统调用(C语言库函数的区别)
    4.网络协议(TCP/IP协议)
    5.UFS--虚拟文件系统==》Linux驱动总线模型
    6.驱动管理(网络设备,块设备,字符设备...)
    7ARCH(对各个硬件平台的支持...RAM x86 power pc)
    进程数据结构
    进程的静态描述:由三部分组成:PCB,有关程序段和该程序段对其进行操作的数据结构集
    进程控制块(PCB):用于描述进程情况及控制进程运行所需的全部信息
    代码段:是进程中能被进程调度程序在CPU上执行的程序代码段。
    数据段:一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行后产生的中间或最终数据
    进程是操作系统对资源的一种抽象:一个进程:代码段、数据段,堆栈段(内存四区)+进程控制块(PCB)
    PCB是操作系统感知进程存在的一个重要数据结构。
    fork函数和vfork函数
    vfork()函数有个限制,子进程必须立刻执行_exit或者exec函数,
    即使fork实现了copy on write,效率也没有vfork高,但是我们不推荐使用vfork,因为几乎每一个vfork的实现,
    都或多或少存在一定的问题 结论:
    1.fork子进程会写时拷贝父进程的数据段;vfork子进程与父进程共享数据段 2.fork父子进程的执行次序不确定;vfork子进程先运行,父进程后运行
    vfork和exec函数在一起
    execve替换进程映像(加载程序),注意execve是一个系统调用;替换意味着:代码段,数据段,堆栈段,进程控制块PCB全部替换
  • 相关阅读:
    Thinking Clearly about Performance
    国家统计局2018-10-30统计的最新的省市区
    Java 返回字符串中第一个不重复字符的下标 下标从0开始
    国际象棋的游戏规则
    Python语言之requests库
    VBS 自动发消息给对方
    Windows
    上海合计共有16个区一个县
    @RequestMapping中的注解
    Linux 中 /proc/kcore为啥如此之大
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/6063403.html
Copyright © 2011-2022 走看看