위의 정보는 출처 http://ssup2.tistory.com/entry/Threadsafe-%ED%95%A8%EC%88%98-Reentrant-%ED%95%A8%EC%88%98 여기부터는 내가 정리 Thread-safe함수는 함수 내부에서 전역변수를 사용하기 때문에 뮤텍스 락의 보호에 의해서 쓰레드들간 race condition을 방지해야 하는 함수이다. 쉽게 말해서, 그냥 호출해도 문제가 없고 다수의 쓰레드에 의해서 동시에 호출되어도 문제가 발생하지 않는 함수이다. 진짜 쉽게 생각하면 함수 내부에서 전역변수를 사용하는 함수이다. 다만, 전역변수를 사용하기때문에 쓰레드들끼리 race condition을 막기 위해서 뮤텍스 락으로 보호만 해놨을 뿐이다. Reentrant함수는 한마디로 얘기해서 재귀호출 ..
2018/4/1 링커가 하는 가장 중요한 일 중 하나인 Relocation 왼쪽 .o 파일이 다른 .o파일들과 합쳐져서 오른쪽 그림의 수행파일을 만드는 과정을 보여주는 그림이다. char c1 = 'c'; char *p=&c1; main { f(c1); } 이런 코드가 어셈블리어로 바꼈을때 왼쪽 .o 파일처럼 나오게 된다. 그런데 링커가 .o파일들을 합치고 나면 오른쪽 그림처럼 변수(c)의 주소나 코드상의 주소(load R1, (100))를 바꿔주어야 한다. 이것이 링커가 하는 가장 중요한 역할중 하나인 Relocation(재배치)이다. 수행파일로 합쳐지기전 .o파일은 char 'c'를 담은 변수인 c1의 주소가 100번지이다. 또한, c1의 주소를 포인터변수 p에 담고 있고, p는 200번지에 할당 되..
2018/3/30 링커가 하는일은 크게 2개가 있다.1.Relocation링커가 컴파일러가 생성한 오브젝트 파일들을 모아서 하나의 수행파일을 만들때, 각 오브젝트 파일에 있는 데이터의 주소나 코드의 메모리 참조주소가 링커에 의해 합쳐진 수행파일에서의 주소가 다르기 때문에, 그것을 알맞게 수정 해줘야함. 2.Symbol Resolution (심볼 해결?)심볼이라는것은 함수의 이름, 변수의 이름 등등을 의미함. 심볼을 해결한다는 뜻은 여러개의 오브젝트 파일에 같은 이름의 함수 또는 같음 이름의 변수 명이 정의 되어 있을때 어떤 파일의 어떤 함수의 것을 사용해야 하는가를 결정하는 일을 의미한다. 쉽게 말해서 A.o 파일과 B.o 파일안에 f()라는 함수가 동시에 정의 되어 있다고 해보자. 이때, 링커가 두개의..
- Total
- Today
- Yesterday
- async
- state
- react
- design system
- useRef
- Babel
- javascript
- es6
- Polyfill
- type alias
- server side rendering
- return type
- webpack
- Action
- reducer
- computed
- rendering scope
- props
- hydrate
- Next.js
- typescript
- atomic design
- mobx
- promise
- storybook
- reactdom
- await
- useEffect
- react hooks
- reflow
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |