进程相关概念
创始人
2024-06-02 07:38:19
0

一、概念

1.1 什么是程序,什么是进程

  1. 程序是静态的,编译完的文件就是程序

  2. 进程是程序的一次执行

    程序跑起来了

1.2 如何查看系统中有哪些进程

  1. ps指令
    -aux,使用grep过滤
  2. top指令
    类似任务管理器

1.3 什么是进程标识符

  1. 非负整数ID,叫pid
  2. getpid获取进程号
    getppid获取父进程号
  3. 进程0,交换进程swapper,idle进程,空闲进程,死循环,进程调度
    进程1,init进程,kernel_init函数
    进程2,守护进程,kthreadd函数,守护内核,保证内核正常工作
  4. init进程:
    1. 打开控制台文件/dev/console,得到3文件描述符,就是012,后面的所有进程都有这3描述符
    2. 内核态下进程1,挂载根文件系统
    3. 用户态下进程1,执行用户态的init程序

1.4 什么叫父进程,子进程

  1. a创建b进程,a就是父进程
  2. init进程是所有进程的父进程
    所以都默认有,文件描述符012

1.5 c程序存储空间如何分配

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MadsaZMf-1678614289769)(C:\Users\戴尔\AppData\Roaming\Typora\typora-user-images\1678065900944.png)]

  1. 进程运行起来后,系统会分配一段内存给进程。从低地址到高地址分配:正文,初始化数据,未初始化数据,堆,栈,命令行参数和环境变量

    fork后:正文共享,数据写时拷贝

  2. 分别分配:

    1. 代码段:正文(main里除了变量的代码,只读)
    2. 数据段:全局变量,非0初始化数据,main函数里在栈
    3. bss段,ZI段:全局变量,未初始化,0初始化
    4. :malloc申请的空间
    5. :调用子函数使用的空间,包括变量(局部)
  3. 从源码到可执行程序的步骤:预编译、编译、链接、strip(把可执行程序中的符号信息给拿掉)

  4. 给段命名就是为了在链接脚本中用段名来让段站在合适的位置

    代码段(.text),数据段(.data),bss段(.bss)

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...