일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 버전관리
- 소프트웨어공학
- I'm Sorry
- 사이버보안
- 프로그래밍
- 인공지능
- 웹개발
- 알고리즘
- 자바스크립트
- Yes
- 파이썬
- 코딩
- 데이터과학
- 2
- 자료구조
- 네트워크
- 머신러닝
- 네트워크보안
- 컴퓨터공학
- 클라우드컴퓨팅
- 데이터분석
- 프로그래밍언어
- 보안
- 컴퓨터과학
- 소프트웨어
- 빅데이터
- 데이터구조
- 컴퓨터비전
- 딥러닝
- 데이터베이스
- Today
- Total
목록컴퓨터구조 (2)
스택큐힙리스트
인텔의 메뉴얼에서 제시된 대로, 메모리에 명령을 작성할 수 있는 것으로 알고 있는데, 명령 미리 읽기 큐는 이미 오래된 명령을 미리 가져와서 해당 이전 명령을 실행하게 될 것입니다. 그러나 나는 이러한 동작을 관찰하는 데 실패했습니다. 나의 방법론은 다음과 같습니다. 인텔 소프트웨어 개발 매뉴얼 11.6 절에 따르면, 현재 프로세서에서 캐시된 코드 세그먼트에 대한 메모리 위치 쓰기는 연관된 캐시 라인(또는 라인들)을 무효화시킵니다. 이 체크는 명령어의 물리적 주소를 기반으로 합니다. 더불어 P6 패밀리와 펜티엄 프로세서는 코드 세그먼트에 대한 쓰기가 실행을 위해 미리 가져온 명령어를 수정할 수 있는지 여부도 체크합니다. 쓰기가 미리 가져온 명령어에 영향을 미치면 프리페치 큐가 무효화됩니다. 이후의 체크는..
저는 예시를 좋아해서 C 언어로 자기 수정 코드를 조금 작성해보았습니다... #@!'#include #include // linuxint main(void) { unsigned char *c = mmap(NULL, 7, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE| MAP_ANONYMOUS, -1, 0); // get executable memory c[0] = 0b11000111; // mov (x86_64), immediate mode, full-sized (32 bits) c[1] = 0b11000000; // to register rax (000) which holds the return value // according to linux x86_64 calling..