2022-03-25

操作系统:

通信方式:

1.管道:

内核里面的一串缓存,管道传输的数据是无格式的流且大小受限;对于匿名管道其通信范围是存在父子关系的进程。因为管道没有实体,也就是没有管道文件,只能通过 fork 来复制父进程 fd 文件描述符,来达到通信的目的。对于命名管道(也被称作FIFO),它可以在不相关的进程间相互通信。(管道传输数据是单向的)

关于fork()

2.消息队列:

消息队列是保存在内核中的消息链表,发送数据时,会分成若干个独立的数据单元,且也是固定大小。如果进程从消息队列中读取了消息体,内核就会把这个消息体删除。消息队列不适合比较大数据的传输,因为在内核中每个消息体逗游戏一个最大长度的限制,同时所有队列所包含的全部消息体的总长度也有上限。消息队列通信过程中,存在用户态与内核态之间的数据拷贝开销。

3.共享内存:

拿出一块虚拟地址空间来,映射到相同的物理内存中,省去了消息队列拷贝数据的开销。

4.信号量:

共享内存的问题在于若多个进程同时修改同一个共享内存,可能会发生冲突。为了防止多进程竞争共享资源,信号量就实现了这一保护机制。信号量是一个整型计数器,主要用于实现进程间的互斥与同步,而不是用于缓存进程间的通信。

调度算法

1.FCFS(先来先服务)

对长作业有利,适用于CPU繁忙型作业,而不适用于I/O繁忙型作业;

2.SJF(最短作业优先调度)

造成饥饿现象,长作业一直无法执行

3.高响应比算法

优先权=(等待时间+要求服务时间)/要求服务时间

4.时间片轮转调度算法

如果时间片长度太短,会导致过多的进程上下文切换,降低了CPU效率;

如果设得太长又可能引起短作业进程的响应时间变长;

5.最高优先级调度算法

从就绪队列中选择最高优先级的进程进行运行。

进程的优先级可分为静态优先级或动态优先级:

静态:创建进程时就已确定,后面不会更改;

动态:根据进程动态变化调整优先级,如如果进程运行时间增加,则降低其优先级,如果进程等待时间(就绪队列的等待时间)增加,则升高其优先级,也就是随着时间的推移增加等待进程的优先级。

处理优先级高的方法,也分为非抢占式和抢占式:

非抢占式:当就绪队列中出现优先级高的进程,运行完当前进程,再选择优先级高的进程;

抢占式:当就绪队列中出出现优先级高的进程,当前进程挂起,调度优先级高的进程运行。

缺点:导致低优先级的进程永远不会运行。


多级反馈队列.jpg

多级反馈队列调度算法:

多级表示有多个队列,每个队列优先级从高到低,同时优先级越高时间片越短;

反馈表示如果有新的进程加入优先级高的队列时,立刻停止当前正在运行的进程,转而去运行优先级高的队列。

优先级越高时间片越短的原因:

如果高优先级的任务在就绪队列1无法完成,那么就会放到就绪队列2,虽然等待时间变长,但运行时间也会更长,所以该算法很好的兼顾了长短作业,同时有较好的响应时间。

内存调度算法

虚拟内存.jpg

注意:当发生缺页中断时,必然是不会发生内存越界,因为在之前就已检测过是否越界,若越界则不会访问页表。

最佳页面置换算法:

置换在未来最长时间不访问的页面

先进先出置换算法:

选择在内存驻留时间很长的页面进行置换

LRU算法,最近最久未使用

时钟置换算法

磁盘调度算法

1.先来先服务

2.最短寻道时间优先

可能产生饥饿,原因是磁头在一小块区域来回移动。

3.扫描算法(SCAN)

磁头在一个方向上移动,访问所有未完成的请求,直到磁头到达该方向上的最后的磁道,才调换方向,这就是扫描(Scan)算法。

4.C-SCAN

只有磁头朝某个特定方向移动时,才处理磁道访问请求,而返回时直接快速移动至最靠边缘的磁道,也就是复位磁头,这个过程是很快的,并且返回中途不处理任何请求,该算法的特点,就是磁道只响应一个方向上的请求。

5.LOOK与C-LOOK

磁头在移动到「最远的请求」位置,然后立即反向移动。

那针对 SCAN 算法的优化则叫 LOOK 算法,它的工作方式,磁头在每个方向上仅仅移动到最远的请求位置,然后立即反向移动,而不需要移动到磁盘的最始端或最末端,反向移动的途中会响应请求。

而针 C-SCAN 算法的优化则叫 C-LOOK,它的工作方式,磁头在每个方向上仅仅移动到最远的请求位置,然后立即反向移动,而不需要移动到磁盘的最始端或最末端,反向移动的途中不会响应请求

内存管理

Cache写命中时的处理方式:

直写法:

CPU往Cache写数据的同时也往主存中写数据,一直保存数据一致;

由于CPU往主存中写数据很慢,所以需要一个写缓冲队列。

写回法:

当CPU对Cache写命中时,只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存。减少了访存次数,但存在数据不一致的隐患。

未命中时:

写分配法:

先将数据从主存调入Cache,然后再对Cache进行写,最后用写回法将Cache中的数据写回主存。

非写分配法:

CPU直接写入主存,不与Cache交互。

参考资料:
小林coding的图解系统

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

推荐阅读更多精彩内容