일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- vue3
- 프론트엔드
- 릿코드
- 스택
- 자료구조
- C
- cors
- RxJS
- pytorch
- 프로그래머스
- 연결 리스트
- 알고리즘
- 포인터
- APOLLO
- alexnet
- 타입스크립트
- 웹팩
- 프로세스
- 해시테이블
- RT scheduling
- GraphQL
- 컨테이너
- 배열
- 브라우저
- 큐
- 연결리스트
- 이진탐색
- 자바스크립트
- 코딩테스트
- Machine Learning
- Today
- Total
목록분류 전체보기 (164)
프린세스 다이어리

1. 세그멘테이션 기법과 페이징 시스템의 차이 세그멘테이션 기법은 서로 크기가 다른 논리적 단위인 세그멘트로 가상 메모리를 관리하는 기법으로, 물리 메모리를 프로세스의 크기에 따라 가변적으로 나누어 사용한다. 물리 메모리가 세그멘트 단위의 연속된 크기의 메모리를 제공해주지 못하는 문제가 발생할 수 있고 이 경우에는 페이징 시스템에서처럼 그왑 영역을 사용한다. 이에 반해 페이징 시스템은 특별한 의미 없는 4KB의 페이지 단위로 메모리 주소에 접근하는 방식이다. 페이지 블록 4KB만큼 잘라서 메모리를 사용할 수 있지만, 4KB 단위만큼 데이터가 딱 맞아떨어지지 않는 경우에는 불필요한 메모리 공간을 낭비하게 되는 문제점이 있다. 2. 세그멘테이션 기법의 가상주소 변환 세그멘테이션 기법에서의 페이지 테이블은 페..

1. 페이지 교체 알고리즘 종류 메모리가 다 찬 상태에서, 메모리에 올라간 상태의 페이지들 중 어떤 것을 내리고 새 페이지로 교체할지 최선책을 내려야 한다. 최소한의 횟수로 페이지 폴트 인터럽트가 발생해야 CPU가 여러 프로그램을 동시에 실행할 때 처리 지연이 적다. 이를 판단하는 대표적인 알고리즘에는 5가지 정도가 있다. 1-1. FIFO - 단순하게 가장 먼저 들어온 페이지를 내리고 새 페이지로 교체하는 알고리즘이다. - 만약 page 1 -> page 3-> page 4 -> page 5 순으로 페이지가 올라가서 꽉 찬 상태라면, 새로 참조해야 하는 페이지인 page 2는 page 1과 교체가 된다. 1-2. OPT(OPTimal Replacement Algorithm) - 가장 이상적으로 페이지 ..

1. 요구 페이징(Demand Paging) 컴퓨터가 프로그램을 실행할 때, 어느 페이지 블록을 어느 시점에 물리 메모리에 적재해야 하는지 판단해야 한다. 메모리의 용량은 제한적이기 때문이다. 프로세스와 관련한 모든 데이터를 메모리에 미리 올려놓고 실행하는 '선행 페이징' 개념이 있지만 이는 한정된 메모리 활용에 비효율적이다. 이와 반대로 '요구 페이징'이라는 개념이 있다. 모든 데이터를 메모리에 적재하지 않고, 실행 중에 필요한 시점이 오면 그때그때 적재한다는 의미다. - 선행 페이징: 프로세스 관련 모든 데이터를 물리 메모리에 미리 적재 후 실행 -> 현실성x - 요구 페이징: 실행 중 필요한 시점에 필요한 데이터만 물리 메모리에 적재 -> 현실적, 페이지 교체 알고리즘 필요 프로세스 A에서 어떤 한..

페이징 시스템은 물리 메모리를 효율적으로 활용하는 데 있어서 여러 역할을 한다. 그 중에 '공유 메모리'라는 개념이 있다. Process A와 Process B가 별도로 있는 상황에서, A, B의 특정 공간이 공유된다고 가정해 본다. 물리 메모리엔 두 공간이 아닌 하나의 공간만 확보해 놓고, 페이지 테이블에서 프로세스의 각 주소를 변환할 때 해당 물리 주소를 동일하게 가리키게 해 놓으면 그 메모리 공간을 함께 공유할 수 있다. 1. 각 프로세스의 커널 메모리 공간은 물리 메모리 공간을 공유 공유 메모리의 개념을 프로세스의 4GB~3GB 영역의 커널 공간에 적용해 보면, 각 프로세스의 커널 공간에 대한 페이지 테이블에서 동일한 메모리 공간을 가리키게 하면 된다. 즉 프로세스마다 커널 영역을 다 갖고 있는 ..

리눅스의 프로세스의 페이징 시스템에서는 0GB~4GB를 모두 4KB 단위 페이지로 나누어서 Page Table을 만들어서 가상 주소와 물리 주소로 매칭한다. 한편 페이지 테이블도 결국 메모리에 올려야 하는데 전체 4GB를 몽땅 쪼개서 테이블을 만들어 놓는다면 쓸데없이 많은 메모리 공간을 차지하게 된다. 만약 실제로 돌리는 간단한 C언어 프로그램이 10KB라면 4GB 전체를 페이지 테이블로 만드는 건 메모리 공간 낭비다. 1. 메모리 공간을 절약해주는 다중단계 페이징 시스템 다중단계 페이징 시스템이란, Page Directory로 영역을 구분하여, 그 중에 데이터가 있는 디렉터리만 페이지 테이블을 만들어 메모리 공간을 절약하는 개념이다. 전체 페이지 32bit 중, 12bit는 원래대로 페이지 주소로부터의..
RxJS 공부를 시작하다가, 기존 자바스크립트에서 어떤 방식으로 프로미스를 처리했는지 다시 공부하고 싶어 예전에 공부한 내용을 정비하여 끌올해보았다. 내용 출처: 모던자바스크립트 Deep Dive 45장 1. Promise.resolve / Promise.reject 📌 Promise.resolve / Promise.reject 는 이미 존재하는 값을 래핑하여 프로미스를 생성함 인수로 전달한 배열을 resolve하는 프로미스를 생성 const resolvedPromise = Promise.resolve([1,2,3]) resolvedPromise.then(console.log) // [1,2,3] const resolvedPromise = new Promise(resolve => resolve([1,2,..

스토리북 공식문서에 정말 상세하게 잘 나오기는 했으나 필요한 기능을 찾아 조합하는 것은 좀 다른 문젠 것 같다. 가장 단순한 샘플 Button 컴포넌트를 예시로 기록해보겠다. 1. 버튼의 props 옵션 선택하는 기능 추가하기 import {ArgsTable, Canvas, Meta, Story} from '@storybook/addon-docs'; import BaseButton from 'common/components/input/BaseButton.vue'; Meta > argTypes에 옵션이름 > control > options 에 배열로 기존 컴포넌트에서 props로 넘겨받는 값들을 나열해서 넣어준다. control > type에 select로 지정하면 드롭다운이, radio로 지정하면 라디오..

1. 문제상황 컴포넌트를 개발하기 이전에 스토리북을 짜는 게 아니라, 이미 개발한 공통 컴포넌트를 기반으로 스토리북 독스를 작성하는 상황이다. 우리 스토리북 프로젝트는 모노레포로 구성돼 있어, 스토리북 자체 stories 레포와 vue 공통 컴포넌트만을 가지고 있는 component 레포가 함께 있다. component 레포의 vue 파일을 끌어다가 stories 레포에서 문서를 작성하는 특이한 상황이라, svg 파일이 쉽사리 import 되지 않아 세팅에 시간을 좀 들이게 됐다. storybook - node_modules - stories - node_modules - package.json - components - node_modules - package.json - package.json - y..