본문 바로가기

컴퓨터 구조와 프로그래밍9

[한 권 컴퓨터 구조와 프로그래밍] 12장 - 병렬성과 비동기성 컴퓨터는 어떻게 한 번에 많은 일을 하는가 경합 조건이란 무엇인가 - 경합 조건 (race condition) - 2개 이상의 프로그램이 같은 자원에 동시 접근, 자원 사용 순서에 따라 결과가 달라지는 경우 공유 자원 - 공유 자원 (shared resource) 프로세스와 스레드 - 운영체제는 프로세스를 관리함 - 프로세스: 사용자 공간에서 실행되는 프로그램 - 병렬로 실행되는 프로그램이 자원을 공유해야 경합 조건 발생 가능 - 핸들러를 인터럽트하기 - 스레드: 정적인 데이터와 힙을 공유하지만 자체적으로 스택을 갖는 프로그램의 일부 락 - 트랜잭션과 작업 크기 - 여러 연산을 한 트랜잭션에 넣기 - 락 대기 - 계속 주기적 시간을 거치면서 체크하는 스핀 방법 - 락을 요청하는 존재가 관리하는 쪽에 등록.. 2022. 9. 19.
[한 권 컴퓨터 구조와 프로그래밍] 11장 - 성능 향상을 위한 알고리즘 기법 계산을 간소화하는 프로그래밍 트릭 표 찾기 - 변환 - 텍스처 매핑 - MIP 맵 (다중 이미지 배치) - MIP 맵에서 가장 가까운 계층에 있는 이미지를 사용해서 계산 또는 그 이미지를 그냥 사용하면 시간을 상당히 절약 가능 - 자주 사용할 정보를 미리 계산 (저해상도 텍스쳐) - 문자 종류 판별 정수를 사용한 계산 방법 - 직선 - 부동소수점 연산은 정수 계산보다 훨씬 느림 - 곡선 다루기 - 다항식 재귀적 분할 - 나선 - 재귀적 분할 이용 - 구성적인 기하 - 쿼드트리는 재귀를 활용한 데이터 구조 - 시프트와 마스크 - 쿼드트리의 단점은 데이터가 메모리에서 분산됨, 쿼드트리의 참조 지역성은 나쁨 계산을 회피하는 그 밖의 수학적 기법들 - 멱급수 근삿값 계산 - 사인 함수를 계산하기 위한 다른 방법.. 2022. 9. 19.
[한 권 컴퓨터 구조와 프로그래밍] 7장 - 데이터 구조와 처리 어떻게 해야 프로그램에서 데이터를 잘 구성하고 처리할까 기본 데이터 타입 - 크기 (size, 비트 수) - 해석 (부호 유무, 부동 소수점 수 여부, 문자 표현 여부, 포인터 표현 여부, 불리언 표현 여부) 배열 - 인덱스 (아파트 호 수), 원소 (각각의 집) 비트맵 - 비트맵: 비트의 배열 - 마스크: 들여다볼 수 있는 구멍이 있는 비트 패턴 문자열 - 문자열: 여러 문자로 이뤄진 시퀀스 - 1) 문자열 안에 길이를 저장하기 - 2) 문자열 터미네이터 사용 복합 데이터 타입 - 구조체 - 공용체 단일 연결 리스트 - 연결 리스트: 목록에 들어갈 원소 개수를 모르는 경우 배열보다 효과적임 동적 메모리 할당 - malloc을 이용해 가용 블록 리스트를 스캔하면서 두 가용 블록이 서로 인접한 경우 둘을 .. 2022. 8. 11.
[한 권 컴퓨터 구조와 프로그래밍] 6장 - 입출력과 네트워킹 컴퓨터는 외부와 어떻게 상호작용하는가 저수준 I/O - I/O 포트 - 다이오드 - DDRB, PORTB, PINB - 버튼을 눌러라 - 푸시 버튼 - 유한 임펄스 응답 (Finite Impulse Response)은 큐임 - 빛이 있으라 - 디스플레이 - 멀티플렉스 - 시각의 잔상 효과 - 빛, 동작, 그리고 상호 연동 - 멀티플렉스를 사용한 버튼과 디스플레이 - 밝기 조절 - 디스플레이의 듀티 사이클을 조절함으로써 밝기 조절 가능 - 그레이의 2^n가지 그림자 - 축의 위치를 2진수로 인코딩 필요 - 그레이 코드 인코더 - 쿼드러처 - 쿼드러처 인코딩 - 4가지 상태 존재 - 2비트 그레이 코드 패턴 여러 번 반복됨 - 병렬 통신 - 병렬 - LED 컴포넌트 하나하나마다 별도의 선이 있어서 동시에 모.. 2022. 8. 11.
반응형