[理工] OS thrashing之定义!

楼主: Aa841018 (andrew)   2018-12-01 00:00:31
关于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不够的问题,应该就可以正确执行吧??
抱歉问题有点多……
作者: decoder (解码器)   2018-12-01 00:43:00
1.在swap的过程就会bolck等待资料 2.因为剩下的frame很少一个缺frame的process去抢别人的 结果被抢的也不够frame所以也要去抢别人的 如此恶性循环 3.已经没有多的frame了又加新的process进来抢情况会更严重。 应该是这样 有错请指正
作者: q79236 (昕翔)   2018-12-01 01:14:00
1.是 2.因为在block状态 所以Os会判定Cpu可以做更多的工作 所以引进更多的process 3.你可以再看你的叙述一次里面有矛盾点不是叙述有矛盾点 是叙述跟thrashing发生的条件有矛盾
楼主: Aa841018 (andrew)   2018-12-01 01:45:00
decoder大大,(3),可是这是假定新进的process frame不够,会page fault的前提吧?因为如果所有process都block,能被新进的process抢吗?q79236大大,抱歉我没有很懂你讲的矛盾点,可以在讲细一点吗?
作者: decoder (解码器)   2018-12-01 02:05:00
不是所有process被block 他们还是有在跑 是花在page fault的处理时间大于正常执行时间就叫trashingprocess在不同时期所需要的足够页框数也不同 就算后来加进process的frame是足够的 执行到后面也可能需求增加而再去跟别人抢frame 所以trashing会加剧 刚刚翻笔记里面写的
作者: eggy1018 (羅密歐與豬過夜)   2018-12-01 02:40:00
同意楼上,补充几点,在thrashing 时程式还是可以跑的,但就是跑的很慢,因为可以global 抢其他 process 的 frame ,加上系统本身 frame 不够,加上互相抢夺的情况下会花太多时间paging —>spend more time paging than executing,就是thrashing 的定义
作者: q79236 (昕翔)   2018-12-01 09:42:00
“那只要引进的process没有frame不够的问题” thrashing发生的条件就是frame不足呀
楼主: Aa841018 (andrew)   2018-12-01 12:45:00
哦!谢谢…有比较清楚了!
作者: EXPCDR (EXPCDR)   2018-12-01 17:23:00
因为IO很慢 非常慢 超级慢

Links booklink

Contact Us: admin [ a t ] ucptt.com