复习笔记——操作系统

2014年12月考研前一周写的笔记。。。

放在这里,希望对其它人有帮助。

。。

===========================================================

本来想和linux源码一起參照一下,结果如今拖到这个时候,没时间了,囧

内容主要參考:

http://oa.gdut.edu.cn/os/multimedia/oscai/main.htm

http://www.educity.cn/zk/czxt/201305301133411490.htm

http://see.xidian.edu.cn/cpp/html/2628.html(这个就是和王道差点儿是同样的,不知道是谁超谁)

===========================================================

1.准备

2.进程管理

2.1.进程调度

2.1.1调度的层次

高级、中级和低级调度作业从提交開始直到完毕,往往要经历下述三级调度:

高级调度:(High-Level Scheduling)又称为作业调度,它决定把后备作业调入内存执行;

低级调度:(Low-Level Scheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU;

中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。

2.1.2剥夺非剥夺

(1)非剥夺方式

分派程序一旦把处理机分配给某进程后便让它一直执行下去,直到进程完毕或发生进程调度

某事件而堵塞时,才把处理机分配给还有一个进程。

(2)剥夺方式

当一个进程正在执行时,系统能够基于某种原则,剥夺已分配给它的处理机。将之分配给其他进程。剥夺原则有:优先权原则、短进程优先原则、时间片原则。

比如。有三个进程P1、P2、P3先后到达,它们分别须要20、4和2个单位时间执行完成。

假如它们就按P1、P2、P3的顺序运行,且不可剥夺,则三进程各自的周转时间分别为20、24、

26个单位时间,平均周转时间是23.33个时间单位。

假如用时间片原则的剥夺调度方式。可得到:

可见:P1、P2、P3的周转时间分别为26、10、6个单位时间(如果时间片为2个单位时间)。平均周转时间为14个单位时间。

衡量进程调度性能的指标有:周转时间、响应时间、CPU-I/O运行期。

2.2.进程同步

2.3.死锁

3.内存管理

3.1.内存分配

3.2.虚拟内存

4.文件管理

4.1.文件系统

4.2.磁盘

5.IO管理

5.1

附:

1.进程同步。PV操作样例

设某台机挂有两个I/0通道:分别挂一台输入机和一台打印机。

卡片机上有一叠数据卡片。如今要把这些数据逐一输入到缓冲区B1,然后再拷贝到缓冲区B2,并在打印机上打印出来。

问:系统可设哪些进程来完毕这个任务?

由上图可见,系统可设3个进程:输入进程复制进程打印进程;分别用进程R进程C进程P来表示。

问:这些进程之间有什么相互制约关系?R受C的约束;C受R、P的约束。P受C的约束。问:用P-V原语写这些进程的同步算法。设4个信号量:S1=1,S2=0,S3=1,S4=0

也能够把S1设成0,把R进程P(S1)调到V(S2)后面

问:用Send和Rece原语写这些进程的同步算法。用RECEIVE代替P操作;用SEND代替V操作。

即:用RECEIVE(C)代替P(S1)和P(S4),用SEND(C)代替V(S2)和V(S3)

RECEIVE(R)代替P(S2),用SEND(R)代替V(S1)

RECEIVE(P)代替P(S3)。用SEND(P)代替V(S4)

问:画出各进程的状态转换图。

2.死锁,样例

首先,介绍一个因为共享资源而产生死锁的样例:设系统有一台打印机(R1),一台读卡机(R2),两进程共享这两台设备。用信号量S1表示R1是否可用,初值为1。用信号量S2表示R2是否可用,初值为1;

3.段页

4.Clock置换算法

  4.1. 简单的Clock置换算法

  4.2. 改进型Clock置换算法

  由訪问位A和改动位M能够组合成以下四种类型的页面:

  1类(A=0, M=0): 表示该页近期既未被訪问。又未被改动。是最佳淘汰页。

  2类(A=0, M=1):表示该页近期未被訪问。但已被改动,并非非常好的淘汰页。

  3类(A=1, M=0):近期已被訪问。但未被改动,该页有可能再被訪问。

  4类(A=1, M=1): 近期已被訪问且被改动,该页可能再被訪问。其运行过程可分成下面三步:

  (1) 从指针所指示的当前位置開始,扫描循环队列。寻找A=0且M=0的第一类页面, 将所遇到的第一个页面作为所选中的淘汰页。

在第一次扫描期间不改变訪问位A。

  (2) 假设第一步失败,即查找一周后未遇到第一类页面,则開始第二轮扫描。寻找A=0且M=1的第二类页面,将所遇到的第一个这类页面作为淘汰页。在第二轮扫描期间,将全部扫描过的页面的訪问位都置0。

  (3) 假设第二步也失败,亦即未找到第二类页面,则将指针返回到開始的位置,并将全部的訪问位复0。

然后反复第一步,假设仍失败。必要时再反复第二步,此时就一定能找到被淘汰的页。

5.磁盘分配的成组链接法【1】

题目如图片:

问题是:

(1)该磁盘中眼下还有多少个空暇盘块?【答】:我知道是2+100+100+99=301个吧

(2)在给文件F分配三个盘块后,试给出分配后的盘块链接情况【答】是先299号 再300号 再301号吧?

(3)接着,系统要删除还有一个文件,并回收它所占的5个盘块。它们的盘块号依次为700,711,703,788,701。试给出回收后的盘块链接情况

【就第三个不太理解。是先底部700,然后往上1 0处711 703吗?还是怎么分,求解释?】

第一组中的块都分配完后,把下一组中的块都放到超级块中,这样就少了一个组,然后再进行分配。

回收是先把块放到第一组中,假设满了就把这个组变为第二组。

s.free 4

711

703

788

701 。

700

每组就相当于个堆栈。

參考资料:

【1】http://zhidao.baidu.com/link?url=cbFVuBEaHbL7NtGAiXqEMwx6LiCq-SpaClCoTt3_H68OwwFpcThFS8bL6SHQE7F5ALVEfFQsILwjXzwc-8aBanD6FyHpV-KyERCloGXEvLa

时间: 2024-10-05 08:52:46

复习笔记——操作系统的相关文章

[Java基础] Java线程复习笔记

先说说线程和进程,现代操作系统几乎无一例外地采用进程的概念,进程之间基本上可以认为是相互独立的,共享的资源非常少.线程可以认为是轻量级的进 程,充分地利用线程可以使得同一个进程中执行多种任务.Java是第一个在语言层面就支持线程操作的主流编程语言.和进程类似,线程也是各自独立的,有自 己的栈,自己的局部变量,自己的程序执行并行路径,但线程的独立性又没有进程那么强,它们共享内存,文件资源,以及其他进程层面的状态等.同一个进程内的 多个线程共享同样的内存空间,这也就意味着这些线程可以访问同样的变量和

Windows 程序设计 复习笔记(共 77 问)

Windows 程序设计 复习笔记(共 77 问) (个人整理,仅做复习用 :D,转载注明出处:http://blog.csdn.net/hcbbt/article/details/42706501) 知识点 双字节字符集和Unicode字符集有何区别?采用双字节字符集有何问题 双字节字符集(DBCS)编码是0-255,DBCS含有1字节代码与2字节代码,而Unicode是统一的16位系统,这样就允许表示 65536个字符.Unicode中的每个字符都是16位宽而不是8位宽.在Unicode中,

安卓开发复习笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)

记得之前写过2篇关于底部菜单的实现,由于使用的是过时的TabHost类,虽然一样可以实现我们想要的效果,但作为学习,还是需要来了解下这个新引入类FragmentTabHost 之前2篇文章的链接: 安卓开发复习笔记——TabHost组件(一)(实现底部菜单导航) 安卓开发复习笔记——TabHost组件(二)(实现底部菜单导航) 关于Fragment类在之前的安卓开发复习笔记——Fragment+ViewPager组件(高仿微信界面)也介绍过,这里就不再重复阐述了. 国际惯例,先来张效果图: 下面

计算机图形学 复习笔记

计算机图形学 复习笔记 (个人整理,仅做复习用 :D,转载注明出处:http://blog.csdn.net/hcbbt/article/details/42779341) 第一章 计算机图形学综述 研究内容 图形的概念:计算机图形学的研究对象 能在人的视觉系统中产生视觉印象的客观对象 包括自然景物.拍摄到的图片.用数学方法描述的图形等等 图形的要素 几何要素:刻画对象的轮廓.形状等 非几何要素:刻画对象的颜色.材质等 图形表示法 点阵表示 枚举出图形中所有的点,简称为图像. 参数表示 由图形的

安卓开发复习笔记——Fragment+ViewPager组件(高仿微信界面)

什么是ViewPager? 关于ViewPager的介绍和使用,在之前我写过一篇相关的文章<安卓开发复习笔记——ViewPager组件(仿微信引导界面)>,不清楚的朋友可以看看,这里就不再重复. 什么是Fragment? Fragment是Android3.0后新增的概念,Fragment名为碎片,不过却和Activity十分相似,具有自己的生命周期,它是用来描述一些行为或一部分用户界面在一个Activity中,我们可以合并多个Fragment在一个单独的activity中建立多个UI面板,或

安卓开发复习笔记——WebView组件

我们专业方向本是JAVA Web,这学期突然来了个手机App开发的课设,对于安卓这块,之前自学过一段时间,有些东西太久没用已经淡忘了 准备随笔记录些复习笔记,也当做温故知新吧~ 1.什么是WebView? WebView(网络视图)能加载显示网页,可以将其视为一个浏览器,它使用了WebKit渲染引擎加载显示网页. 废话不多说,直接上代码 1.需要在xml布局文件中声明WebView组件 1 <WebView 2 android:id="@+id/webview" 3 androi

oracle从入门到精通复习笔记续集之PL/SQL(轻量版)

复习内容: PL/SQL的基本语法.记录类型.流程控制.游标的使用. 异常处理机制.存储函数/存储过程.触发器. 为方便大家跟着我的笔记练习,为此提供数据库表文件给大家下载:点我下载 为了要有输出的结果,在写PL/SQL程序前都在先运行这一句:set serveroutput on结构:declare--声明变量.类型.游标begin--程序的执行部分(类似于java里的main()方法)exception--针对begin块中出现的异常,提供处理的机制--when...then...--whe

IOS开发复习笔记(3)-ARC

1.ARC 当你自己调用了release或retain语句的时候,ARC有效时编译文件会遇到错误,你可以通过-fno-objc-arc和-fobjc-arc两个编译器标志在混搭中支持ARC和非ARC的代码 如下面编译支持ARC,而文件代码不支持ARC # if !__has_feature(objc_arc) //this code do not support to ARC -(void) release{ //release your var } #endif 在ARC工程中集成非ARC的第

数据库系统概论 复习笔记。

大学课本复习笔记,知识点总结. 2012-08-15 数据模型中的 型,Type, 学号,姓名.... 值,Value, 0001, Ender..... 数据库系统的三级模式,两级映射, 外模式,External Schema/Sub Schema, 是用户能看得到的直接使用的.一个数据库有多个外模式,应用于用户的不同需求.但每个应用程序只能使用一个外模式.保证安全.每个用户只能访问对应的外模式. 模式,Schema, 是数据库中全体数据的逻辑结构和特征的描述,只涉及 型Type的描述.模式的