정적분석 - 파일의 겉모습을 관찰하여 분석. - File Type, File Size, Header, API, String, 압축여부 등등의 정보를 획득한다. 동적분석 - 파일을 직접 실행시키고 그 행위를 분석. - 디버깅을 통해 코드 흐름 및 메모리 상태등을 살펴보는 방법. - 각종 이벤트 등을 적절하게 발생시켜 그에 대응하는 동작들을 확인한다. 정적분석을 통해 동적분석을 위한 아이디어를 얻을 수 있다. 지금까지 하던 '디버깅'은 리버싱 기술중 한 가지에 불과하다.
사실 별거는 아니다.. Segmentation을 먼저 진행한 후, Paging 기법을 통해 Memory를 할당한다. 일반적으로 Paging 기법을 적용했다는 것은 해당 Process를 하나의 Segment로 다루었다는 것이다. Segment Table에는 각 Segment의 Base Address대신 Page Table의 위치가 저장된다. 또한 기존의 Bound값 대신 Page의 개수를 저장한다. ( Segment Table은 MMU 내부에 해당 Table를 가리키는 Register가 존재한다. ) 기본적으로 Virtual Address가 주어지고 그에 따라 위와같은 단계를 거쳐 물리주소를 구할 수 있다. Paged Segmentation의 장/단점. - 기존의 Paging 기법만 사용했을 때보다 Pag..
Segmentation 기법. 프로그래머가 생각하는대로 메모리를 구분지어주는 메모리 관리기법이다. 사용자 관점에서 Stack, Data, Symbol Table 등과 같은 커다란 조각으로 논리주소를 분할한다. 각각 Segmentation에는 번호가 System에 의해서 매겨진다. 따라서 논리주소는 으로 구성된다. 그리고 Segmentation Table에 의해서 해당 논리주소는 물리주소로 변환된다. 결국 목적은 연속된 논리주소를 연속되지 않는 물리주소에 할당시키기 위함이다 !!! Segmentation 기법이 없다면...? - 두 User Process가 동일한 Memory 영역을 공유하기가 힘들다. - 하나의 Process에서 특정 영역에 따른 권한부여를 할 수 없다. Segmentation의 크기가 ..
프로그램을 실행시켜 Process를 만드는 과정에서 반드시 해당 Process는 Memory에 위치해야한다. 가상메모리 기법이 적용되었다면 전체가 아닐 수 있지만, 적용되지 않았다고 하면 해당 Process의 전체는 항상 Memory에 위치해야 정상적으로 Process를 진행할 수 있다. (Very Simple Version) - Memory를 모두 동일한 크기로 분할한다. - 그리고 분할된 조각당 하나의 Process를 할당한다. - 지금은 절대 사용할 수 없는 기법인듯.. ( 프로그램의 크기도 커지고... 일정하지도 않고... 단편화도 심할듯 ) (MUT - 가변분할) - OS가 Memory의 사용된 영역과 미사용된 영역을 파악하기 위한 Table을 구성한다. ( OverHead... ) - Proc..
약간의 순서가 잘못 되었지만 가상메모리에 대한 개념이 없을 때라고 가정한 내용이다. Swapping이란 ? Process를 실행중 임시로 예비저장장치인 Disk로 Swap-out 했다가 다시 Memory로 Swap-in할 수 있도록 지원하는 기술이다. 이를 통해 다중 프로그래밍의 정도를 증가시킬 수 있다. 1) 이 예비저장장치는 User Memory Image를 저장할 수 있을만큼 커야한다. 2) 시스템은 Process Ready Queue가 있어야한다. Swapping의 진행순서는 아래와 같다. CPU는 디스패처를 통해 Ready Queue에 있는 다음 Process를 메모리에 있는지 확인한다. 없으면 Disk에서 불러와야한다. 불러오려는데 메모리에 자리가 없다면 현재 메모리에 올라온 Process를 ..
페이지 교체는 Demand Paging 기법에서의 기본이다. 가상메모리 기법을 사용하면 다중 프로그래밍의 정도를 높여서 프로세스의 수를 늘릴 수 있다. But, 갑자기 프로세스들의 페이지를 모두 필요로한다면, 메모리 과할당이 발생할 수 있다. Page-Fault가 발생하고 Page를 Disk에서 Memory로 가져오기 위해서 Free Frame을 찾는데 없을경우? 1) 해당 프로세스를 강제종료한다. (사용자에게 Pageing System을 들키는 꼴이다 !!) 2) 프로세스 하나를 Swap-out해 Free Frame을 확보한다. (비효율적 ...) 3) 페이지 교체를 통해 사용중이지 않은 페이지와 교체한다. (Page Replacement) Demand Paging System에서 가장 중요한 2가지는..