作者Aa841018 (andrew)
看板Grad-ProbAsk
标题[理工] OS thrashing之定义!
时间Sat Dec 1 00:00:31 2018
关於thrashing 的流程有些不懂:
因为有个process frame不够,page fault,所以不是swap out就是swap in 都在做I/O,
因此process等待I/O完成,而被block,然後ready queue中的process一个个进入runing
,然後A抢B B抢C一个个都page fault,一个个被block.....
然後我有几个问题
1.只要遇到page fault一定要做I/O那是代表一定会被block的意思吗?
2.很怪!真的缺少frame的只有一个process,因为他去抢别人的,所以才会造成别人的pa
ge fault,但他一抢,自己不就没事了?那就算抢来抢去,真正有page fault应该也只有
一个process吧?怎麽会造成每个process都page fault?
3.为何在thrashing时引进更多process会更惨?当process都block时,没人在running,
那只要引进的process没有frame不够的问题,应该就可以正确执行吧??
抱歉问题有点多……
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 39.12.30.43
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1543593634.A.4B3.html
※ 编辑: Aa841018 (39.12.30.43), 12/01/2018 00:10:55
1F:推 decoder: 1.在swap的过程就会bolck等待资料 2.因为剩下的frame很少 12/01 00:43
2F:→ decoder: 一个缺frame的process去抢别人的 结果被抢的也不够frame 12/01 00:43
3F:→ decoder: 所以也要去抢别人的 如此恶性循环 3.已经没有多的frame了 12/01 00:43
4F:→ decoder: 又加新的process进来抢情况会更严重。 应该是这样 有错 12/01 00:43
5F:→ decoder: 请指正 12/01 00:43
6F:推 q79236: 1.是 2.因为在block状态 所以Os会判定Cpu可以做更多的工 12/01 01:14
7F:→ q79236: 作 所以引进更多的process 3.你可以再看你的叙述一次 12/01 01:14
8F:→ q79236: 里面有矛盾点 12/01 01:14
9F:推 q79236: 不是叙述有矛盾点 是叙述跟thrashing发生的条件有矛盾 12/01 01:18
10F:→ Aa841018: decoder大大,(3),可是这是假定新进的process frame 12/01 01:45
11F:→ Aa841018: 不够,会page fault的前提吧?因为如果所有process都blo 12/01 01:45
12F:→ Aa841018: ck,能被新进的process抢吗? 12/01 01:45
13F:→ Aa841018: q79236大大,抱歉我没有很懂你讲的矛盾点,可以在讲细一 12/01 01:46
14F:→ Aa841018: 点吗? 12/01 01:46
15F:→ decoder: 不是所有process被block 他们还是有在跑 是花在page faul 12/01 02:05
16F:→ decoder: t的处理时间大於正常执行时间就叫trashing 12/01 02:05
17F:→ decoder: process在不同时期所需要的足够页框数也不同 就算後来加 12/01 02:17
18F:→ decoder: 进process的frame是足够的 执行到後面也可能需求增加而再 12/01 02:17
19F:→ decoder: 去跟别人抢frame 所以trashing会加剧 刚刚翻笔记里面写的 12/01 02:17
20F:推 eggy1018: 同意楼上,补充几点,在thrashing 时程式还是可以跑的, 12/01 02:40
21F:→ eggy1018: 但就是跑的很慢,因为可以global 抢其他 process 的 fra 12/01 02:40
22F:→ eggy1018: me ,加上系统本身 frame 不够,加上互相抢夺的情况下会 12/01 02:40
23F:→ eggy1018: 花太多时间paging —>spend more time paging than exec 12/01 02:40
24F:→ eggy1018: uting,就是thrashing 的定义 12/01 02:40
25F:推 q79236: “那只要引进的process没有frame不够的问题” thrashing 12/01 09:42
26F:→ q79236: 发生的条件就是frame不足呀 12/01 09:42
27F:→ Aa841018: 哦!谢谢…有比较清楚了! 12/01 12:45
28F:→ EXPCDR: 因为IO很慢 非常慢 超级慢 12/01 17:23