본문 바로가기

컴퓨터 과학

난수 범위 구하는 방식 1. 최적화를 통한논리 연산 srand((int)time(NULL)); int val = rand() % 5 +3; cout 더보기
컴퓨터 과학 - 병렬성과 비동기성 [개요] 컴퓨터는 과거 싱글코어 프로세서와 달리 , 멀티코어 프로세서로 한번에 둘 이상의 일을 처리 할수 있게 되었다. 이 때문에 경합 조건이 발생했는데, 예를 들어 잔고가 100 만원인 계좌를 은행 창구에서 50만원을 찾으려 할때 배우자가 75 만원을 찾으려 하면 같은 시점에서 돈을 인출하려 했기 때문에 어느것이 우선순위인지 알수 없기에 경합 조건이 발생한다. 이 경우, 둘 중 한사람에게만 돈을 지급해야 초과 인출을 막을 수있기에 공동 계좌를 lock 잠근다. 이 말은 컴퓨터에서도 동일하게 일부 연산들은 근본적으로 멀티 테스킹을 막아야 한다는 뜻이다. [용어 정리] 경합조건 두 개 이상의 Operation이 같은 System Resource에 Access할 때, 그들사이의 경쟁에 의해 수행 결과를 예측.. 더보기
컴퓨터 과학 - 데이터 구조와 처리 [개요] 3장에서는 DRAM, 플래시 메모리, 디스크 드라이브등의 메모리 장치를 읽고 쓰는 방식이 각 메모리 장치의 속도에 영향을 끼친다는 사실을 알아봤다. 5장에서는 데이터가 캐시 메모리에 있는지 여부에 따라 성능이 달라진다는 사실을 알아봤다. 이러한 시스템 메모리에 염두하고 데이터를 조직적으로 잘 정리하면 더 나은 성능을 얻을 수 있다. 이러한 성능 향상 방법으로 데이터 구조 (데이터를 조직화 하는 표준적인 방법)을 살펴본다. [용어 정리] 참조 지역성 - 필요한 데이터를 메모리에서 서로 근처로 유지하라, 금방 사용할 데이터는 더 가까운 곳에 저장하라라는 뜻이다. 기저 주소 - 배열에서 0번째 원소의 주소, 바탕이 되는 주소 문자열 터미네이터 - 문자열 끝을 표시하는 문자 편의 문법 - 문법적으로 더.. 더보기