본문 바로가기

전체 글96

Synchronization 1 멀티프로그래밍, 멀티쓰레드 환경에서는 다양한 문제가 발생할 수 있다. 예를 들어 프로세스들이 공유 메모리에 접근하려고 하기 때문에 실행 때마다 다른 결과가 나오는 race condition이 발생할 수 있다. 이같은 문제를 해결하기 위한 방법을 synchronization이라고 한다. synchronization이 필요한 이유를 예시로도 한번 살펴보자. Ex 1. Bank Account fig 1-1을 보자. 계좌(acct_t)들이 있고 이 계좌는 각각 잔액(balance)정보가 있다. 또 인출(trans_t)정보들이 있고 그 안에는 id(user account)나 amount(얼마를 인출할건지)등의 정보들이 있다. 그리고 이 잔액을 인출하는 debit 함수가 있다. 이를 보면 이 예제는 계좌의 잔액을 .. 2022. 4. 19.
수취채권과 지급채무 1 회사A가 회사B에 상품을 판매했는데 B가 현금이 아닌 외상으로 구입했다면 판매자A는 매출채권을 얻을 것이고 구매자B는 매입채무를 얻게 된다. 이처럼 외상이나 신용으로 상품을 구매할 때는 매출채권과 매입채무가 발생하는데 이는 각각 수취채권과 지급채무의 일종이다. 이글에서는 이 둘에 대해서 알아볼 것이다. 수취채권과 지급채무의 의의와 종류 이 둘이 어떤 것으로 이뤄져있는지 먼저 알아볼건데, 읽어보면 알겠지만 수취채권과 지급채무의 각 구성이 서로 대응한다는 것을 알 수 있다. 수취채권 수취채권은 재무상태일로부터 1년 이내에 현금으로 회수될 것으로 기대되는 유동자산이다. 수취채권은 다음과 같이 이뤄져 있다. ※ 어음: 발행하는 사람이 일정한 금전의 지급을 약속하며 발행하는 일종의 지급보증서 매출채권: 기업의 통.. 2022. 4. 18.
자산별 회계처리:현금 및 현금성자산과 단기금융자산 이전까지는 회계가 어떻게 진행되는지 대략적인 과정을 살펴봤다. 거래가 발생하면 자산, 부채, 자본, 수익, 비용에 증감변동이 발생하였는데 이제부터는 좀 더 자세하게 들어가서 각 항목 별 계정과목에 대해 이해하고 이에 대한 회계 처리가 어떻게 이뤄지는지 살펴볼 것이다. 일단 자산 항목의 회계처리부터 시작할건데, 이 글에서는 현금 및 현금성자산과 단기금융자산에 대해 다뤄보겠다. 현금 및 현금성자산 재무제표의 현금흐름표 상에서 '현금'은 현금뿐만 아니라 현금성자산도 포함한다. 이에 따라 기업들은 재무상태표에 현금과 현금성잣나을하나로 묶어 '현금 및 현금성자산'으로 보고하는 것이 일반적이다. 현금 및 현금성자산에 포함되는 항목 현금 및 현금성자산은 글자에서도 확인할 수 있듯이 '현금'과 '현금성자산'으로 나눌 .. 2022. 4. 14.
Scheduling 2 이전 글에서는 싱글코어 CPU가 여러 프로세스들을 다루는 방법을 알아봤다. 하지만 우리가 현재 쓰고 있는 컴퓨터들은 대부분 멀티코어를 사용한다. 그렇기 때문에 지금부터는 멀티코어에서 일어나는 스케줄링에 대해 알아볼 것이다. NUMA and CPU Scheduling fig 7-1을 보면 CPU를 볼 수 있는데(왼쪽 0, 오른쪽 1) 멀티코어는 CPU내부에 코어가 여러개 존재하는 것이다. 그리고 각 CPU는 직접적으로 연결된 메모리가 존재한다. 여기서 더 큰 스케일의 컴퓨터라면 이러한 CPU가 2개 이상 설치될 수도 있다. 이러한 상황에서 CPU의 코어는 인접한 다른 CPU의 메모리에도 접근할 수 있다. 하지만 이때의 속도는 직접적으로 연결된 메모리 접근속도보다 당연히 더 느릴 것이다. 이런 경우를 Non.. 2022. 4. 12.