zoukankan      html  css  js  c++  java
  • 《系统架构师》——操作系统和硬件基础

    考点一般分布在以下几个部分,考分在3~5分左右。

     

     

     

     

     

     

     

     

     

     

    产生死锁的原因主要是:
    (1) 因为系统资源不足。
    (2) 进程运行推进的顺序不合适。
    (3) 资源分配不当等。

    产生死锁的四个必要条件:
    (1) 互斥条件:一个资源每次只能被一个进程使用。
    (2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
    (3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
    (4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
    这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之
    一不满足,就不会发生死锁。

    有序资源分配法和银行家算法都是可以避免死锁的算法。

    有序资源分配法:

      将资源按某种规则系统中的所有资源统一编号(例如打印机为1、磁带机为2、磁盘为3、等等),申请时必须以上升的次序。

    系统要求申请进程:  

      1、对它所必须使用的而且属于同一类的所有资源,必须一次申请完;  

      2、在申请不同类资源时,必须按各类设备的编号依次申请。

    例如:进程PA,使用资源的顺序是R1,R2;进程PB,使用资源的顺序是R2,R1;若采用动态分配有可能形成环路条件,造成死锁。  

    采用有序资源分配法:R1的编号为1,R2的编号为2;  

    PA:申请次序应是:R1,R2  

    PB:申请次序应是:R1,R2  

    这样就破坏了环路条件,避免了死锁的发生。

    银行家算法:

      以银行借贷系统的分配策略为基础,判断并保证系统的安全运行,只分配给能够立即执行完并返还资源的进程。

      如下,分配资源给那些能够完成任务的进程,当任务完成后立即回收其所有资源(包括之前已分配的资源)

     

    页式存储,是离散存储方式的一种,每页的大小是相同的。逻辑地址由页号+页内地址组成,物理地址由块号&块内地址组成。页的大小和块的大小是相同的,所谓的页内地址和块内地址其实就是相对本页或本块的偏移地址,与逻辑地址对应的物理地址,其偏移量也必须相同。

    给出一个逻辑地址、页大小和页表,就可以计算出相对应的物理地址:根据页大小将逻辑地址分成页号和页内地址两部分(页大小其实就是页内地址的大小),然后查页表,根据页号查到对应的物理块号,再将物理块号&页内地址(等同于块内地址)即是对应的物理地址。

     

     

    段式存储与页式存储的区别是,段式存储的段长是不固定的,它是按程序的结构来分段的。段内地址表示相对基址的偏移地址。

    逻辑地址由段号&段内地址组成,物理地址由基址+段内地址组成。给出一个逻辑地址、段大小和段表,就可以计算出相对应的物理地址,计算过程与页式基本相同,但需要注意的是,通过段号找到基址后,基址本身是一个完整的地址,是直接加上段内地址得出物理地址,而不同于页式的拼接。

     

    段页式存储,会增加一个快表,一般将其存储在调整存储器中,是按内容进行存取的。

    逻辑地址分为三部分:段号、段内页号、页内地址,物理地址由块号&页内地址组成,先根据段号和段内页号找到对应的块号,再由块号&页内地址即是物理地址。

     

    一般是13个索引结点,从0开始

     

     

     

     

     

    注意图中,越下面的方式,效率越高。程序控制方式又叫程序查询方式,就是轮询方式;程序中断方式,当传输完毕后会主动发送一个中断通知;DMA方式有一个DMA控制器。

    Spooling技术:开辟一个缓冲区进行排队 

     

     微内核是把用户态的部分从内核中剥离,只保留最为核心的部分作为微内核,这样用户态的部分出现问题不影响内核的稳定,可用于分布式系统。

     

    嵌入式操作系统:

    Flynn分类法: 注意MISD是不实际的。

     

    先出现的是复杂指令集,那时候计算机都是定制的;精简指令集是发展通用CPU使用的。现在的x86体系使用cisc是历史遗留问题,表面上接受 cisc 指令,然后通过译码器转化成 risc,底层运行的都是 risc 指令。

     

  • 相关阅读:
    「题解」洛谷 P3487 [POI2009]ARC-Architects
    「题解」洛谷 P3512 [POI2010]PIL-Pilots
    CentOS中安装的Gitlab忘记管理员密码怎样重置密码
    Jenkins中安装Credentials Binding插件时提示:Failed to load: SSH Credentials Plugin (1.18.2),Jenkins(2.282)or higher required
    Jenkins中安装Role-based Authorization Strategy插件来实现用户角色权限管理
    信息系统项目管理师-项目范围管理考点笔记
    Jenkins修改插件下载地址为国内下载地址与安装中文插件
    CentOS中Jenkins的下载、安装、配置与启动(图文教程)
    Jenkins启动时提示:Starting Jenkins Jenkins requires Java8 or later, but you are running 1.7.0
    Gitlab怎样添加组、创建用户、创建项目与推送代码
  • 原文地址:https://www.cnblogs.com/tianyajuanke/p/7647520.html
Copyright © 2011-2022 走看看