进程和线程(通信方式)、调度算法(6种)

本文详细介绍了进程与线程的概念、状态转换、分类以及各自的优势。重点探讨了进程间的通信方式,如共享内存、消息队列、信号、信号量、套接字、普通和有名管道,并讨论了操作系统中的调度方法,包括先来先服务、短作业优先、优先权调度、高响应比优先、时间片轮转和多级反馈队列调度算法。同时,还简要提及了线程的通信方式,如锁机制和信号量。
摘要由CSDN通过智能技术生成

1.进程

https://www.cnblogs.com/tianlangshu/p/5224178.html

一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度运行的基本单位

1.1三种状态

  • 运行状态:获得CPU的进程处于此状态,对应的程序在CPU上运行着。
  • 阻塞状态:为了等待某个外部事件的发生(如等待I/O操作的完成,等待另一个进程发来消息),暂时无法运行。也称为等待状态。
  • 就绪状态:具备了一切运行需要的条件,由于其他进程占用CPU而暂时无法运行。

1.1.1状态之间的转换

a. 运行状态 ===> 阻塞状态:例如正在运行的进程提出I/O请求,由运行状态转化为阻塞状态

b. 阻塞状态 ===> 就绪状态:例如I/O操作完成之后,由阻塞状态转化为就绪状态

c. 就绪状态 ===> 运行状态:例如就绪状态的进程被进程调度程序选中,分配到CPU中运行,由就绪状态转化为运行状态

d. 运行状态 ===> 就绪状态:处于运行状态的进程的时间片用完,不得不让出CPU,由运行状态转化为就绪状态

1.1.2 分类

a. 系统进程:操作系统用来管理资源的进程,当系统进程处于运行态时,CPU处于管态,系统之间的关系由操作系统负责

b. 用户进程:操作系统可以独立执行的的用户程序段,当用户进程处于运行态时,CPU处于目态,用户进程之间的关系由用户负责

2.线程

进程与线程的一个简单解释(还有互斥锁、信号量的解释)

一个进程就是一段程序的执行,但是一段程序可以实现很多功能,而我们可以简单的认为,每一个功能就是一个线程,线程就是进程内执行的任务。

一个进程内部可以有很多的线程。

线程是CPU使用的基本单元,它由线程ID、程序计数器、寄存器集合和栈组成。它与属于同一进程的其他线程共享代码段、数据段和其他操作系统资源。

2.1 多线程优点

  • 响应度高:如果对一个交互程序采用多线程,即使有部分线程阻塞或执行冗长的操作,该程序也能继续执行,从而增加对用户的相应程度
  • 资源共享:多线程默认共享他们所属进程的内存和资源
  • 经济:进程创建所需要的内存和资源的分配比较昂贵,由于线程能够共享他们的进程的资源,所以创建线程比进程经济;
  • 多处理器体系结构的利用:多线程的优点是充分利用多处理器体系结构,以便每个进程能够并行运行在不同的处理器上。

3.进程的通信方式

3.1共享内存

最有用的进程间通信方式。

它使得多个进程可以访问同一块内存空间, 不同进程可以及时看到对方进程中对共享内存中数据得更新。

这种方式需要依靠某种同步操作, 如互斥锁和信号量等

3.2消息队列

“消息队列” 是在消息的传输过程中保存消息的容器

具有写权限的进程可以按照一定得规则向消息队列中添加新信息;

对消息队列有读权限的进程则可以从消息队列中读取信息。

3.3.信号

信号是一种比较复杂的通信方式, 用于通知接收进程某个事件已经发生。

3.4信号量

信号量是一个计数器, 可以用来控制多个进程对共享资源的访问。

它常作为一种锁机制, 防止某进程正在访问共享资源时, 其他进程也访问该资源。

因此, 主要作为进程间以及同一进程内不同线程之间的同步<

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值