操作系统(二)

2.1_6_线程的实现方式和多线程模型

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.1 处理机调度的概念及层次
文章目录
0.思维导图
1.调度的基本概念
2.调度的三个层次
(1)高级调度( 作业调度)
(2)中级调度(内存调度)
(3)进程的挂起状态与七状态模型
(4)低级调度(进程调度)
(5)三层调度的联系和对比

在这里插入图片描述

思维导图

在这里插入图片描述

1.调度的基本概念

在这里插入图片描述

2.调度的三个层次

(1)高级调度( 作业调度)

在这里插入图片描述

(2)中级调度(内存调度)

在这里插入图片描述

(3)进程的挂起状态与七状态模型

在这里插入图片描述

注意:
不能由阻塞态直接转为运行态,也不能就绪态直接转为阻塞态,因为进入阻塞态是进程主动请求的,必然需要进程在运行的时候才能发出这种请求,也就是必须在运行态才可以转为阻塞态
七种状态注意点:
1 处于就绪态的进程因为内存占用较高或者系统负载较高可能会被调到外存的就绪挂起状态,直到空间足够才会被激活回到就绪态
2阻塞挂起态当它等待的阻塞事件发生时-》就绪挂起-》就绪态
3 运行态运行结束之后可能变成就绪挂起态
4、创建态之后若内存空间不够会变成就绪挂起态

(4)低级调度(进程调度)

在这里插入图片描述

(5)三层调度的联系和对比

在这里插入图片描述

2.2.2 操作系统之进程调度的时机(主动放弃与被动放弃)、切换与过程(广义与狭义)、方式(非剥夺与剥夺)

在这里插入图片描述

1.时机

(1)什么时候进行进程调度?

在这里插入图片描述

(2)什么时候不能进行进程调度?
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.进程调度的方式
在这里插入图片描述
3.进程的切换和过程

在这里插入图片描述

2.2.3 操作系统之调度算法的评价指标(cpu利用率、系统吞吐量、周转时间、等待时间、响应时间)

在这里插入图片描述
1.CPU利用率
在这里插入图片描述
2.系统吞吐量
在这里插入图片描述
3.周转时间
在这里插入图片描述
在这里插入图片描述
4.等待时间
在这里插入图片描述
5.响应时间
在这里插入图片描述

2.2.4 操作系统之作业/进程调度算法(FCFS先来先服务、SJF短作业优先、HRRN高响应比优先)

在这里插入图片描述
1.先来先服务—FCFS
在这里插入图片描述

1、 这里面特殊说明一下,作业周转时间以及作业实际运行时间可以举个例子
排队上厕所,上厕所时间即为实际运行时间

在这里插入图片描述

2.短作业优先—SJF

  • 非抢占式的

在这里插入图片描述

这里说明一下时间如何计算的
p1先运行,然后根据短作业先运行的原则,p3就开始运行那么从开始到结束,p3在8结束,p1在7结束,然后p2在12结束,再减去到达时间,就是周转时间,周转时间包括的就是排队加实际做事的时间就是运行的时间,然后再用周转时间除以运行时间,越低越好,别问问什么你也可以反过来除,可能这样更符合常理,只不过前者越大效率越低,后者越大效率越高。

抢占式—SJF(SRTN)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.高响应比优先—HRRN
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.2.5 操作系统之调度算法(时间片轮转调度算法、优先级调度算法、多级反馈队列调度算法)
在这里插入图片描述

1.时间片轮转—RR

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
可能出现的问题,比如与FCFS对比
在这里插入图片描述
在这里插入图片描述
2.优先级调度算法
在这里插入图片描述
非抢占式例子
在这里插入图片描述

  • 抢占式例子
    在这里插入图片描述
    补充
    在这里插入图片描述
    3.多级反馈队列调度算法
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:
多级反馈队列调度算法的流程图里三个队列画了3个cpu(类似多核并行处理),对我来说感觉有点误导的倾向了,但其实并不是多核并行的情况,而是同一个cpu流转到了不同的队列去分配时间片并做相应处理工作,在这个模型里实际上任意时刻都只有一个cpu在工作,实际上还是并发

4.三种算法的对比总结
在这里插入图片描述
2.3.1 进程的同步与互斥

1.进程同步

  • 同步也称为直接制约关系。
  • 在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。为了协调进程之间的相互制约关系,如等待、传递信息等,引入了进程同步的概念。进程同步是为了解决进程的异步问题。
  • 一个简单的例子来理解这个概念。例如,让系统计算1 + 2x3,假设系统产生两个进程: 一个是加法进程,一个是乘法进程。要让计算结果是正确的,一定要让加法进程发生在乘法进程之后,但实际上操作系统具有异步性,若不加以制约,加法进程发生在乘法进程之前是绝对有可能的,因此要制定一定的机制去约束加法进程,让它在乘法进程完成之后才发生。

异步性:进程具有异步性的特征。异步性是指,各并发执行的进程以各自独立的、不可预知的速度向前推进。

2.进程互斥

  • 互斥,亦称间接制约关系。进程互斥指当一个进程访问某临界资源时,另一个想要访问该临界资源的进程必须等待。当前访问临界资源的进程访问结束,释放该资源之后,另一个进程才能去访问临界资源。
  • 在这里需复习一下临界资源的概念。我们把一个时间段内只允许一个进程使用的资源称为临界资源。许多物理设备(比如摄像头、打印机)都属于临界资源。此外还有许多变量、数据、内存缓冲区等都属于临界资源。
  • 对临界资源的访问,必须互斥地进行。
    在这里插入图片描述

为了禁止两个进程同时进入临界区,需遵循以下准则

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. 实验目的 调度的实质是操作系统按照某种预定的策略来分配资源。进程调度的目的是分配CPU资源。由于进程调度程序执行的频率很高,因此调度算法的好坏直接影响到操作系统的性能。本实验的目的是编程模拟实现几种常用的进程调度算法,通过对几组进程分别使用不同的调度算法,计算进程的平均周转时间和平均带权周转时间,比较各种算法的性能优劣。 2. 实验原理 [1]. 进程调度算法描述 进程调度算法包括先来先服务调度算法、最短作业时间优先(抢占式和非抢占式)、最高响应比调度算法4种。(每个人必须做FCFS,然后在后面的三种中任选一种,即每个人必须做2种调度算法的模拟。) [2]. 衡量算法性能的参数 计算进程的平均周转时间和平均带权周转时间。 3. 实验内容 (1)编程实现本实验的程序,要求: [1]. 建立进程的进程控制块,进程控制块至少包括: a) 进程名称; b) 进程需要执行时间; c) 进入就绪队列时间; d) 进程执行开始时间 e) 进程执行结束时间 [2]. 编程实现调度算法。 [3]. 进程及相关信息的输入。这些信息可以直接从键盘上输入,也可以从文件读取。 [4]. 时间片与时间流逝的模拟。本实验需要对算法的执行计时,程序应该提供计算时间的方法。一种最简单的方法是使用键盘,比如每敲一次空格代表一个时间片的流逝。另一种方法是使用系统时钟。 [5]. 一组进程序列执行完毕,打印出结果信息。程序需要计算出每个进程的开始执行时间、结束时间、周转时间和带权周转时间,并为整个进程序列计算平均周转时间和平均带权周转时间。程序将计算结果按一定的格式显示在计算机屏幕上或输出到文件中。打印出进程调度顺序图。 [6]. 实现数据在磁盘文件上的存取功能。 (2)对下列就绪进程序列分别使用上面的几种算法进行调度,计算每种算法下的平均周转时间和平均带权周转时间。 进程号 到达时间 要求执行时间 0 0 1 1 1 35 2 2 10 3 3 5 4 6 9 5 7 21 6 9 35 7 11 23 8 12 42 9 13 1 10 14 7 11 20 5 12 23 3 13 24 22 14 25 31
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值