• 复习笔记——操作系统


    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受RP的约束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

  • 相关阅读:
    新浪微盘又是一个给力的产品啊,
    InfoQ: 百度数据库架构演变与设计
    列式数据库——Sybase IQ
    MapR初体验 淘宝共享数据平台 tbdata.org
    IBM正式发布新一代zEnterprise大型机(组图) 大型机,IBM,BladeCenter,美国,纽约 TechWeb News
    1TB is equal to the number of how many GB? 1PB equal to is equal to the number of TB? 1EB PB? | PCfault.com
    Cassandra vs HBase | WhyNosql
    The Hadoop Community Effect
    雅虎剥离开源软件平台 Hadoop ,与风投新建 Hortonworks 公司 品味雅虎
    RowOriented Database 、ColumnOriented Database 、KeyValue Store Database 、DocumentOriented Database
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7289818.html
Copyright © 2020-2023  润新知