栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

进程的管理(中)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

进程的管理(中)

进程的管理

在这个内容中,我们讲述的是进程的基本的功能介绍。当然这里并没有把进程同步添加上去,在后续的文章中会继续介绍进程同步。以下内容多为总结,结合自己手敲和参考部分内容学习。接下来就介绍后续的知识点吧。

1、进程控制 1.1 进程控制的概念

进程控制就是进程管理中最基本的功能,它包括创建新进程、终止已经完成的进程、将因发生的异常情况而无法继续运行的进程置于阻塞状态、负责进程运行中的状态转换等功能。

简单来说,就是实现各种进程之间的状态转换。

1.2 实现进程控制

一般而言,我们使用原语来实现进程控制。原语的特点在于执行期间不允许中断,只能一气呵成。这种不可中断的操作叫做原子操作。

原语一般采用”关中断指令“和”开中断指令“实现。

  • 关中断不会受到外部中断信号的干扰;
  • 开中断会受到外部中断信号的影响,并执行下一步中断处理程序。
1.3 操作系统内核

一般而言,原语都是运行在核心态中。因为关/开中断指令权限大,所以必然是只允许在核心态下执行的特权指令。

大多数内核都包括以下两大功能:

  • 时钟管理:实现计时功能
  • 中断处理:负责中断机制的实现
  • 原语:一个特殊的程序,它处于操作系统最底层,是最接近硬件的部分。具有原子性,运行时间短,调用频繁。
1.4 进程控制相关的原语

进程控制就是进程状态的转换,无论哪个原语都是做以下三件事情:

  • 更新PCB的信息
  • 将PCB插入合适的队列
  • 分配/回收资源
1.4.1 创建进程

1.4.2 终止撤销

1.4.3 阻塞与唤醒

1.4.4 进程的切换

2、进程通信

进程通信指的是进程之间的信息交换。进程是负分配系统资源的单位,因此各个进程拥有的内存地址空间相互独立。这就说明一般而言针对安全性,一个进程不能够直接访问其他进程的地址空间;而出现进程通信在于能够保证在此基础上保证进程间的安全通信。

由于进程的互斥与同步,这需要在进程之间交换一定的信息,但是这只能称之为低级进程通信。

在进程之间要传送大量数据时,应当利用OS提供的高级通信工具,包括以下:

  • 使用方便
  • 高效地传递大量数据
2.1 共享存储

首先这两个进程对共享空间访问是互斥的。

互斥的访问功能是通过操作系统提供的工具实现。操作系统只负责提供共享空间和同步互斥工具。

其中,共享存储又分为基于数据结构的共享、基于存储区的共享。

  • 基于数据结构的共享:它在于比如只能放一个10长度的数组,这势必会造成共享方式速度慢、限制多。
  • 基于存储区的共享:在内存中画出一个共享存储区,数据的形式、存放的位置都是由进程控制决定而非操作系统。
2.2 管道通信

如上图所示,这就是管道通信。管道简单来说就是在内存开辟一个大小相对固定的缓冲区。管道的特性还有如下;

1、管道只能采用半双工通信方式,即只能一个时间段内实现单向传输。

2、各进程要互斥的访问管道

3、数据以字符流形式写入数据,当管道写满时,系统调用写进程于阻塞状态;等待后续读进程数据取走完后,管道变空,此时系统调用读进程于阻塞状态。

4、如果没有写满就不允许读;同理可知没有读完就不允许写。

5、数据一旦读出就从缓存中被抛弃,这意味着读进程最多只有一个否则就有可能读错数据——意思在于管道只负责读数据前后的数据存储

可能事实上更加广泛使用如下图的管道通信:

2.3 消息传递

进程间的数据交换以格式化的消息为单位,其结构如下:

消息传递包括直接通信方式和间接通信方式(信箱通信方式)。

直接通信和间接通信之间直观上最本质的区别在于是否有中间体。

总结

以上就是进程的基本管理,后续会讲述线程的概念—谢谢大家的阅读。

消息传递包括直接通信方式和间接通信方式(信箱通信方式)。

直接通信和间接通信之间直观上最本质的区别在于是否有中间体。

总结

以上就是进程的基本管理,后续会讲述线程的概念—谢谢大家的阅读。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/288883.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号