知识点总结2-操作系统


 1.死锁是什么?什么情况下产生?怎么解决?

死锁条件

1.互斥:坑(资源)只能一个人蹲

2.请求与保持:申请去隔壁蹲坑,没同意之前就先自己占着原来坑不动

3.不剥夺:我蹲着坑,锁着门,没人敢把我撵出去

4.循环等待:你等着占我的坑,我等着占别人的坑,而自己都先占着原来的坑不动

处理方法

1.预防:坡坏条件 请求保持(一次性把所有资源都申请了,要么逐步释放) 不剥夺(申请失败就释放) 循环等待(排队优先级)

2.避免:避免系统进入不安全状态(不能满足所有蹲坑者对顺利蹲坑的要求)

安全序列:是指一个进程序列{P1,…,Pn}是安全的,即对于每一个进程Pi(1≤i≤n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj (j < i )当前占有资源量之和。(我将来的需求可以满足,要么直接有要么可以抢)

安全状态:如果存在一个由系统中所有进程构成的安全序列P1,…,Pn,则系统处于安全状态。安全状态一定是没有死锁发生。

不安全状态:不存在一个安全序列。不安全状态不一定导致死锁。

银行家算法涉及的数据结构:

可用资源向量Available。Available[j]=k;有j类型妹子k个;

最大需求矩阵Max。Max[n,j]=k;小n对j类型妹子最多需要k个;

分配矩阵Allocation。Allocation[n,j]=k;小n已经泡了j类型妹子k个;

当前需求矩阵Need。Need[n,j]=k;小n还需要泡j类型妹子几个;

银行家算法的伪算法:

设request是编号为x的进程的请求向量;如果request[j]=k,表示进程x对编号为j的资源请求量为k;

1.如果request[j]<=need[x,j],转向2;否则请求出错,因为它申请的资源数量超过当前它需要的数量,认为这是一个失败的请求;

2.如果request[j]<=Available[j],转向3;否则表示系统当前没有足够的资源可以分配,x进程需要等待;

3.试着将编号为j的资源分配给进程x,更新相关数据结构:

Available[j]=Available[j]-request[j];

Allocation[x,j]=Allocation[x,j]+request[j];

Need[x,j]=Need[x,j]-request[j];

4.进入安全性检测程序(该程序试图找到一个安全序列;如果找到,说明这次分配之后系统仍然是安全的,否则这次分配无效,因为系统进入了不安全状态)


3.检测:通过资源图,了解资源的使用和请求情况

4.解除:抢占资源,或者选择代价最小的进行终止

2.线程进程区别

1.进程:就是运行着的程序,一个有独立功能的程序段,被加载进内存并准备执行就是一个进程。

2.线程:线程是进程的一个子集,执行进程的一个任务,一个进程多个线程,线程只属于一个进程。

3.进程通信方式

1. 管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。一端写一端读 只存在于内存

2. 命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信   文件系统中

3.消息队列:存放在内核中。一个消息队列由一个标识符(即队列ID)来标识  

    独立于发送与接收进程。进程终止时,消息队列及其内容并不会被删除。

    随机查询,消息不一定要以先进先出的次序读取,也可以按消息的类型读取

4.信号量(semaphore)与已经介绍过的 IPC 结构不同,它是一个计数器。信号量用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。

5.共享内存(Shared Memory),指两个或多个进程共享一个给定的存储区。

1、特点

共享内存是最快的一种 IPC,因为进程是直接对内存进行存取。

因为多个进程可以同时操作,所以需要进行同步。

信号量+共享内存通常结合在一起使用,信号量用来同步对共享内存的访问。

4.线程通信方式


1.通过线程之间共享变量的方式

这个就有必要说下 wait(),notify(),以及notifyAll() 这三个方法

这三个方法都是属于Object的方法;所以所有类都可以继承这三方法;

wait()方法使得当前线程必须要等待,等到另外一个线程调用notify()或者notifyAll()方法。

notify()方法会唤醒一个等待当前对象的锁的线程(随机)。而notifyAll()顾名思义;就是唤醒所有在等待中的方法;

wait()和notify()方法要求在调用时线程已经获得了对象的锁,因此对这两个方法的调用需要放在synchronized方法或synchronized块中。

有朋友可能会有疑问:为何这三个不是Thread类声明中的方法,而是Object类中声明的方法(当然由于Thread类继承了Object类,所以Thread也可以调用者三个方法)?其实这个问题很简单,由于每个对象都拥有monitor(即锁),所以让当前线程等待某个对象的锁,锁是对象的,只有对象能释放,当然应该通过这个对象来操作了。而不是用当前线程来操作,因为当前线程可能会等待多个线程的锁,这么多个锁,wait释放哪一个呢?如果通过线程来操作,就非常复杂了。

2.同步

3.while轮询

5.常用linux命令

6.作业调度

7.LRU算法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,216评论 11 349
  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 4,413评论 1 14
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,340评论 8 265
  • 来到简书,我想我可以看到更多文章。希望有一天可以成为一个腹有诗书气自华的人
    安暖zj阅读 154评论 0 0
  • 近年来,印度电影在中国的口碑和票房都不错,既反应了印度存在的种种问题也给观众带来了不一样的体验和感悟。 今天要说的...
    慢慢游电影阅读 948评论 3 5