欢迎光临散文网 会员登陆 & 注册

操作系统+MySQL期末笔记小整理

2023-06-23 17:10 作者:Nolca诺卡  | 我要投稿

操作系统:

存储类专题:www.cnblogs.com/nolca/p/17398949.html

零散补充:www.cnblogs.com/nolca/p/17372745.html


内存分配可按位、按字节、按字编址,比如物理地址0b0001,可代表1bit内存块,1Byte内存块,或4KB内存块

顶级理解,我就只记这个

页类似物理地址,段类似逻辑地址

分段、分页系统的区别
其实这个没用

死锁定理:

若有p个进程,都需要同一个资源n个,则当资源总数≥1+p*(n-1)不会发生死锁

解除死锁:

  • 第一步:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞(“不阻塞”即:系统有足够的空闲资源分配给它)的

  • 第二步:把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源回收回来

  • 第三步:看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点。

  • 第四步:最后,所有的资源和进程都变成孤立的点。这样的图就叫做“可完全简化”。blog.csdn.net/qq_45812180/article/details/118024236

    先分配,再额外申请,p1共需要被分配2个资源



    缺页访问2号页,进程P若要继续访问,必须往下clock置换掉60H页框

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

    2 类(A=0,M=1):表示该页最近未被访问,但已被修改,并不是很好的淘汰页。

    3 类(A=1,M=0):表示该页最近已被访问,但未被修改,该页有可能再被访问。

    4 类(A=1,M=1):表示该页最近已被访问且被修改,该页可能再被访问。

    https://zhuanlan.zhihu.com/p/533159124


    MySQL:

    各种 join: zhuanlan.zhihu.com/p/59656673

    烂尾但还行:www.cnblogs.com/nolca/p/17350659.html


    静态语句create table之类,不能使用curdate(), now(),只能用时间戳timestamp

    动态语句insert/updaste...则可以


    列改名:新建add→复制update→删除drop

    alter table 表名 change 旧列名 新列名 类型


    drop table 删表结构(主键)+数据

    delete table where... 删表数据


    建索引:查询/连接/聚集/聚簇(order/group by.../distinct) primary key


    'admin'@'%'

    'admin'@'主机名'


    仅仅提交更新部分的数据而不是全部数据违反了数据库的(原子性)规则

    若系统在运行过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以非控制方式终止,这时内存中的信息丢失,而存储在外存上数据未受影响,这种情况称为 系统故障

    TCSEC(TDI)将系统划分为 4组 7个等级


    第一范式:列不能再分

    第二范式:建立在第一范式基础上,消除部分依赖

    第三范式:建立在第二范式基础上,消除传递依赖。


    函数依赖:

    拆右消消左并左

    依赖集闭包:与函数依赖相反,所有子关 系都包含在内

    函数依赖≠分解


    最好的分解:

    无损分解:A∩B→A-B(或B-A)存在于函数依赖F中;看视频

    保持函数依赖FuncDependency:所有 函数依赖 都能够投影到 分解 上

    {A→B,B→C}投影到分解{AB,BC}√    {ABC,...}√         {AC}×


    两段封锁协议→充分条件→可串行化调度

    可能死锁

    ①二级封锁:写排他锁,读共享锁;(扩展)

    ②释放锁后(收缩,只减少锁,不再加锁)


    读写分离

    并发访问、并发查询

    lock tables account write;

    unlock tables;


    where...lock in share mode;共享锁

    where...for update; 排他锁


    select from where group by having order by asc

    on:on先过滤,执行查询生成临时表

    where:作用于表和视图

    having:作用于组,在分组和聚集之后选取分组的行,可以筛选成组后的数据

    Π()投影select *→σ()选择where/on→x乘积CROSS JOIN→∞连接(left) join/→交INTERSECT→并UNION/差EXCEPT,if null,A where not exists B, where f(A) not in f(B)

    执行效率:if null>not exists>not in

    full:  from A where not exists (B) /from A where f(仅一列) not in (select f() from B)


    select distinct

    unique主键

    更名AS,去重distinct


    关系运算

    除法:选全部课程——f,g(A) ÷g(A),g()为课程列

    关系除法A÷B——Πf(A)-Πf( Πf(A)xB-A ),原理:zhuanlan.zhihu.com/p/269104362

    实现:blog.csdn.net/weixin_42217030/article/details/83317634

    f()表一个列名

    create temporary table Tfg(A) (select distinct f(),g() from A);

    create temporary table 笛卡尔积 (select * from Tfg(A),B);

    select distinct f(),g() from 笛卡尔积 where not exists (select * from A where 笛卡尔积.f() = f() and 笛卡尔积.g()= g());

    简记:create temp T(A) (d f(A),g(A)) ,T积 (T(A),B); select distinct f(T积),g(T积) - A{ f(A)=f(T积),g(A)=g(T积) } ;


    set @local_var

    prepare tmp from @local_var

    execute tmp

    deallocate prepare tmp


    delimiter $$

    drop function if exitsts nolc_add$$

    create function nolc_add(a int, b int)

    returns int

    begin

    return a+b;

    end$$

    delimiter ;


    abc: LOOP

    ;

    if exp1 then

    iterate abc;

    else

    leave abc;

    end if;

    end LOOP;


    代码经验写法

    建议直接去博客看文字代码,这里只贴图


    操作系统+MySQL期末笔记小整理的评论 (共 条)

    分享到微博请遵守国家法律