League Of Legends - Link Select 'Atomic' 태그의 글 목록
본문 바로가기
반응형

Atomic3

[06~08주차] Non-Blocking 알고리즘 - LIST - SET : 아이템의 중복을 허용하지 않음 : 정렬되어 저장됨 (unordered_set이 아님) - 검색 효율 증가 : 삽입 삭제의 효율성을 위해 링크드리스트 구현 : 구현 ) add, remove, contains : 필드 ) 리스트에 저장되는 값  : 메서드 - add(x) : 집합에 x추가, 성공 시 true - remove(x) : 집합에서 x 제거, 성공 시 true - contains(x) : 집합에 x가 있다면 true  : 추가 구현 ) 보초 노드 - 검색 효율을 위해 항상 존재하는 Head(MAXINT)와 Tail노드(-MAXINT)를 갖도록 함   - 성긴 동기화 : 리스트는 하나의 잠금을 가짐 : 모든 매서드 호출은 이 잠금을 통해 Critical Section으로 진행됨 ( = .. 2024. 4. 25.
[06주차] 멀티쓰레드 01 - 성능 향상 1) 프로그램 최적화 2) 멀티 코어 활용 → 멀티쓰레드 프로그래밍 필요 - 멀티쓰레드 : 하나의 프로그램이 여러 곳이 동시 다발적으로 실행됨 (병렬처리) - 병렬처리 : 하나의 작업을 여러 개의 context에서 동시에 수행 : context - CPU 실행 상태 (PC를 포함한 모든 레지스터 값) : 한 대의 컴퓨터 사용 → SMP(여러 개의 CPU), Multi-Core (여러 개의 Core) : CPU 한 개 속도는 너무 느리기에 사용하는 것 (프로그램 구조가 깔끔해지진 않음) : 발열 속도에 부딪친 클럭 속도 증가 - 프로세스와 쓰레드 1) 프로세스 : 실행 중인 프로그램 - 하나의 프로세스는 하나의 실행 파일에서 출발 2) 쓰레드 : 프로그램 실행 흐름 - 프로세스 실행 중 프로.. 2024. 4. 22.
[02주차] 멀티코어 HW & DataRace - 멀티쓰레드 프로그래밍 주요 사항  : 올바른 결과가 나와야 함 ( 무한루프에 빠지거나, 프로그램이 오류로 종류되면 안됨 ) : 이를 사용한 성능향상이 커야함 ( 적으면 멀티쓰레드를 쓰는 이유가 없음 ) : 멀쓰 프로그래밍은 하나의 프로그램을 나눠서 작성하는 것   - 위에서 틀린 결과가 나온 이유 : Data Race -> sum += 2 : 공유 메모리를 여러 쓰레드에서 읽고 쓰고, 이 순서에 따라 실행 결과가 예상과는 달라진다 : Data Race  ⇒ 복수의 쓰레드가 하나의 메모리에 동시에 접근 & 적어도 한 개의 write  : 읽고 - 더하고 - 쓰는 이 사이에 context switching이 일어나서 문제  (동시 접근 -> read, write) ─ 앞의 프.. 2024. 4. 18.
728x90
반응형