1. 가상 메모리와 물리 메모리를 사상 하는 것은?
2 가상 주소를 실제 물리 주소로 변환 하는 장치는?
3. 페이지가 메모리에 존재하는지 확인하는 비트 이름은?
4. 프로세스A 가 프로세스 B 에 존재하는 메모리 영역을 접근하면 어떤 절차를 통해 메모리 보호가 일어나는가?
4.a. 이후에 페이지 폴트 인터럽트시에도 다른 프로세스 메모리 영역에 접근 한다면?
2 가상 주소를 실제 물리 주소로 변환 하는 장치는?
3. 페이지가 메모리에 존재하는지 확인하는 비트 이름은?
4. 프로세스A 가 프로세스 B 에 존재하는 메모리 영역을 접근하면 어떤 절차를 통해 메모리 보호가 일어나는가?
4.a. 이후에 페이지 폴트 인터럽트시에도 다른 프로세스 메모리 영역에 접근 한다면?
엠엠유 - dc App
4번 문제가 틀렸는데. 가상 메모리 개념 자체가 프로세스 어드레스 스페이스 보호 하려고 나온 거고, pipe 같은 거 뚫어서 공유하는 게 아닌 이상 접근 불가능함
버추얼 매모리가 한정된 램 공간을 잘 쓰기 위해 나온 것도 맞지만, 프로세스간 독립된 어드레싱을 위한 구조적 해법 이기도 함. 추상화 레이어를 둬서 서로 간섭 못 하게 하려고. 페이지 폴트는 한 프로세스 내에서 페이징 테이블 참조시 램에 없으면 디스크 io 하는 거고. 너 뗄감한테 맞아 볼래?
Segmentation fault
segfault는 readonly data나 text섹션 수정할려고 할때 나는거 아닌가?
음.. 가상 메모리 개념 자체가 프로세스 A만을 위한 메모리 영역을 제공하는 건데, 프로세스 A에서 B에 접근 한다는 개념이 가능함? 내가 잘못 이해한 걸 수도 있어서 뮬어봄. 그걸 막으려고 MMU 같이 하드웨어 레벨에서 메모리 추상화를 한 걸텐데.
ㄴ mmu가 잡는거임 그걸
잡는 게 아니라 애초에 서로 다른 프로세스의 메모리에 접근 한다는 개념 자체가 가상화의 의도랑 반한다는 거지 ㅇㅅㅇ
버퍼 오버 플로로 공격 할수 있잖아
함 찾아 볼게. 다시 생각해보니까 정확하게 모르는 부분이 잇네.
그렇네. 내가 틀렸네. 뗄감 사죄 드립니다.
왜틀렷는데 내가 틀렷을 수도 잇음
ㄴㄴ segfault 생각해보니까 내가 틀렷음. 버퍼는 더 찾아봐야겟다
1. 페이지 테이블 2. 메모리 관리 장치(MMU) 3. 유효비트 4. 정확히 알고있는건 아니지만 예상 해보자면, MMU는 CR3 레지스터의 값으로 실행 프로세스의 페이지 테이블 시작주소로 접근하여 프로세스 A의 페이지 테이블에 접근해서 주소를 찾는데 해당되는 엔트리가 없으므로 트랩이 발생하여 잘못된 메모리 접근으로 프로세스 A를 강제 종료 4a. 이것도 마찬가지로 페이지가 실제 메모리에 올라와있지 않은 경우 엔트리의 프레임 번호 비트가 디스크의 스왑영역에 있는 페이지 위치를 기록하고 있고, 역시 프로세스 B의 메모리 영역에 대한 엔트리가 존재하지 않으므로 4와 같이 처리 할거라고 예상
ㄱㅅ
피드백을 주십시오!!!
4까지는 맞는데, 4a는 나도 모름 저렇게 될거라 예상만 하는중
걍 정처기 심화아님? 굳이 알 필요없는 내용같은데 - dc App
4,4a말곤 흠.. - dc App
4번물어보고 악의적인 공격에 일어나면 어찌되는지 예외사항을 물어보노; 프로세스 꺼지겠지 - dc App
꺼지는 과정을 물어본거잖아
ㄴ 나도 문제가 좀 아리까리 했는데, 버츄얼 메모리 시스템 설계 의도는 각 프로세스마다 보호된 어드레스 스페이스를 준다 이건데.. 다시 생각해보니까 누가 공격한다 이것도 고려 해야하는 건 맞는 것 같음.
물론 램을 공유한다는 개념도 있고.. 여튼 내가 생각하지도 못한 부분이라 좋앗음.
악의적 공격 아니더라고 soft fault나면 페이지 테이블 은 갱신 안되고 실제 메모리는 비어있거나 기대한 값이 아닐 수 있음
그냥 학부 중간고사 아님?
그냥 자기가 최근에 공부한 내용 바탕으로 질문던진듯