본문 바로가기

전체 글96

Memory Management 1 이 글에서는 OS가 하는 일 중 하나인 메모리 관리에 대해 알아보자. 많은 프로그램이 메모리에 올려져서 실행이 되는데 OS는 여려개의 응용 프로그램들이 한정된 메모리 자원을 사용하는 것을 관리해야 한다. 컴퓨터가 막 나온 1950년대 초반같은 경우에는 effective address가 실제 물리적인 메모리 주소였었다. 이때는 전체 시스템에 대한 접근이 제한되지 않은 채 한번에 하나의 프로그램만 실행될 수 있었다. 그 이후에는 다중 프로그래밍이 등장하였는데 2개 이상의 프로그램에서 CPU나 I/O 작업이 겹치게 될 경우에는 처리량이 증가하였다. 어쨌든 이러한 이유로 fig 1처럼 메모리에 여러 프로그램을 올려야 했다. 이때 각 프로그램이 올려지는 위치는 서로 독립적으로 하여 프로그래밍이나 스토리지 관리를 .. 2022. 5. 16.
Deadlock 이전 글에서 synchronization(동기화)을 이루기 위해 lock을 사용하였었다. 하지만 간단한 예제가 아닌 실제 상황에서는 performance의 큰 저하 없이 lock으로 병렬성(동시성)을 만들어내는게 쉽지 않은 걸 알았다. 만약 lock을 촘촘하게 한다면 병렬성은 올라가도 오버헤드도 증가하기 때문에 성능이 감소할 수도 있고 구조가 복잡해지면 deadlock이 발생할 수도 있었기 때문이다. 이 글에서는 deadlock에 대해 더 알아보고, 컴퓨터 시스템의 deadlock을 예방하거나 피하기 위해 사용하는 방법들도 살펴볼 것이다. System Model 여기서는 다음과 같은 모델을 사용한다. 시스템은 cpu, memory, I/O device 등의 자원(resource)으로 이루어져 있다. 단순.. 2022. 5. 10.
수취채권과 지급채무 2 매출채권의 대손 회계처리 매출채권을 회수하지 못할 것으로 판단되는 경우에는 해당 금액을 비용으로 처리해야 한다. 국제회계기준에서는 이를 자산의 손상으로 인한 손상차손의 일환으로 처리한다. 이 손상차손은 매출채권뿐만 아니라 단기매매금융자산을 제외한 금융자산, 유형자산, 무형자산의 손상이 발생하는 경우에도 인식된다. 매출채권에서 발생하는 손상차손을 일반적으로 대손(bad debt)이라 하고 대손상각비라는 비용계정을 사용하여 처리한다. 대손은 매출채권뿐만 아니라 다른 수취채권에서도 발생한다. 매출채권 대손의 회계처리 방법은 두가지가 있다. 직접상각법: 기중에 대손이 실제로 발생할 때 대손을 인식하는 방법 충당금설정법: 기말에 향후 대손으로 확정될 금액을 추정하여 대손을 인식하는 방법 국제회계기준에서는 충당금설.. 2022. 5. 1.
Synchronization 2 이전 글에서는spinlock 방법을 알아봤다. 하지만 이 방법은 프로세스가 대기하고 있는 동안 다른 프로세스를 실행할 수 없다거나(busy waiting) 사이클 낭비를 초래하게 되는 단점이 있었다. 그리고 모든 프로세스가 critical section(cs로 줄임)에 들어가야 한다는 bounded wating 또한 충족할 수 없었다. spinlock방법은 컨텍스트 스위칭이 발생하지 않기 때문에(어쨌든 프로세스는 바뀌지 않고 lock을 얻으려고 시도하니깐) cs의 길이가 짧은 경우에는 더 유리하긴 하다. 이 글에서는 그렇지 않은 경우에 더 유리한 synchronization을 high-level 수준에서 구현한 방법들에 대해 알아볼 것이다. Semaphores 이전 글에서의 spinlock 방법말고 b.. 2022. 4. 21.