博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进程控制原理
阅读量:6227 次
发布时间:2019-06-21

本文共 1290 字,大约阅读时间需要 4 分钟。

hot3.png

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

进程互斥:进程互斥是指当有若干个进程要使用某一共享资源(临界资源)时,任何时刻最多允许一个进程使用,其他使用资源的进程必须等待,直到占用该资源的进程释放该资源为止。

临界资源:操作系统中将一次只允许一个进程访问的资源称为临界资源。

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

进程同步:一组并发进行按照一定顺序执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。如工厂商品流程:生产,测试,包装,出售,这几个过程就是进程同步,先生产再测试,再包装,再出售。

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

进程死锁:多个进程因竞争资源而形成一种僵局,若无外力作用,这些进程都将永远无法再向前推进。

一.为何需要多进程(或者多线程),为何需要并发?

这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性。
我想,只要你不是整天都写那种int main()到 底的代码的人,那么或多或少你会遇到代码响应不够用的情况,也应该有尝过并发编程的甜头。就像一个快餐点的服务员,既要在前台接待客户点餐,又要接*话送 外卖,没有分身术肯定会忙得你焦头烂额的。幸运的是确实有这么一种技术,让你可以像孙悟空一样分身,灵魂出窍,乐哉乐哉地轻松应付一切状况,这就是多进程/线程技术。
并发技术,就是可以让你在同一时间同时执行多条任务的技术。你的代码将不仅仅是从上到下,从左到右这样规规矩矩的一条线执行。你可以一条线在main函数里跟你的客户交流,另一条线,你早就把你外卖送到了其他客户的手里。

所以,为何需要并发?因为我们需要更强大的功能,提供更多的服务,所以并发,必不可少。
线程是可执行代码的可分派单元。这个名称来源于“执行的线索”的概念。在基于线程的多任务的环境中,所有进程有至少一个线程,但是它们可以具有多个任务。这意味着单个程序可以并发执行两个或者多个任务。

简而言之,线程就是把一个进程分 为很多片,每一片都可以是一个独立的流程。这已经明显不同于多进程了,进程是一个拷贝的流程,而线程只是把一条河流截成很多条小溪。它没有拷贝这些额外的 开销,但是仅仅是现存的一条河流,就被多线程技术几乎无开销地转成很多条小流程,它的伟大就在于它少之又少的系统开销

转载于:https://my.oschina.net/u/2397255/blog/599297

你可能感兴趣的文章
MVPArms MVP快速集成框架
查看>>
都 996 了,需求还是没法按时交付,怎么办?
查看>>
当技术为组织所累时怎么办?将你的组织架构旋转90度!
查看>>
刘强东唱衰快递 国家邮政局长却不这样看
查看>>
MapReduce数据序列化读写概念浅析!
查看>>
华云CloudIDC 给传统IDC企业一个转云的机会
查看>>
小鹏汽车选用芯片Xavier 联手英伟达打造L3级中国式自动驾驶
查看>>
一个看起来呆萌的核物理学霸为何两次收到BlackHat的邀请
查看>>
国际篮联三人篮球亚洲杯连续三年落户长沙
查看>>
长沙开通首条直飞缅甸曼德勒国际航线
查看>>
探访新疆喀什老城:从连片危房到5A景区
查看>>
重庆市交通行政执法总队发布春运“避堵”线路图
查看>>
北京所有社区卫生服务中心今年将全部“先诊疗、后结算”
查看>>
QNAP(威联通)联合创始人郭博达先生一行到访
查看>>
浏览器中唤起native app || 跳转到应用商城下载(一)
查看>>
springboot(十七):使用Spring Boot上传文件
查看>>
Vue中你不知道但却很实用的黑科技
查看>>
阿里云消息中间件(MQ)探秘
查看>>
基础排序算法详解与优化
查看>>
与我一起学正则
查看>>