进程的学习

多任务编程:

1.多进程

2.多线程

进程:(进行中的程序)--正在运行的程序 (动态的) ---内存

程序的一次执行过程!进程是程序的一个实例;

程序 -- a.out (可执行程序) ---静态的

程序源代码

程序 加载 到内存 运行起来 成为了 进程。

进程是运行起来的程序,一个程序可产生多个进程

程序 ---> ./a.out ----> 进程

程序 à 静态 -> 硬盘

进程 -> 动态 -> 内存

为什么需要进程?
1.为了描述和管理程序运行的动态过程;

2.进程调度;

3.操作系统为了管理程序的动态运行的过程;

栈 堆 静态区 字符串常量区 代码段

进程的组成: 程序 =代码 + 数据;

进程概念:

  描述 记录 程序运行过程中的 动态信息!

  一个程序 可以 对应到多个进程

  程序 变成 进程?

  [栈            ]

  [堆            ]   

  [静态区(全局区)] //data --已初始化的 全局变量 或 静态变量

                   //bss  --未初始化的 全局变量 或 静态变量

  [字符串常量区  ]

  [代码区        ] //text (正文) --代码段

  ./a.out -----> 进程 (开辟的)

并发: 某一时刻,同时发生 

正在执行的程序 ---进程 (动态)

程序 ----加载到内存去运行--- 进程

进程是 程序运行的实体。

程序中有啥:

程序 = 数据+代码 

linux:

程序

bss  --- 未初始化的数据  |          

data --- 初始化了的数据  |  静态区 | ---数据

text --- 正文段(代码段)

程序

./a.out

进程: (占用 cpu ,内存相关的资源 ,IO资源(屏幕,键盘))

进程的一生:

创建进程

执行任务 

  (1).跟父进程相同的任务

  (2).有自己的任务要做  

进程结束

  exit()

  (1).孤儿进程 --- 没有父亲 

  (2).僵尸进程 --- 有父亲,但是自己先挂了

1.进程的含义?

       进程是一个程序执行的过程,会去分配内存资源,cpu的调度

       pcb  是一个结构体,Process Control Block               

       print circuit board

       struct task_struct  //

       {

              PID,进程标识符

              PPID,parent id (父亲)

              当前工作路径   chdir

              umask  0002

              进程打开的文件列表  文件IO中有提到

              信号相关设置 处理异步io,

              用户id,组id

              进程资源的上限

              ulimit -a,显示资源上限。

       }

       //一个程序运行之后(进程)

       默认打开了三个文件

       stdin

       stdout

       stderr

       2.进程和程序的区别?

       程序:静态

              存储在硬盘中代码,数据的集合

       进程:动态

              程序执行的过程,包括进程的创建、调度、消亡

              .c ----> a.out-----> process(pid)

             

       1)程序是永存,进程是暂时的

       2)进程有程序状态的变化,程序没有

       3)进程可以并发,程序无并发

       4)进程与进程会存在竞争计算机的资源

       5)一个程序可以运行多次,变成多个进程

       一个进程可以运行一个或多个程序内存的分布

       0-3G,是进程的空间,

       3G-4G是内核的空间,虚拟地址

       虚拟地址 *  物理内存和虚拟内存的地址、

进程的编程:

创建进程:目的执行一个程序,主要是为了实现多任务;

进程的执行和运行;

进程结束;

进程结束后资源的回收—僵尸态;

进程的状态

linux 怎么管理进程?

PCB (process control block)//账本 信息登记表

程序角度:

task_struct {

    PID,             //进程标识符

       PPID,            //父进程ID号  parent

       当前工作路径     //chdir

       umask            //0002

       进程打开的文件列表 //文件IO中有提到

       信号相关设置       //处理异步io, ---段错误

       用户id,组id

       进程资源的上限

}

户口信息: //父子关系

进程的执行

跟父进程相同的任务,也有自己的任务要做

孤儿进程,父进程不在,init收养子进程;此时子进程是一个后台进程;

子进程结束,父进程不做任何处理,子进程处于僵尸态。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值