【计算机操作系统】进程管理详解?进程与线程区别是什么?进程调度的算法有哪些?进程通信有哪些?
发布日期:2021-06-29 15:36:16 浏览次数:3 分类:技术文章

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

【计算机操作系统】进程管理详解?进程与线程区别是什么?进程调度的算法有哪些?进程通信有哪些?

1.进程与线程的区别是什么(高频)?

a.拥有资源

进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源。

b.调度

线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程的切换,从一个进程的线程切换到另一个进程中线程时,会引起进程切换。

c.系统开销

由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O设备,所付出的开销远大于创建或撤销线程时的开销。 在进程进程切换时,涉及当前执行进程CPU环境的保存以及新调度进程CPU环境的设置,而线程切换时只需保存和设置少量寄存器内存,开销很小;

d.通信方法

线程间可以通过直接读写同一进程中的数据进行通信,但是进程间通信需要借助IPC。

2.进程状态的切换

就绪状态(ready):等待被调度

运行状态(running)

阻塞状态(waiting):等待资源

3.进程调度算法

不同环境的调度算法目标不同,因此需要针对不同环境来讨论调度算法;

批处理系统:

  • 先来先服务(按照请求顺序);
  • 短作业优先(按照运行时间最短的顺序调度);
  • 最短剩余时间优先(按照剩余运行时间调度顺序调度);

交互式系统:

  • 时间片轮转;
  • 优先级调度;

4.进程同步与进程通信

  • 进程同步:控制多个进程按一定顺序执行;
  • 进程通讯:进程间传输信息;

5.进程同步

  • 临界区: 对临界资源进行访问的那段代码被称为临界区;
  • 同步与互斥: 同步多个进程有一定的先后执行关系;互斥是多个进程在同一时刻只能有一个进程能进入临界区;
  • 信号量: 信号量是一个整型变量,可以对其执行down和up操作,即常见的P和V操作;
  • 管程: 使用信号量机制实现的生产者消费者问题需要客户端代码做很多控制,而管程把控制的代码独立出来了。

哲学家就餐的问题,如何防止死锁的发生,可以设置两个条件:

  • 必须同时拿起左右两根筷子;
  • 只有在两个邻居都没有进餐的情况下才允许就餐;

6.进程通信(高频)

进程同步与进程通信很容易混淆,它们的区别在于:

  • 进程同步:控制多个进程按一定顺序执行;
  • 进程通信:进程间传输信息;

为了能够达到进程同步的目的,需要让进程间进行通信,传输一些进程同步所需要的信息;

a.管道

管道是通过调用pipe函数创建的,fd[0]用于读,fd[1]用于写;

  • 只支持半双工通信(单向交替传输);
  • 只能在父子进程或者兄弟进程中使用;

b.FIFO命名管道

也被称为命名管道,去除了管道只能在父子进程中使用的限制。常用于客户进程和服务器进程之间传递数据。

c.消息队列

相比较FIFO,消息队列:

  • 可以独立于读写进程存在;
  • 避免了FIFO的同步阻塞问题;
  • 读进程可以根据消息类型有选择地接收消息,而不像FIFO那样只能默认地接收。

d.信号量

它是一个计数器,用于为多个进程提供对共享数据对象的访问;

e.共享存储

允许多个进程共享一个给定的存储区,因为数据不需要在进程之间复制,所以这是最快的一种IPC;

f.套接字

与其它通信机制不同,它可用于不同机器间的进程通信;

相关问题对比:

进程通信:管道、FIFO、消息队列、共享存储、信号量、套接字

线程通信:共享变量、阻塞唤醒、管道

转载地址:https://codingchaozhang.blog.csdn.net/article/details/115470301 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【计算机操作系统】虚拟内存是什么?分页系统地址映射?页面置换算法有哪些?分段地址映射又是什么?
下一篇:【计算机操作系统】常说的死锁是什么?死锁产生的必要条件是什么?死锁的解决策略是什么?

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年05月01日 08时35分16秒