본문 바로가기
  • Ted's Log

Computer Science2

병렬성과 비동기성 ⌜한 권으로 읽는 컴퓨터 구조와 프로그래밍⌟ 책으로 진행하는 스터디 발표를 준비하면서 작성한 포스팅입니다 컴퓨터는 어떻게 한 번에 많은 일을 하는가? 컴퓨터가 한 번에 둘 이상의 작업을 수행하는 것을 멀티태스킹(multitasking)이라 한다. 멀티코어 프로세스를 갖춘 컴퓨터가 보편화되어, 멀티태스킹 환경에서 작업하는 것은 우리에게 익숙하다. 이번 장의 내용을 통해 컴퓨터가 동시에 여러 작업을 수행할 때, 어떤 원리를 통해 오류 없이 동작하게 되는지 알아보자. 경합 조건과 공유 자원 경합 조건(race condition)이란 2개 이상의 프로그램이 같은 자원에 동시에 접근하여, 자원 사용 순서에 따라 결과가 달라지는 경우를 말한다. 위의 예시에서 서로 다른 두 프로그램이 은행 계좌에 동시에 입금하려는 .. 2022. 11. 20.
데이터 구조와 처리 ⌜한 권으로 읽는 컴퓨터 구조와 프로그래밍⌟ 책으로 진행하는 스터디 발표를 준비하면서 작성한 포스팅입니다 어떻게 해야 프로그램에서 데이터를 잘 구성하고 처리할까? 컴퓨터에서 자료구조(data structure, 데이터 구조)를 어떻게 활용하느냐에 따라 데이터를 처리하는 성능이 달라진다. 자료구조에 따라 공간/시간 트레이드 오프가 따르기도 한다. 참조 지역성이 핵심! '필요한 데이터를 (메모리에서) 서로 근처에 유지하라. 금방 사용할 데이터라면 더 가까운 곳에 저장하라' 기본 데이터 타입 프로그래밍 언어에는 기본 데이터 타입(primitive type)이 존재 데이터 타입별로 메모리에서 차지하는 크기와 표현하는 정보가 다르다 부호를 가지는 정수, 부동소수점, 문자, 논리 자료형 등 C언어에는 포인터(poi.. 2022. 10. 3.