06-进程控制理论

来自:http://www.cnblogs.com/wmx-learn/p/5302502.html

这里介绍进程相关的基础概念!

一、进程

  1. 进程和程序的区别:

    • 所谓进程,通俗的讲是一个具有独立功能的程序的一次运行活动。相比于进程而言,程序是静态的,如放在磁盘上的程序;而进程是动态的,必须是运行起来的。
  2. 进程特点:

    1. 动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡;
    2. 并发性:任何进程都可以同其他进程一起并发执行;
    3. 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
    4. 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进
  3. 结构特征:进程由程序、数据和进程控制块三部分组成.

二、进程状态图(经典三态,内核七态)

  • 在操作系统原理中,一个完整的进程都不可或缺的拥有以下三态:就绪态,执行态,阻塞态
    • 进程三态图
  • 进程执行过程:
    • 进程一旦创建起来之后,首先进入的状态是就绪态,然后通过进程调度来占有CPU进入执行态,注:假如只有一个CPU,则同一时刻只有一个进程能够占有CPU。进程在运行过程当中若要进行I/O请求,如访问网卡、串口(从串口读取数据,此时串口没有数据可读)等时,则进程会进入阻塞态,等串口有数据并将数据读完(I/O完成),进程又会跳回就绪态。整个过程为进程的基本流程。

三、进程ID

  • 进程ID(PID):
    • 标识进程的唯一数字;
  • 父进程的ID(PPID):
  • 启动进程的用户ID(UID):

四、进程互斥

  • 进程互斥是指当有若干进程都要使用某一资源时,但该资源在同一时刻最多允许一个进程使用,这时其他进程必须等待,直到占用该资源者释放了该资源为止。

五、临界资源

  • 操作系统中将同一时刻只允许一个进程访问的资源称为临界资源。

六、临界区

  • 进程中访问临界资源的那段程序代码称为临界区。为实现对临界资源的互斥访问,应保证诸进程互斥地进入各自的临界区。

七、进程同步

  • 一组进程按一定的顺序执行的过程称为进程间的同步,具有同步关系的这组进程称为合作进程,最为有名的是生产者和消费者进程。
  • 这里写图片描述

八、进程调度

按一定算法,从一组待运行的进程中选出一个来占有CPU运行。

  • 调度算法:
    • 在操作系统中,常见的调度算法有:
      • 1.先来先服务;
      • 2.短进程优先调度;
      • 3.高优先级优先调度;
      • 4.时间片轮转法。

九、按调度时机调度可分为:

  • 进程调度时机
    1. 抢占式调度:高优先级的进程会抢占处理器,让正在处理的进程处于就绪队列
    2. 非抢占式调度:当就绪队列中某进程的最高优先级高于正在处理器中运行的进程的最高优先级时,并不会让正在运行的进程退出处理器,而是将高优先数的排在就绪队列的首部。

十一、进程死锁:

多个进程因竞争资源而形成一种僵局,导致这些进程都无法继续往前执行。

  • 这里写图片描述
  • 进程死锁示意图(实线为已占有资源,虚线为待占有资源)

十二、函数getpid

  • getpid()用来取得目前进程的进程识别码,许多程序利用取到的此值来建立临时文件,以避免临时文件相同带来的问题。

      函数原型:pid_t getpid(void)

      函数作用:返回调用该函数的进程的PID

      所属头文件:《sys/types.h》 《unistd.h》

      函数参数:无

      函数返回值:调用该函数的进程的ID
      

#include <time.h>
#include <sys/types.h>
#include <unistd.h>

main(){
    int td = 0 ;
    td = getpid() ;
    printf("the pid is : %d \n",td) ;
}
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值