没有合适的资源?快使用搜索试试~ 我知道了~
操作系统复习总结(补充版)1
资源推荐
资源详情
资源评论
一.Overview and History
1. What are the Operating System Driven Factors?
大部分操作系统的历史都是由硬件和人的相对成本要素驱动和影响的。起初,硬件的开
销要比人大的多,但从那时到现在,相对成本已经降低了。相对成本产生操作系统的目
标。
起初:硬件昂贵,人力廉价→最大化利用硬件。
现在:硬件便宜,人力昂贵→让人使用电脑变得简单。
2. 在电脑很昂贵的时候出现的问题:
a) 当程序员完成设置后,计算机是空闲的,高投资的利用率(utilization)却很低。
b) 在任意给定的时间内,计算机的工作是由 CPU 与 I/O 设备其中一个来完成的,这
样就导致剩下的部分的闲置
c) 没有任何一项工作能使 CPU 和 I/O 设备都充分的工作,CPU 和 I/O 设备的利用率
都不高
3. 当电脑变得较便宜,新的问题:
a) 让电脑更容易使用并提高人们的生产效率变得很重要。但是输入输出与电脑的不可
交互性导致你必须等待电脑输出完才能继续工作。所以交互性变得十分重要!
i. 解决:交互式的处理
b) 以前的计算机调度者们致力于让一项任务尽可能的在 CPU 空闲状态下一样工作。
不过现在,人们需要一个合理的计算机响应时间
i. 解决:抢占式调度
c) 人们在使用计算机的时候需要将数据和程序保留下来
i. 解决:加入文件系统使得能够快速的使用数据。
d) 当巨大的程序需要 CPU 运行时会得到一个非常糟糕的响应时间,因为机器会处于
超负荷状态
i. 解决:优先处理巨大的程序,大的程序获得更多的资源比那些小程序
4. 当电脑变得更便宜
a) 人手一台电脑
5. What does a Modern Operating System do?
Provides Abstractions 提供抽象方法
Provides Standard Interface 提供标准接口
Mediates Resource Usage 调节资源使用
Consumes Resources 消耗资源
Provides Abstractions:
硬件的底层物理资源具有复杂而特殊的接口,操作系统提供抽象方法来描述这些接口
目标:使计算机的使用变得简单
示例:进程,无界内存文件,同步和通信机制
Provides Standard Interface:
目标:可移植。
Mediates Resource Usage:
目标:允许多个用户公平的、高效的、安全的共享资源
Consumes Resources:
操作系统消耗资源以提供上述功能。
6. What are the OS like?
操作系统是复杂的软件
① 并发和异步使操作系统成为非常复杂的软件
② 从根本上讲,操作系统具有不确定性,是事件驱动的
③ 操作系统很难构建,不可能完全的被调试
④ 操作系统很大,没有人能够完全理解整个系统,他比任何一个系统建造者存在的时
间都长。
二.Processes and Threads
1. 什么是进程
进程是一个在特定进程状态下的执行流
① 执行流是一系列的指令
② 进程状态决定了指令的作用
③ 进程是独立的:没有一个进程可以直接影响另一个进程的状态
2. 进程状态通常包含(并不仅限于)下列内容:
① 进程状态的组成
1) Register 寄存器
2) Stack 栈
3) Memory 内存
4) Open file tables 打开文件表
5) Signal management information 信号管理消息
② 进程运行时的状态
1) New 新建
2) Running 运行
3) Waiting 等待:进程等待某个事件的发生(I/O 完成收到信号)
4) Ready 就绪:进程等待分配处理器
5) Terminated 终止:进程完成执行
3. 单进程系统
a) 一个时间段内只有一个进程。如 DOS。
b) 问题:用户通常希望同一时间可以进行多个活动,但是单进程系统无法做到
c) 单进程系统把东西放入诸如内存常住程序,以异步方式调用,但是始终有分离问题
d) DOS 系统的一个关键问题是没有内存保护机制——一个程序有可能向其他程序所
使用的内存块中写入数据,导致预计的 BUG
4. 多进程系统
a) 同一时间可以有多个进程存在,允许系统清晰的区分不同活动区
5. 多进程系统和资源共享
a) 让那个进程去使用机器物理资源?尤其是一个重要的资源:CPU
b) 标准的解决方法是通过抢占式多任务处理方式——OS 运行一个进程一段时间,然
后 CPU 挂起进程,运行另一个进程
1) 必须保存并且恢复进程状态
2) 关键问题:公平。必须保证每个进程对于 CPU 资源的获取和使用都是平等的
6. 进程抽象化的实现
a) 操作系统是如何实现进程抽象化:
i. 使用上下文切换从一个进程切换到另一个进程
7. 如何实现上下文切换(就是某些书本中的进程切换)
a) 问题:计算机如何实现上下文切换
i. 一个处理器只有有限的物理资源。比如,他只有一个寄存器组(Register
set)。但计算机中的每个进程都有自己的寄存器组
b) 解决:在上下文切换时保存并恢复硬件状态。把状态保存在进程控制块(PCB)中
8. 基于硬件的进程控制器都存储什么
a) 寄存器状态信息(Registers)——几乎所有的计算机都把它存在 PCB 中
b) 进程状态标识符(Processor Status Word)
c) 至于内存:
1) 大多数计算机允许多个进程共存在机器的物理内存中
2) 一些计算机需要通过内存管理单元(Memory Management Unit,MMU)
的变动来实现上下文切换
3) 不过一些早期的个人电脑直接在磁盘上(disk)切换所有进程的内存。
9. 操作系统是事件驱动的
操作系统从本质上是事件驱动的——他们等待一个事件的发生,作出适当的响应,然
后继续等待下一个事件的发生
① 用户敲击一个按键。那个按键就会被重复在屏幕上
② 一个用户程序发出一个系统调用去读取一个文件。操作系统会计算出哪些磁盘
块会被引进,然后发送一个请求给磁盘控制器读取磁盘块到内存中
③ 磁盘控制器完成从磁盘块的读操作,然后产生中断。操作系统将读取的数据移
动到用户程序并且重新启动用户程序
10. 事件驱动和线程
当构建一个具有不同序列活动的操作系统时,线程是一个重要机制。
11. 线程概念
一个线程是一个线程状态下的一个执行流
线程和进程的区别:
多线程可以共享他们的部分状态信息。并允许多个线程读写同一块内存(但是进程
不可以直接访问其他进程的内存空间)。但是每个线程仍有它自己的寄存器和自己
的栈;其他线程可以读写栈内内存。
每个用户的进程背后都有一个核心线程。
12. 线程控制块
a) 每一个线程都有一个线程控制块(Thread control block,TCB)
b) 线程控制块中都有什么?
只有寄存器。当线程切换的时候不需要向内存管理单元(MMU)做任何事情,因
为所有线程都可以访问同一个内存。
13. 每一个用户进程都是由一个核心线程支持的
a) 一个操作系统的每一个独立的活动区都会有一个单独的线程。操作系统会将独立的
线程分给他的每一个进程,并且线程会代表进程来执行操作系统的活动。在这个场
景下,我们说每个用户进程都是由核心线程来提供支持的
b) 核心线程支持进程的例子:
i. 当进程发出一个系统调用去读一个文件,进程的线程会接收到调用并计算出那
些磁盘发生了访问,并且在需要的时候发出一个低等级的指令来转让磁盘空间。
这个线程会等到磁盘完成读取文件信息之后挂起。
ii. 当进程开始一个远程 TCO 通信时,它的线程控制着发送网络包的低级细节。
14. 每一个活动区都有一个独立的线程的优点
a) 每一个活动区都有一个线程允许程序员设计和那个活动相关的动作,而动作仅作为
单个连续的动作和事件流
b) 程序员不需要必须处理相同的线程之中的错综复杂的多个活动。
15. 为什么允许多个线程访问同一片内存
a) 因为在操作系统内部,线程必须非常紧密的协调它们的活动
i. 假如两个进程发出读取文件的系统调用在几乎相同的时间,必须确保操作系统
适宜的连续处理磁盘请求
ii. 当一个进程分配一个内存,它的线程必须找到一些空闲的内存并且把它们发送
给进程。必须保证多线程分配不相交的内存碎片
b) 让多个线程共享相同的地址空间会使得更容易的去协调它们的活动——可以建立
共同的数据结构来表述系统状态并且让那些线程利用(读或者写)那些数据结构来
计算出当他们处理一个请求时应该做什么。
16. 线程处理异步
a) 一个棘手的事情是线程必须处理异步事件。线程正在执行时异步事件任意的发生,
有可能干扰到线程的活动,除非程序员做一些限制异步事件的工作、
b) 例如:
i. 一个中断发生,从一个线程传输控制信号给一个中断处理器
ii. 一个事件切片开关发生,从一个线程传输控制信号给另一个线程
iii. 两个在不同的进程上运行的线程操作同一片内存时
剩余39页未读,继续阅读
资源评论
查理捡钢镚
- 粉丝: 17
- 资源: 317
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功