728x90 반응형 코드31 deadlock * t1 : m1->m2, t2 : m1->m2#include using namespace std;#include #include #include #include #include #include mutex m1;mutex m2;templateclass Lock_Guard{public: Lock_Guard(T& m) : _mutex(m) { cout lockGuard1(m1); cout lockGuard2(m2); cout lockGuard1(m1); cout lockGuard2(m2); cout -> 정상 실행, 결과 : (time table) * t1 : m1->m2, t2 : m2->m1#include using na.. 2024. 11. 26. spin lock #include using namespace std;#include #include #include #include #include class Lock{public: void lock() { while (_flag) { //_flag == true일 때 아래로 못내려 감 } _flag = true;//_flag == false가 되자마자 true로 바꿔 다른 스레드가 못쓰게 함 } void unlock() { _flag = false; }private: atomic _flag = false;};Lock m;vector v;void Push(){ for (int i = 0.. 2024. 11. 19. Lock #include using namespace std;#include #include #include #include #include mutex m;vector v;void Push(){ for (int i = 0; i -> crash-> heap 영역에 동적 할당 받은 공간이 꽉 찰 경우 공간을 재할당 받아 데이터를 이동시키는 vector의 특징으로 인해t1이 v[0]의 주소를 0x0001에서 0x0009로 재할당 받아 이동해 갔는데도 불구하고 t2는 여전히 0x0001을 가리키고 있고 여기에 값을 쓰려다 crash가 발생 #include using namespace std;#include #include #include #include #include mutex m;vector v;void Push(.. 2024. 11. 12. PE File Format, notepad ① Address of Entry Point : 21860 ② Image Base : 400000③ EntryPoint : 00DE1860 ③ EntryPoint - ① Address of Entry Point = Loading Address00DE1860 - 21860 = DC0000ASLR 기능에 의해 DC0000 주소에 로딩되었다.(Loading Address + Address of Entry Point = Entry Point) ---------- https://sean.tistory.com/m/220 Address of Entry Point : 31C9 Image Base : 1000000EntryPoint : B431C9 B431C9 - 000031C9 = B40000 ASLR 기능에 의해 B.. 2024. 6. 10. 이전 1 2 3 4 ··· 8 다음 728x90 반응형