系统编程介绍

进程

        一、进程的生命周期

        (1)概念引入: 进程从创建出来 到 被系统回收释放 这个周期中进程的各个状态

        (2)生命周期分析:

  • 静态:没运行,相当于一个exe程序文件只占用磁盘内存(闪存)
  • 就绪态:已经运行起来,一开始是程序员在键盘输入./a.out命令,让系统(CPU)使 进程 调用一个函数exec创建新的进程空间,比如运动员等信号枪指令
  • 执行态:由就绪态演变来的,进程得到调度器给的时间片就变成执行态,但是时间片指的是有限的时间内,意味着进程只能在规定的时间内运行。

注:时间片如果用完了,进程就会从 执行态 回到 就绪态 继续等待时间片(如果等待时间片的过程中 流畅 就是分配了新的时间片,卡顿 就是用完了还没分配新的)

  • 暂停态:给指定的进程发 暂停信号SIGSTOP 使得进程进入 暂停态,直到发送继续信号SIGCON才能回到 就绪态(例如单机小游戏点了暂停就一直等待你点击开始)
  • 睡眠态:当进程所需要的资源可得时,就会导致进入睡眠态,通常是程序调用函数时(申请资源的函数),当资源得到了信号就会被唤醒进入就绪态(例如read:读取触摸屏坐标,一直等待获取到点击的坐标)

注:分为可中断和不可中断

可中断:绝大多数普通的等待都是可中断的

不可中断:等待的是硬件资源,如ioctl获取硬件LCD的屏幕宽度和高度

  • 僵尸态:程序退出时大部分的内存资源都会被系统回收然后进入僵尸态
  • 死亡态:如果僵尸态的时候进程所有的内存资源都被系统回收释放掉了,那么就不需要死亡态了,遗留下来的小部分内存资源自称的进程(僵尸态进程),如果把遗留下来的资源也全部回收,那进程就啥都释放了(死亡态)

*考点总结*:

1)以下哪种状态不属于进程的生命周期状态:

  •         A.就绪态        B.运行态        C.用户态        D.僵尸态
  •         A.运行        B.就绪        C.阻塞        D.等待

2)LINUX进程状态有 就绪态 和 ______ 、_______。(运行态、睡眠态(可写成阻塞/睡眠态))

        二、进程的创建

1、使用LINUX命令创建

        1)前台运行: ./程序的名字 程序的路径/程序的名字 运行起来的程序会占用 系统的会话终端,程序员可以通过终端输入 ctrl c 终止他

        2)后台运行: ./程序的名字  程序的路径/程序的名字  运行起来的程序不会占用 系统的会话终端,程序员没办法 ctrl c 终止他 我们可以发送终止信号去终止这个后台运行的程序:killall -9 程序的名字

2、使用system系统调用函数创建

      

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值