• 具体过程:停止执行、状态由执行改为阻塞、将PCB插入阻塞队列
进程唤醒过程:
• 唤醒原语Wakeup()
• 具体过程:从阻塞队列中移除、状态由阻塞改为就绪、将PCB插入就绪队列
• 必须成对使用Block和Wakeup原语
进程的挂起与激活
Suspend()原语与Active()原语
2.4进程通信
概念
• 进程通信是指进程间的信息交换
低级进程通信:进程的同步与互斥
• 效率低
• 通信对用户不透明
高级进程通信
• 使用方便
• 高效地传送大量数据
共享存储器系统
• 基于共享数据结构的通信方式(效率低)
• 基于共享存储区的通信方式(高级)
管道通信
• 管道:用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件
• 管道机制的协调能力:互斥、同步、对方是否存在
消息传递系统
• 直接通信方式
• 间接通信方式(通过邮箱)
C/S模式
• 套接字(Socket)
• 远程过程调用(RPC)和远程方法调用(RMI,Java)
2.5线程的基本概念
引入进程的目的
• 使多个程序并发执行
• 提高资源利用率级系统吞吐量
进程的2个基本属性
• 进程是一个可拥有资源的独立单位
• 进程是一个可独立调度和分派的基本单位
线程是什么
在进程内部增加一类实体,满足以下特性:
• 实体之间可以并发执行
• 实体之间可以共享相同的地址空间
这种实体就是线程(Thread)
优点:
• 一个进程中可以同时存在多个线程
• 各个线程之间可以并发执行
• 各个县城直线可以共享地址空间和文件等资源
缺点:
• 一个线程崩溃,会导致其所属进程的所有线程崩溃
提出线程的目的
• 减少程序在并发执行时所付出的时空开销:创建、撤销、切换
• 使OS具有更好的并发性
• 适用于SMP结构的计算机系统
进程是拥有资源的基本单位(传统进程称为重型进程)
线程作为调度和分派的基本单位(又称为轻型进程)
线程与进程的比较
• 进程是资源分配单位,线程是CPU调度单位
• 进程拥有一个完整的资源平台,而线程只独享指令流的必要资源,如寄存器和栈
• 线程具有就绪、阻塞和运行三种基本状态和状态间的转换关系
• 线程能减少并发执行的时间和空间开销
• 创建时间短
• 终止时间短
• 切换时间短
• 同一进程个各线程间共享内存和文件资源,可不通过内核进行直接通信
线程的实现
实现方式:
• 内核支持线程KST
• 用户级线程ULT
• 组合方式
具体实现:
• 专门为分时系统设计,类似于FCFS,但增加了抢占
• 为每个进程分配不超过一个时间片的CPU。时间片用完后,该进程被抢占并插入就绪列表末尾,循环执行
• 假定就绪队列中有n个进程的【企鹅 34.76.29.1】不超过q单位的成块CPU时间,没有任何一个进程的等待时间会超过(n-1)q单位
进程唤醒过程:
• 唤醒原语Wakeup()
• 具体过程:从阻塞队列中移除、状态由阻塞改为就绪、将PCB插入就绪队列
• 必须成对使用Block和Wakeup原语
进程的挂起与激活
Suspend()原语与Active()原语
2.4进程通信
概念
• 进程通信是指进程间的信息交换
低级进程通信:进程的同步与互斥
• 效率低
• 通信对用户不透明
高级进程通信
• 使用方便
• 高效地传送大量数据
共享存储器系统
• 基于共享数据结构的通信方式(效率低)
• 基于共享存储区的通信方式(高级)
管道通信
• 管道:用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件
• 管道机制的协调能力:互斥、同步、对方是否存在
消息传递系统
• 直接通信方式
• 间接通信方式(通过邮箱)
C/S模式
• 套接字(Socket)
• 远程过程调用(RPC)和远程方法调用(RMI,Java)
2.5线程的基本概念
引入进程的目的
• 使多个程序并发执行
• 提高资源利用率级系统吞吐量
进程的2个基本属性
• 进程是一个可拥有资源的独立单位
• 进程是一个可独立调度和分派的基本单位
线程是什么
在进程内部增加一类实体,满足以下特性:
• 实体之间可以并发执行
• 实体之间可以共享相同的地址空间
这种实体就是线程(Thread)
优点:
• 一个进程中可以同时存在多个线程
• 各个线程之间可以并发执行
• 各个县城直线可以共享地址空间和文件等资源
缺点:
• 一个线程崩溃,会导致其所属进程的所有线程崩溃
提出线程的目的
• 减少程序在并发执行时所付出的时空开销:创建、撤销、切换
• 使OS具有更好的并发性
• 适用于SMP结构的计算机系统
进程是拥有资源的基本单位(传统进程称为重型进程)
线程作为调度和分派的基本单位(又称为轻型进程)
线程与进程的比较
• 进程是资源分配单位,线程是CPU调度单位
• 进程拥有一个完整的资源平台,而线程只独享指令流的必要资源,如寄存器和栈
• 线程具有就绪、阻塞和运行三种基本状态和状态间的转换关系
• 线程能减少并发执行的时间和空间开销
• 创建时间短
• 终止时间短
• 切换时间短
• 同一进程个各线程间共享内存和文件资源,可不通过内核进行直接通信
线程的实现
实现方式:
• 内核支持线程KST
• 用户级线程ULT
• 组合方式
具体实现:
• 专门为分时系统设计,类似于FCFS,但增加了抢占
• 为每个进程分配不超过一个时间片的CPU。时间片用完后,该进程被抢占并插入就绪列表末尾,循环执行
• 假定就绪队列中有n个进程的【企鹅 34.76.29.1】不超过q单位的成块CPU时间,没有任何一个进程的等待时间会超过(n-1)q单位