반효경 교수님 운영체제 강의 듣고 있는데 이해가 안되는 부분이 있음.
paging system에서 page frame이 정상 참조됐을 때 os로 cpu가 넘어가지 않으니 lru나 lfu 알고리즘을 못쓴다. 그래서 clock 알고리즘을 사용한다.
근데 global / local replacement에서는 lru, lfu 알고리즘을 사용한다.
이 부분 어떻게 이해해야 함?? 후자에서는 어떻게 저 알고리즘을 쓸 수 있는거야?
반효경 교수님 운영체제 강의 듣고 있는데 이해가 안되는 부분이 있음.
paging system에서 page frame이 정상 참조됐을 때 os로 cpu가 넘어가지 않으니 lru나 lfu 알고리즘을 못쓴다. 그래서 clock 알고리즘을 사용한다.
근데 global / local replacement에서는 lru, lfu 알고리즘을 사용한다.
이 부분 어떻게 이해해야 함?? 후자에서는 어떻게 저 알고리즘을 쓸 수 있는거야?
해당 댓글은 삭제되었습니다.
page가 정상 참조되면 cpu가 os로 넘어가질 않으니 가장 최근에 참조된게 뭔지, 참조된 page의 횟수가 업데이트가 안된대. 그래서 page fault가 발생하면 어떤걸 버려야 할 지 모르니 lru나 lfu 알고리즘을 못쓴다고 하더라고. 근데 page frame allocation 설명하면서 global / local replacement할 때는 저 알고리즘을 사용을 한대. 이게 이해가 안가.
니가 교수말을 좆같이 변질해서 말했거나 내가 병신이거나 둘중하나겠네 - dc App
http://www.kocw.net/home/search/kemView.do?kemId=1046323
Virtual
Memory 2 12:50 부터 한번 봐줄 수 있음?
얘 말 듣지마라 쓰레기답변만함 ㅋ
아 저거 찾아보니 니말도 맞구나 결국 요즘은 하드웨어 지원이나 lru lfu에 추가적인 장치를 둬서 사용한다는것같네 - dc App
2014년 강의니 하드웨어 지원 이런거 없었다고 치고, 왜 global / local replacement에서는 lru lfu 알고리즘 사용할 수 있다고 하는지 궁금한데..
일단 난 오해했음 내 책에서는 근사LRU로 배우거든 그게 곧 LrU인데 왜 안되나교 뭐라길래보니 저 교수님은 근사lru를 clock으로 명칭하네 - dc App
혹시 lru lfu에서 사용가능한 시간대말씀좀 그건 정책이지 lfu lru 사용여부랑 관계없는데 - dc App
같은 영상 29:00부터page frame allocation 설명, 34:29부터 global / local replacement설명함.
일단 미안하다 내책에는 클락이라는 용어로 안적혀있고 근사LRU로 배웠음 - dc App
그래서 왜 그런거야 나 오늘 잠 못 자 - dc App
근데 나도 저 교수님 이해가 안됨 결국 로컬인지 글로벌인지는 범위기준이고, 그 기준안에서 기본lru로직으론 힘들서서 근사lru를 도입하여 어느정도 성능개선을 한거지 - dc App
페이지펄트가 일어낫다는건 결국 global하게 교체할껀지 local하게 교체할껀지 범위기준이지 둘다 다른말이 아닌데 - dc App
223.62 ㄴㄱㅁ - dc App
그런 너에게 주딱으로 가는문 열어드림
https://open.kakao.com/o/s13NHEQe
- dc App
내일 물어봐야겟다 시간이 너무 늦엇어 - dc App
암튼 답변해줘서 고마워 - dc App
밑에 내 설명틀림?? 공룡책으로 공부함
paging system에서 page frame이 정상 참조됐을 때 os로 cpu가 넘어가지 않으니 lru나 lfu 알고리즘을 못쓴다 -> 페이지 폴트가 일어나지 않았다. 인데 페이지 할당이 왜필요해 ?? Clock 알고리즘이 2차 기회 알고리즘이면 페이지 폴트 시에 0 이면 1증가하고 1이면 교체하는거 잖아. 애초에 폴트가 안났는데 교체를 왜하지
Local global은 페이지 교체시에 던체 프로세스 대상으로 할지 여부 문제였던거 같은데
하드웨어 지원 없으면 운영체제가 사용 여부 기록해야되는데 os로 cpu 제어가 넘어가지 않으면 기록을 못하니까 lru든 2차기회 알고리즘이든 못쓴다는 말같음 아님말고
페이지 폴트가 일어니지 않았을 때(정상 참조 되었을 때) 어떤 페이지가 참조되었는 지 기록할 수 없으니(cpu가 os로 넘어가지 않으니) 실제 페이지 폴트기 발생했을 때 저 알고리즘 사용하려고 할 때 어려움이 있다는 거 같음 - dc App
os에 따라 다름 page table에서 bit로 기록을 하면 되는건데 소개한 os에선 지원을 안하나보지 뭐
https://en.m.wikipedia.org/wiki/Page_replacement_algorithm
reference
bit, modified bit이 page table에 있으면 단순 clock보다 더 좋게 최적화 가능함
말한 내용은 커널모드가 아닌 유저모드에서 메모리hit의 경우 page table에 기록하는 부분이 없기 때문에 lru같은 별도의 비트 기록이 필요한 알고리즘은 못쓴다 정도인듯? 어차피 페이징에서 빡세게 할 필요가 없는게 tlb에서 최적화됨
좀더 덧붙이자면 paging system에서 프로그램 종료가 아닌 경우에 evict하는 경우는 램이 꽉찼을때인데 이 경우가 잘 없어서 최적화하는 의미가 크게 없을 것 같음 보통의 최적화는 램에 다 올려놓고 write back을 어떻게 하느냐 또는 tlb hit이 얼마나 잘되냐로 보니깐
아마 소개한 os기준으로는 page table에 저런 bit표시가 없고, evict할 page를 커널모드에서만 os 메모리에 적어둔 별도의 테이블로 관리하는 상황인가봄
보통의 최적화는 램에 다 올려놓고 write back을 어떻게 하느냐 또는 tlb hit이 얼마나 잘되냐로 보니깐 <- 이렇게 알고 넘어 가볼게 땡큐땡큐
운체공부중에 os마다 지원하고 안하고를 가정하는건 교수가 잘못가르치고 있다는건데.. 표준적으로 설명해야지 이 댓글도 가정을 전제로한 대답이기에 그냥 넘어가셈 - dc App
특정os를 가지고 설명하는건 말이 안맞고 마지막 설명 lru도 bit로 개선한 lru가맞음 교수한테 직접듣는건뿐임 여기서 백붕이의견 대충들으셈 - dc App
둘다 이론상으로는 LRU LFU를 사용할 수 있습니당 하지만 10분에서 얘기한 것 처럼 현실적으로는 사용할 수 없어요 물론 후자도 동일합니다. 이유는 아시다시피 비효율적이고, 개선된 알고리즘들이 존재하기 때문이죠. 정리하면 전자는 이전 강의에서는 아마 이론적인 내용으로 설명하셨을테니 잠깐 현실적인 이야기(클락 알고리즘을 설명하고 싶으셨던것 같습니다)
후자는 다시 이론적인 이야기로 돌아오신 것 같습니다.
이게 맞는거 같은데