profile
안녕하세요! 개발 공부를 하고있습니다~
post-thumbnail

React+TypeScript에서 Type을 모를 때

React에서 TypeScript를 사용할 때 특정한 라이브러리를 활용하는 경우 타입을 무엇을 써야 하는지 모르는 경우가 참 많다.그럴때는 패키지에서 지원하는 타입을 확인해서 사용할 수 있다!우선 기본적으로 타입 스크립트를 지원하는 패키지들은으로 패키지의 타입을 지원하

2021년 4월 22일
·
0개의 댓글
·
post-thumbnail

Event-based Concurrency (Advanced)

node.js같은 server-side framework에서 자주 쓰이는 concurrency 방법이다.Event-based Concurrency는 2가지 부분을 다루게 된다.multi-threaded application에서 concurrency를 정확하게 다루는 것

2021년 3월 16일
·
0개의 댓글
·
post-thumbnail

Common Concurrency Problems

위와같은 어플리케이션에서 deadlock은 총 31개 deadlock이 아닌 버그는 74개이다.첫번째 non deadlock 버그는 MySQL에서 발견한 atomicity-violation bug이다.이 버그는 다른 2개의 thread가 proc-info라는 같은 데이

2021년 3월 5일
·
0개의 댓글
·
post-thumbnail

Semaphore

semaphore란 sem_wait()과 sem_post()로 우리가 조작할 수 있는 정수값을 갖는 object이다.위처럼 semaphore는 초기화를 해야만 한다.sem_init()으로 초기화를 수행하는데 s라는 semaphore를 1로 초기화 하고, 2번째 인자인

2021년 3월 1일
·
0개의 댓글
·

Condition Variables

concurrent program을 위한 유일한 요소는 lock뿐만이 아니다.thread들이 실행을 계속할지의 여부를 결정하기 위해서는 condition을 확인해야한다.위의 코드처럼 부모 thread가 자식 thread의 종료를 기다리는 상황에서 단순하게 spin-ba

2021년 2월 17일
·
0개의 댓글
·
post-thumbnail

Lock-based Concurrent Data Structures

자료구조에 lock을 추가하여 thread에서 사용할 수 있도록 하면 thread 구조에 안정성을 추가할 수 있다. 따라서 lock이 정확하게 어떻게 추가되는지가 데이터 구조의 정확성과 성능을 결정한다. 결론적으로 특정한 자료구조에 lock을 추가할 때 정확하게 동작

2021년 2월 16일
·
0개의 댓글
·
post-thumbnail

Lock

lock의 목적은 crital section이 atomic하게 동작하는 것을 보장하기 위함이다.lock variable이 lock의 상태를 지니고 있다.available 아무런 thread도 lock되지 않았음acquired critical section에서 한개의

2021년 2월 9일
·
0개의 댓글
·
post-thumbnail

Concurrency: An Introduction

thread라는 것에 대해서 알아볼 것이다.thread는 개별적으로 동작하는 프로세스와 많이 닮아 있다. 하지만 같은 address space를 공유해서 같은 data에 접근한다는 점에서 프로세스와 차이가 있다. 이 공유되는 data를 critical section이라

2021년 2월 8일
·
0개의 댓글
·
post-thumbnail

Swapping: Policy

물리적 메모리에 free space가 아주 많다면 새로운 page를 메모리에 담는 작업이 어렵지 않다. 하지만 물리적 메모리에 free space가 없다면 어떻게 해야할까?기존의 page를 메모리에서 제거할 때 어떤 기준으로 page를 메모리에서 제거하는걸까?page

2021년 2월 5일
·
0개의 댓글
·
post-thumbnail

Swapping: Mechanism

이전까지의 내용에서는 모든 address space가 물리적 메모리에 정확하게 들어맞는다고 가정하고 이론을 알아보았다. 그리고 모든 pages가 메모리에 위치해 있다고 알고 공부하였다.하지만 크기가 큰 address space를 사용하기 위해서는 당장 필요하지 않은 a

2021년 2월 4일
·
0개의 댓글
·

webrtc

ㅁㄴㅇㄹ

2021년 2월 3일
·
0개의 댓글
·

Paging: Smaller Tables

page table의 두번째 문제점인 너무 커서 메모리를 많이 잡아먹는다는 문제점을 살펴보자. 이러한 array-based page table(linear page table)의 문제를 해결하기위한 page table을 더 작게 만들 수 있는 방법은 무엇이며, 더 작아졌을 때 발생하는 비효율은 무엇일까...? Simple Solution: Bigger ...

2021년 1월 19일
·
0개의 댓글
·
post-thumbnail

Paging: Faster Translations (TLBs)

가상 메모리를 지원하는 핵심 mechanism으로 paging을 활용하면 고성능 오버헤드가 발생할 수 있다.address space를 고정된 크기로 작게 나누는 paging은 거대한 mapping information을 필요로 한다. 이런 mapping informat

2021년 1월 18일
·
0개의 댓글
·
post-thumbnail

Paging: Introduction

sfd

2021년 1월 14일
·
0개의 댓글
·
post-thumbnail

Free-space Management

이번 장에서는 근본적인 메모리 관리, 특히 free-space management에 대한 내용을 중점적으로 살펴볼 것이다. 관리하는 메모리 공간을 고정된 크기(fixed-size unit)로 나누면 쉽다. 고정된 크기의 메모리 리스트를 갖고있다가 요청이 오면 리스트의

2021년 1월 13일
·
0개의 댓글
·
post-thumbnail

Segmentation

위 그림에서 보면 알 수 있듯이 address space를 구성할 때 실제 물리적 메모리에는 free space가 있기 때문에 base and bound 방법은 우리가 생각하는 것 만큼 유용하지 않을 수 있다.이러한 문제를 해결하기 위해 segmentation이라는 방

2021년 1월 11일
·
0개의 댓글
·
post-thumbnail

Address Translation

CPU를 가상화 하기위해서는 Limited Direct Execution을 활용했다. 메모리 가상화를 제공할 때도 효율성과 통제권(Efficiency and Control)을 얻기위해서 비슷한 방법이 필요하다. 효율성을 위해서는 분명히 하드웨어가 뒷받침되어야 하고,

2021년 1월 7일
·
0개의 댓글
·

Interlude: Memory API

메모리 사용이 다 끝나지 않았는데 해제를 해버린 경우를 일컬어 dangling pointer라고 부른다.어떤 짧은 프로그램을 작성하고, 메모리 할당을 한 후 종료전에 해제를 해야하는가?해제를 안하는 것이 이상하겠지만, 해제를 하지 않아도 실제로는 메모리 누수가 없다.그

2021년 1월 5일
·
0개의 댓글
·
post-thumbnail

The Abstraction: Address Spaces

초기의 컴퓨터는 메모리의 관점에서 사용자에게 많은 추상화(abstraction)를 주진 못했다.OS는 물리적인 메모리에 올라간 라이브러리 같은 것이였고, 다른 물리적인 메모리 위치에서는 프로그램이 동작하고 있었다.시간이 지난 후 컴퓨터가 비싸짐에 따라 사람들은 컴퓨터의

2021년 1월 5일
·
0개의 댓글
·

Multiprocessor Scheduling

작성 예정

2021년 1월 5일
·
0개의 댓글
·