본문 바로가기

System5

RISC와 CISC, 명령어 집합 구조 | 프로그래머가 몰랐던 멀티코어 CPU 이야기, 김민장 저 ※  아래 내용은 스스로 공부한 내용을 정리한 글입니다.     ※  때로 정확하지 않을 수 있으며, 참고만 부탁드립니다.     ※  잘못된 내용이 있을시 댓글로 알려주시면 감사하겠습니다.     ※  해당 글은 『김민장 저, 프로그래머가 몰랐던 멀티코어 CPU 이야기』를 읽고 정리한 글입니다.   요즘 시스템 분야에 흥미를 느껴서 김민장 님 저서인 『프로그래머가 몰랐던 멀티코어 CPU 이야기』를 읽기 시작했습니다. 하루에 한 챕터씩 읽으면서 글과 실물의 괴리감을 줄이기 위해 간단한(?) 사이드 프로젝트도 함께 해볼까 하는데 시간이 가능할지 모르겠네요. 그래도 오래간만에 가슴 뛰는 공부 거리를 찾았습니다.   명령어 집합 구조, 즉 프로세서 언어인 ISA를 대표적인 두 축 RISC와 CISC를 중심으로.. 2024. 8. 20.
프로세서의 언어, 명령어 집합 구조 (Instruction Set Architecture, ISA) | 프로그래머가 몰랐던 멀티코어 CPU 이야기, 김민장 저 ※  아래 내용은 스스로 공부한 내용을 정리한 글입니다.     ※  때로 정확하지 않을 수 있으며, 참고만 부탁드립니다.     ※  잘못된 내용이 있을시 댓글로 알려주시면 감사하겠습니다.     ※  해당 글은 『김민장 저, 프로그래머가 몰랐던 멀티코어 CPU 이야기』를 읽고 정리한 글입니다.   요즘 시스템 분야에 흥미를 느껴서 김민장 님 저서인 『프로그래머가 몰랐던 멀티코어 CPU 이야기』를 읽기 시작했습니다. 하루에 한 챕터씩 읽으면서 글과 실물의 괴리감을 줄이기 위해 간단한(?) 사이드 프로젝트도 함께 해볼까 하는데 시간이 가능할지 모르겠네요. 그래도 오래간만에 가슴 뛰는 공부 거리를 찾았습니다.   들어가며, 컴파일러의 등장으로 인해 프로그래머들은 프로세서 언어와 거리를 두게 되었다.컴파일러.. 2024. 8. 12.
프로그래머가 프로세서도 알아야 해요? | 프로그래머가 몰랐던 멀티코어 CPU 이야기, 김민장 저 ※  아래 내용은 스스로 공부한 내용을 정리한 글입니다.     ※  때로 정확하지 않을 수 있으며, 참고만 부탁드립니다.     ※  잘못된 내용이 있을시 댓글로 알려주시면 감사하겠습니다.     ※  해당 글은 『김민장 저, 프로그래머가 몰랐던 멀티코어 CPU 이야기』를 읽고 정리한 글입니다.   요즘 시스템 분야에 흥미를 느껴서 김민장 님 저서인 『프로그래머가 몰랐던 멀티코어 CPU 이야기』를 읽기 시작했습니다. 하루에 한 챕터씩 읽으면서 글과 실물의 괴리감을 줄이기 위해 간단한(?) 사이드 프로젝트도 함께 해볼까 하는데 시간이 가능할지 모르겠네요. 그래도 오래간만에 가슴 뛰는 공부 거리를 찾았습니다.  프로세서흔히 CPU (중앙처리장치)라는 표현을 자주 쓴다. 그러나 명확하게 말하면 현대 CPU는.. 2024. 8. 10.
Multi Thread 환경에서 성능 비교 1탄 ※  아래 내용은 스스로 공부한 내용을 정리한 글입니다.     ※  때로 정확하지 않을 수 있으며, 참고만 부탁드립니다.     ※  잘못된 내용이 있을시 댓글로 알려주시면 감사하겠습니다. 테스트 조건8개의 멀티 스레드를 띄우고, 3초간 while 루프 안에서 count++ 하도록 함.단, 모든 스레드가 완전히 띄워졌을 때 루프를 시작해야 한다. 비교 케이스 local 변수 카운팅tls 변수 카운팅global 변수 카운팅global 변수 mutex lock 사용 시 카운팅 1. local 변수local 변수는 stack에 저장된다. 그리고 스레드끼리는 stack을 공유하지 않는다.위 그림처럼, 스레드마다 stack 크기가 지정되므로 스레드끼리 독립적인 메모리 주소를 갖게 된다.   2. TLS 변수TL.. 2023. 7. 16.
Multi Thread에서 mutex lock 사용하기 ※  아래 내용은 스스로 공부한 내용을 정리한 글입니다.     ※  때로 정확하지 않을 수 있으며, 참고만 부탁드립니다.     ※  잘못된 내용이 있을시 댓글로 알려주시면 감사하겠습니다.    멀티 스레드 환경에서 공유 자원에 동시에 접근해도 될까?멀티 스레드 환경에서 공유된 자원에 동시에 접근하게 되면, 스레드끼리 경쟁이 일어나면서 false sharing(거짓 공유), cache thrashing(캐시 쓰레싱), cache invalid storm 같은 문제가 발생한다. 이를 해결하기 위해 공유 자원에 접근할 때 하나의 프로세스가 접근하고 있는 경우 다른 프로세스는 접근하지 못하도록 제한하기 위해 mutex lock을 이용한다. Mutex는 무엇일까?Mutext는 mutual exclusion이라.. 2023. 7. 10.