Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wushizhenking
CS-Notes
提交
92e1133d
C
CS-Notes
项目概览
wushizhenking
/
CS-Notes
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
CS-Notes
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
92e1133d
编写于
6月 14, 2018
作者:
C
CyC2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
auto commit
上级
2e2d499a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
19 addition
and
15 deletion
+19
-15
notes/计算机操作系统.md
notes/计算机操作系统.md
+19
-15
未找到文件。
notes/计算机操作系统.md
浏览文件 @
92e1133d
...
...
@@ -8,7 +8,7 @@
*
[
二、进程管理
](
#二进程管理
)
*
[
进程与线程
](
#进程与线程
)
*
[
进程状态的切换
](
#进程状态的切换
)
*
[
调度算法
](
#
调度算法
)
*
[
进程调度算法
](
#进程
调度算法
)
*
[
进程同步
](
#进程同步
)
*
[
经典同步问题
](
#经典同步问题
)
*
[
进程通信
](
#进程通信
)
...
...
@@ -122,7 +122,7 @@ Linux 的系统调用主要有以下这些:
### 1. 外中断
由 CPU 执行指令以外的事件引起,如 I/O
结束
中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。
由 CPU 执行指令以外的事件引起,如 I/O
完成
中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。
### 2. 异常
...
...
@@ -179,29 +179,33 @@ Linux 的系统调用主要有以下这些:
-
只有就绪态和运行态可以相互转换,其它的都是单向转换。就绪状态的进程通过调度算法从而获得 CPU 时间,转为运行状态;而运行状态的进程,在分配给它的 CPU 时间片用完之后就会转为就绪状态,等待下一次调度。
-
阻塞状态是缺少需要的资源从而由运行状态转换而来,但是该资源不包括 CPU 时间,缺少 CPU 时间会从运行态转换为就绪态。
## 调度算法
##
进程
调度算法
需要针对不同环境来讨论调度算法。
不同环境的调度算法目标不同,因此
需要针对不同环境来讨论调度算法。
### 1. 批处理系统
中的调度
### 1. 批处理系统
**(一)先来先服务 first-come first-serverd(FCFS)**
批处理系统没有太多的用户操作,在该系统中,调度算法目标是保证吞吐量和周转时间(从提交到终止的时间)。
调度最先进入就绪队列的作业。
**1.1 先来先服务 first-come first-serverd(FCFS)**
按照请求的顺序进行调度。
有利于长作业,但不利于短作业,因为短作业必须一直等待前面的长作业执行完毕才能执行,而长作业又需要执行很长时间,造成了短作业等待时间过长。
**
(二)
短作业优先 shortest job first(SJF)**
**
1.2
短作业优先 shortest job first(SJF)**
调度估计运行时间最短的作业
。
按估计运行时间最短的顺序进行调度
。
长作业有可能会饿死,处于一直等待短作业执行完毕的状态。因为如果一直有短作业到来,那么长作业永远得不到调度。
**(三)最短剩余时间优先 shortest remaining time next(SRTN)**
**1.3 最短剩余时间优先 shortest remaining time next(SRTN)**
按估计剩余时间最短的顺序进行调度。
### 2. 交互式系统
中的调度
### 2. 交互式系统
**
(一)
优先级调度**
**优先级调度**
除了可以手动赋予优先权之外,还可以把响应比作为优先权,这种调度方式叫做高响应比优先调度算法。
...
...
@@ -209,13 +213,13 @@ Linux 的系统调用主要有以下这些:
这种调度算法主要是为了解决短作业优先调度算法长作业可能会饿死的问题,因为随着等待时间的增长,响应比也会越来越高。
**
(二)
时间片轮转**
**时间片轮转**
将所有就绪进程按 FCFS 的原则排成一个队列,每次调度时,把 CPU 时间分配给队首进程,该进程可以执行一个时间片。当时间片用完时,由计时器发出时钟中断,调度程序便停止该进程的执行,并将它送往就绪队列的末尾,同时继续把 CPU 时间分配给队首的进程。
时间片轮转算法的效率和时间片的大小有很大关系。因为进程切换都要保存进程的信息并且载入新进程的信息,如果时间片太小,会导致进程切换得太频繁,在进程切换上就会花过多时间。
**
(三)
多级反馈队列**
**多级反馈队列**
<div
align=
"center"
>
<img
src=
"../pics//042cf928-3c8e-4815-ae9c-f2780202c68f.png"
/>
</div><br>
...
...
@@ -223,7 +227,7 @@ Linux 的系统调用主要有以下这些:
每个队列优先权也不同,最上面的优先权最高。因此只有上一个队列没有进程在排队,才能调度当前队列上的进程。
### 3. 实时系统
中的调度
### 3. 实时系统
实时系统要求一个服务请求在一个确定时间内得到响应。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录