《进程》*

进程

进程是程序执行的过程。

程序是静态的,是一些指令的的结合,保存在磁盘中。

程序一旦开始执行,就产生了进程,操作系统会为进程分配资源,进程是分配资源最小的单位。

开始运行--------------------------------------------------------------------------------------->结束


                                                                                                                                       时间轴

时间片的轮转

优先级只代表抢占到资源的概率,并不是优先执行。 <竞争CPU资源>

每个任务的执行时间是由时间片来决定。   时间片(将一段时间分成多份)

例如:1s/1000 = 1微秒

状态转化

进程状态

(1)运行态:此时进程 正在运行 或 准备运行 或 就绪 正在运行

(2)睡眠态:等待事件发生 或 资源就绪

*可中断睡眠:可被信号唤醒

(3)

父子进程并发执行,子进程的代码是 fork() 之后的代码

如果父进程在子进程打印之前结束,则会回到终端命令后继续执行子进程;

如果子进程的打印语句在父进程结束之前执行,则会再回到终端命令之前执行完毕。

父子进程的执行顺序由操作系统的调度算法决定的,不是有程序本身决定的

<2> 

子进程会拷贝父进程的地址空间的内容,缓冲区,文件描述符等

创建多个进程

创建多个进程时,最主要的原则是由父进程统一管理,不能进行递归创建:

进程的退出(process)

在进程结束时,需要释放分配给进程的空间以及内核中产生的各种数据结构。

资源的释放需要通过exit 函数 或 _exit函数来完成。

在程序结束时,会自动调用exir 函数。

头文件 #include <stdlib.h>

exit 与 _exit 的不同

_exit() 属于系统调用,能使进程停止运行,并释放空间以及销毁内核中的各种数据结构。

exit() 基于_exit() 函数实现,属于库函数,会自动刷新IO 缓冲区。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值