• linux下的进程


    一、进程的基础:

      1、程序:程序是一些保存在磁盘上的指令的有序集合;

      2、进程:进程是程序的一次执行过程;

      3、进程与程序的关系:①、程序是静态的,进程是动态的;

                  ②、一个程序可以对应多个进程;

                  ③、程序只有数据段和代码段,进程除了有数据段和代码段之外,还有堆和栈;

                

          关于进程:

            堆栈区:存放的是函数的返回地址,函数的参数以及程序中的局部变量;

            代码段:存放程序代码;

            bss段:存放未初始化的全部变量和静态变量;

            数据段:存放初始化全局和静态变量;

      4、进程的特征:

          ①、动态的:程序的一次执行过程,在虚拟内存中运行,每时每刻都在变化;

          ②、并发的:“同时”运行;

          ③、独立的:每一个运行的进程都有独立的4GB大小的虚拟内存空间,每个进程都独占系统资源;

                进程是系统资源分配的最小单位;

                线程是CPU调度的最小单位;

          ④、异步的:多个线程运行时他们是相关无关的;

              

      5、进程的生命周期(状态)

      6、进程的分类

          ①、交互进程

          ②、批处理进程

          ③、守护进程

      7、进程的系统调用(API)

          ①、创建进程:

            #include <unistd.h>

            pid_t fork(void);          

            功能:创建进程;

            特点:调用一次,返回两次;

            返回值:调用失败:返回-1给调用的进程;调用成功:给父进程返回子进程的ID,给子进程返回:0;

          当调用fork后:

            1)系统会映射虚拟内存空间给子进程;

            2)拷贝父进程的堆、栈,数据段给子进程;

           3)给父进程返回子进程ID,给子进程返回0;

           4)子进程共享父进程的代码段;

           5)fork返回后,父、子进程从fork函数调用的下一条语句同时往下执行;  

        ②、 exec函数族

         ③、结束进程:exit和_exit

         ④、使当前进程阻塞,给子进程收尸:wait、waitpid。   

  • 相关阅读:
    Hyper-V中的VM如何使用Pass-through Disk
    LDF文件丢失, 如何仅用MDF文件恢复数据库呢?
    PowerShell中的一个switch的例子
    NetBiosDomainNamesEnabled与SharePoint User Profile Service Application
    在Windows Server 2008 R2上安装Exchange 2013过程中遇到的一些问题
    C语言位域精解(转)
    uniq命令 (转)
    sort命令
    curl命令(测试连接命令)
    C10K——千万级并发实现的秘密:内核不是解决方案,而是问题所在!(转)
  • 原文地址:https://www.cnblogs.com/feige1314/p/7231734.html
Copyright © 2020-2023  润新知