【操作系统 复习总结】

操作系统复习

 

1. 掌握 CPU 调度算法,熟悉操作系统概念教材 5.3 节中给出的各种调度算法,如先到先服务调度、最短作业优先调度、优先级调度、轮转法调度等,根据给定条件画出 Gantt 图,并计算周转时间和平均周转时间。

2. 掌握进程同步相关概念,并熟练使用同步原语进行编程,见操作系统概念教材第六章。

3. 掌握地址空间的概念,以及与其相关的三个特征(见课程讲义 ppt vm-1);掌握用户态堆内存的使用,并能对判断分析代码中存在的各种内存错误(见课程讲义 ppt vm-1)。

4. 掌握内存溢出(栈溢出)攻击的原理,要求能画出栈溢出攻击的示意图并解释攻击过程;掌握目前常用的三种内存溢出防御方法,包括 cananry、DEP、ASLR(见课程讲义 ppt sec-1)。

5. 掌握虚拟内存管理中的分段与分页机制,及其优缺点(见课程讲义 ppt vm-2);

6. 掌握 TLB 与多级页表(见课程讲义 ppt vm-3),重点了解多级页表相关的计算,比如根据地址位、页面大小、PTE 大小等条件,进行虚拟地址到物理地址的转换。

7. 掌握页码置换算法(见课程讲义 ppt vm-4),要求能根据给定的页面访问序列,给出特定算法的计算过程;掌握 Clock 算法(见课程讲义 ppt vm-4)。

8. 掌握各种磁盘调度算法的原理(见课程讲义 ppt disk-1)。

9. 掌握磁盘阵列 RAID-0,RAID-1,RAID-4,RAID-5 的原理,并分析各种 RAID 在容量、可靠性、吞吐量三个层面的特性(见课程讲义 ppt disk-2)。

10. 掌握文件系统元数据相关属性,要求能根据存储文件的大小来设计元数据中的相关字段(见课程讲义 ppt disk-3)。

11. 掌握文件系统接口,如 open,read,write,在实现时对元数据和文件内容的读写过程(见课程讲义 ppt disk-3)。

12. 了解课堂上讲到的跟操作系统发展史相关的重要人物,并能介绍其主要贡献。

13. 了解操作系统当前的发展现状与未来发展趋势。

 

  1. ok掌握 CPU 调度算法,熟悉操作系统概念教材 5.3 节中给出的各种调度算法,如先到先服务调度、最短作业优先调度、优先级调度、轮转法调度等,根据给定条件画出 Gantt 图,并计算周转时间和平均周转时间。

 

周转时间=实际执行结束时间-到达时间

  1. the FCFS scheduling algorithm先到先服务算法:

该算法下,按照请求时间顺序依次分配CPU:所以依次是P1、P2、P3:

P1

P2

P3

0                                      8                   12    13

P1的周转时间:8-0=8

P2的周转时间:12-0.4=11.6

P3的周转时间:13-1=12

t(平均周转时间)=(8+11.6+12)/3=10.53

  1. the SJF scheduling algorithm最短作业优先算法:

该算法按照下次CPU执行的时间长度进行调度,时间越短越优先。P1先到达以后开始执行,然后t=0.4的时候,P2到达,因为P1还得执行8-0.4=7.6,P2需要执行时间4,所以P2被调度,P3到的时候,P2还得执行3.4,P3得执行1,所以,P3被调度,然后P3执行结束后,P2还得执行3.4,P1还得执行7.6,所以P2被调度,最后P1被调度。

P1

P3

P2

0                                      8     9                  13

P1的周转时间:8-0=8

P2的周转时间:13-0.4=12.6

P3的周转时间:9-1=8

t(平均周转时间)=(8+12.6+8)/3=9.53

 

 

  1. FCFS:

P1

P2

P3

P4

P5

0

2

3                             11

          15

            20

 

SJF:

P2

P1

P4

P5

P3

0

1

3

7

12                      20

 

non-preemptive priority:

P3

P5

P1

P4

P2

0                            8

             13

    15

           19

20

 

RR (quantum = 2):

 

P1

P2

P3

P4

P5

P3

P4

P5

P3

P5

P3

0  2

3

5

7

9

11

13

15

17 18

20

 

  1. ok掌握进程同步相关概念,并熟练使用同步原语进行编程,见操作系统概念教材第六章。

 

  1. ok掌握地址空间的概念,以及与其相关的三个特征(见课程讲义 ppt vm-1);掌握用户态堆内存的使用,并能对判断分析代码中存在的各种内存错误(见课程讲义 ppt vm-1)。

操作系统是内存中的一组例程(一个库)(在本例中从物理地址0开始)

一个正在运行的程序(进程)当前位于物理内存中(在本例中从物理地址64k开始),并使用其余内存。

 

•实现时间共享的一种方法是运行一个进程一小段时间,让它完全访问所有内存,然后停止它,将其所有状态保存到磁盘(包括所有物理内存),加载其他进程的状态,运行一段时间。

•不幸的是,这种方法有一个大问题:它太慢了,尤其是随着内存的增长。但是保存和恢复寄存器级状态(如PC、通用寄存器等)相对较快。

•因此,我们宁愿在进程之间切换时将其保留在内存中,从而允许操作系统高效地实现时间共享

地址空间

•操作系统需要创建易于使用的物理内存抽象

•我们将此抽象称为地址空间,它是系统中正在运行的程序的内存视图

•理解这个内存的基本操作系统抽象是理解内存是如何虚拟化的关键。

 

目标——透明Transparency

•虚拟内存(VM)系统的一个主要目标是透明性。

•操作系统应该以运行程序不可见的方式实现虚拟内存。

•因此,程序不应该意识到内存是虚拟化的;相反,程序的行为就好像它有自己的私有物理内存。

•在后台,操作系统(和硬件)做所有的工作,在许多不同的作业之间多路复用内存,因此实现了幻觉。

目标——效率Efficiency

•操作系统应该努力使虚拟化尽可能高效。

•就时间 (即不是让程序运行得更慢)和空间(例如不需要为支持虚拟化所需的结构使用太多内存) 而言。

•在实现高效的虚拟化时,OS必须依赖硬件支持,包括TLBs等硬件特性。

目标——保护Protection

•操作系统应该确保进程之间以及操作系统本身不受进程的影响。

•当一个进程执行加载、存储或指令获取时,它不应该能够以任何方式访问或影响任何其他进程或操作系统本身(即其地址空间之外的任何内容)的内存内容。

•因此,保护使我们能够交付流程间隔离的特性。

用户态堆内存的使用,并能对判断分析代码中存在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值