title: 操作系统(三)
date: 2019-12-13 16:28:30
categories:
- 操作系统
tags:
11. 进程高级通信的主要方式
-
共享存储器系统
互相通信的进程共享某些数据结构或共享存储区,进程之间能够通过这些空间进行通信
-
管道通信系统
“管道”是用于连接一个读进程和一个写入进程以实现他们之间的通信的一个共享文件。
输入进程 ——> 数据 ——> 管道 | ——> 数据 ——> 接收进程
-
消息传递系统
以格式化的(Message)<mark>消息</mark>为单位,将通信的数据封装在消息中,并利用操作系统提供的一组通信命令,在进程间进行消息传递
-
直接通信
发送进程利用OS通过的发送命令,直接发送消息给目标进程
-
间接通信
通过某个中间实体进行消息传递。
信箱通信(数据结构)
- 信箱头 存放有关信箱的描述
- 信箱体 存放若干消息的信箱格组成,数目与大小在创建信箱时确定
-
-
客户机-服务器系统
-
套接字(Socket) 一个通信标识类型的数据结构
- 通信目的地址
- 通信使用的端口号
- 通信网络的传输层协议
- 进程所在的网络地址
- 针对客户或服务器程序提供的不同系统调用(API函数)
-
远程过程调用和远程方法调用
-
过程调用 通信协议
该协议允许一台主机系统上的进程调用另一台主机系统上的进程,而对程序员表现为常规的过程调用
-
两个进程:本地客户进程 、远程服务器进程 统称为网络守护进程
-
-
12. 线程的定义、引入线程的目的,线程与进程的比较
进程的两个基本属性
- 资源分配的单位:给每个进程分配一虚拟地址空间,保存进程映像,控制一些资源(文件,I/O设备),有状态、优先级、调度。
- 调度单位:进程是一个执行轨迹。
线程的定义
在多任务的环境中,为了减少处理机的空转时间以及处理机调度切换时的时间和空间开销,提高系统的并行能力,因此产生了更小的控制单位:线程。
引入线程的目的
-
在操作系统中,进程的引入提高了计算机资源的利用效率。但在进一步提高进程的并发性时,人们发现进程切换开销占的比重越来越大,同时进程间通信的效率也受到限制。
-
线程的引入正是为了简化进程间的通信,以小的开销来提高进程内的并发程度。
进程与线程的比较
- 调度性:线程作为调度的基本单位,同进程中线程切换不引起进程切换;不同进程的线程切换才引起进程切换
- 并发性:一个进程间的多个线程可以并发
- 拥有资源:线程仅拥有隶属进程的资源;进程是拥有资源的独立单位
- 系统开销:进程大;线程小
- 地址空间和其他资源:进程的地址空间相互独立,同一进程的多个线程共享进程资源,某进程的线程对其他进程不可见
- 通信方面:进程间通信需要进程同步和互斥手段辅助,以保证数据一致性,而线程间可以直接读/写进程数据段来进行通信
线程的特点
- 是进程的一个实体,可作为系统独立调度和分派的基本单位。
- 不拥有系统资源(只拥有从属进程的全部资源,资源是分配给进程)。
- 一个进程中的多个线程可并发执行。(进程可创建线程执行同一程序的不同部分)
- 系统开销小、切换快。(进程的多个线程都在进程的地址空间活动)
13. 处理机的调度层次及主要任务
- 高级调度(作业调度、长程调度)
- 按照一定原则选择若干个后备作业调入<mark>主存</mark>,分配资源,并建立响应的进程,投入运行。当作业执行完毕时,还负责回收资源
- <mark>作业</mark>:是用户一次请求计算机系统为它完成任务所进行的工作总和
- 脱机作业:使用作业控制语言书写一份作业说明书,规定如何控制作业的执行
- 联机作业:使用OS提供的命令语言直接提出对作业的控制要求
- 作业步:作业加工工作中的一个相对独立的步骤
- 中级调度(交换调度、中程调度、均衡调度)
- 按照给定的原则实现进程在主存和外村交换区之间的<mark>换金换出</mark>,以解决内存紧张问题,特别是具有虚拟存储器的系统中
- 低级调度(进程调度、短程调度)
- 按照某种策略从进程就绪队列中选择一个就绪进程,使其战友处理机运行
14. 处理机调度算法的目标
共同目的
- 资源利用率
- 公平性
- 平衡性
- 策略强制执行
批处理目的
-
平均周转时间短
-
系统吞吐量高
-
处理机利用率高
分时系统的目标
- 响应时间快
- 均衡性
实时系统的目标
- 截止时间的保证
- 可预测性
15. 作业调度性能的衡量
-
接纳多少个作业
每次进行作业调度时,应当从后备队列中获取多少作业调入内存,取决于多道程序度
-
接纳哪些作业
取决于作业调度算法
- 先来先服务 简单
- 短作业优先 常用
- 给予作业优先级 较常用
- 响应比高者优先 比较好
16. 常用的作业调度及进程调度算法
先来先服务调度算法(FCFS)
- 算法:先进先出,队列
- 对于作业调度:从后备作业队列中(按进入的时间顺序排队)选择队首一个或几个作业,调入内存,创建进程,放入就绪队列。
- 对于进程调度:从就绪队列中选择一个最先进入队列的进程,将CPU分配于它。
- <mark>优点</mark>: 实现简单
- <mark>缺点</mark>: 没考虑进程的优先级
短作业(进程)优先调度算法(SJ§F)
- 作业越短越优先调用
- 优点:易于实现,效率比较高,降低作业的平均等待时间。
- 缺点:
- 1、只照顾短作业而不考虑长作业的利益,长作业长时间等待而“饿死”
- 2、未考虑作业的紧迫程度
- 3、估计执行时间不足,算法无法真正实现
高优先权优先调度算法(HPF)
-
算法:总是把处理机分配给就绪队列中具有最高优先权的进程。
-
分类:
- 非抢占式优先权算法
- 抢占式优先权调度算法
-
优先权的类型
- 静态优先权 创建进程时确定
- 优点 简单
- 缺点 不够精确
- 动态优先权
- 在进程创建时创立一个优先权,但在其生命周期内优先数可以动态变化。
- 静态优先权 创建进程时确定
高响应比优先调度算法( HRP )
-
<mark>响应比</mark>是指<mark>作业的响应时间</mark>与<mark>作业估计运行时间</mark>的比值。
-
选择原则
-
优先选取**响应比值最大**的作业。即兼顾等待时间长和运行时间短的作业,它是FCFS和SJF算法的结合。
-
基于时间片的轮转调度算法(RR)
-
在分时系统中,为了满足系统对响应时间的要求,通常采用**时间片轮转调度算法。**
-
简单轮转法(固定时间片轮转法)
- 原理:系统把所有就绪进程按到达的先后顺序( FIFO )形成一个就绪队列,就绪队列中的所有进程按时间片依次轮流获得处理机。系统能在给定的时间内响应所有用户的请求。
-
时间片大小的确定
-
对系统性能有很大影响
-
可行选取
q=NT
q是时间片的大小,T是系统的响应时间,N是进入系统的进程数。
-
例:
有五个任务A, B, C, D, E,它们几乎同时先后到达,预计它们运行时间为10,6,2,4,8min,采用时间片轮转算法,令时间片为2min,计算其平均进程周转时间。(进程切换可不考虑)
解:5个任务轮流执行的情况为:
第1轮 (A, B, C, D, E)
第2轮 (A, B, D, E)
第3轮 (A, B, E)
第4轮 (A, E)
第5轮 (A)
平均周转时间 T=(30+22+6+16+28)/5=20.4min