zoukankan      html  css  js  c++  java
  • 系统架构师-笔记

    死锁:

    如何避免死锁?

    有序资源分配法、银行家算法

    死锁预防:打破四大条件

    可能造成死锁的条件:互斥、环路等待、不剥夺、保持和等待

    银行家算法:

    是一种防止死锁的常用算法,由Dijkstra 提出的,将死锁的问题演示为一个银行家贷款的模型。一个银行家向一群客户发放信用卡,每个客户有不同的信用额度,每个客户可以

    提出额度内的任意额度请求,直到额度用完后再一次性还款。

    银行家可以挂起某个额度请求较大的客户的请求,优先满足小额度的请求,等小额度的请求还款后,再处理挂起的请求。这样资金就能够永远疏通。如果银行家的额度小于所有客户的

    限额,便会发生死锁。

    存储管理:

    页式管理:增加利用率,但增加了系统开销,可能产生抖动现象。页:页号+业内地址。页号可以通过页表查询到块号。块号+业内地址=逻辑地址

    段式存储:段号+段内地址。多道程序共享内存,各段程序互不影响,内存利用率低,通过查询段表

    段页式存储:空间浪费小,可以共享。但是增加软件的复杂度,开销。快表是一块小容量的相联存储器。

     关系数据库规范化理论:

    更新异常:只更新了局部的信息,导致数据不一致性

    插入异常:无法插入异常(无主键或主键重复)

    删除异常:删除多余的信息

    函数依赖:

    从性值上分为:完全函数依赖、部分函数依赖、传递函数依赖

    范式:

    第一范式:每个属性都是不可再分割的原子属性

    第二范式:满足第一范式,非主属性完全依赖于主键,不存在部分依赖(单属性主键,不存在部分函数依赖)

    第三范式:满足第二范式,没有非主关键字的传递依赖,消除非主关键字传递依赖

    BCNF:在第三范式的基础上,消除主属性的传递依赖

  • 相关阅读:
    shell 编写简单的整数计算器
    信号控制
    MySQL-索引及优化整理
    Java面试-Java容器有哪些
    C语言宏定义
    值类型与引用类型的区别
    C++虚函数简介
    DNS-域名解析
    扇区,簇,块区分
    Java合并两个数组为一个新数组
  • 原文地址:https://www.cnblogs.com/baizhuang/p/11101715.html
Copyright © 2011-2022 走看看