建议先看2 进程(上)
https://blog.csdn.net/whdehcy/article/details/136059022
-
管程机制:一个管程(monitor)定义了一种数据结构和并发进程在该数据结构上执行的一组操作,这组操作用来实现进程间的同步和改变管程中的数据。
1. 功能模块
2. 互斥得使用管程
3. 入口等待队列
4. 管程特性:
模块化、抽象数据类型、信息隐藏、使用的互斥性
5. 管程与进程的比较:
(1)管程定义的是公用数据结构,而进程定义的是私有数据结构
(2)二者都存在对各自数据结构上的操作,但进程是由顺序程序执行有关操作,而管程主要是进行同步操作和初始化操作。
(3) 设置进程的目的是在于实现系统的并发性,而管程的设置则是解决共享资源的互斥使用问题。
(4)进程通过调用管程中的过程对共享数据结构实行操作,该过程就如通常的子程序一样被调用。因而管程为被动工作方式,进程则为主动工作方式。
(5)进程之间能并发执行,而管程则不能与其调用者并发。
(6)进程具有动态性,由创建而诞生,由撤销而消亡,而管程则是操作系统中的一个资源管理模块,供进程调用。 -
经典进程的同步问题
- 利用记录型信号量/AND信号量/管程解决生产者-消费者问题
-
进程通信
-
是指进程之间的信息交换(低级进程通信(控制信息:例:信号量机制))
-
进程之间传送大量数据利用OS提供的高级通信工具(方便、通信过程对用户透明、高效)
-
进程通信的类型:
-
共享存储器系统
- 基于共享数据结构的通信方式
- 基于共享存储区的通信方式
-
管道通信系统pipe
- 互斥
- 同步
- 确定对方是否存在
-
消息传递系统
进程不必借助共享存储区域或者数据结构,以格式化的消息为单位,将通信数据封装在消息中,利用OS提供的通信命令(原语),进行进程之间的通信。
- 直接通信方式
- 间接通信方式
-
客户机-服务器系统
- 套接字(Socket)
- 远程过程(函数)调用和远程方法调用
-
-
消息传递通信的实现方式:
-
直接消息传递系统
直接通信原语:
(1)对称寻址方式(一对一)
(2)非对称寻址方式(多对一)
消息格式:
(1)定长消息格式(办公自动化xit)
(2)变长消息格式
进程的同步方式:
(1)都阻塞
(2)都不阻塞
(3)收阻发不阻
通信链路
(1)由发送进程在通信之前请求系统为之建立一条通信链路,在链路使用完后拆除链路
(2)发送进程无需明确提出建立链路的请求,只需利用系统提供的发送命令,系统会自动地为之建立一条链路
-
间接通信方式:信箱通信
信箱的结构:信箱头 + 信箱体
信箱通信原语:
1)邮箱的创建和撤销
2)消息的发送和接收
信箱的类型:
1)私用邮箱
2)公用邮箱
3)共享邮箱(1对1 1对多 多对1 多对多)
-
-
-
线程----作为调度和分派的基本单位
在操作系统中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性
-
什么是线程?
线程是现代操作系统引入的一种执行实体
线程称“轻型进程”,是进程的组成部分
进程是资源占有单位,线程只是CPU调度单位 -
一个进程运行过程中可以创建多个线程
-
线程与进程的比较:
1)调度的基本单位2)并发性3)拥有资源4)独立性5)系统开销6)支持多处理机系统
-
线程运行三个状态:
(1)执行状态
(2)就绪状态
(3)阻塞状态
-
线程控制块TCB
-
多线程OS中的进程属性
1)进程是一个可拥有资源的基本单位
2)多个线程可并发执行
3)进程已不是可执行的实体
-
多线程结构进程的优点:
1)快速线程切换
2)通信易于实现
3)减少管理开销
4)并发程度提高
-
线程的实现方式:
-
内核支持线程KST
-
用户级线程ULT(用户空间中实现的)
1)运行时系统
2)内核控制线程(轻型进程LWP)
-
组合方式
-
-