2.25 操作系统笔记

银行家算法:银行家算法顾名思义就是银行家(操作系统)贷款(资源),给顾客(进程) ,进程用完资源就得快速归还

银行家算法有四个数组,Max(资源的最大需要量)   need(还需要多少)    Avail(当前分配了多少)     P(还剩多少资源)   

判断安全:去找need,看是否当前资源能够满足,能够满足的话就给它,然后一次顺序找可以分配资源的进程,如果找了一圈发现当前资源不能够满足它了,那么就结束,代表当前状态处于不安全,可能发生死锁

如果所有进程能够满足完,那么代表当前是一个安全序列

进程通信: 有直接通信和间接通信两种

直接通信: 管道  共享内存

间接通信:信号  消息队列

信号:过程进程注册时候把自己有的信号函数注册在内核以便识别,然后处理器或者别的进程发送信号,这个时候从内核取出信号函数进行判断

管道:一般用于父进程建立子进程,然后父子通信,一边发,一边收,创建的时候有参数是一个两位数组,过程大概是shell建立一个管道,然后把进程放入管道发方,再把进程放到收方

消息队列:消息队列支持多个进行发送,然后发送到消息队列里面,以字节为单位,然后收方直接去消息队列中去取,消息队列是内核操作的

共享内存:如果是线程的话,那么就是天然的共享内存,进程的话有专门设置一个共享区,然后因为共享内存可能发生两个进程一起在写的情况,所以一般要搭配同步来使用

文件系统 和  IO 下次写把,挂机了

猜你喜欢

转载自www.cnblogs.com/Lis-/p/12359631.html