일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dp
- 딥러닝
- 리눅스
- 네트워크
- PYTHON
- 코딩 테스트
- 알고리즘
- CSS
- 프로그래머스
- google coding competition
- 브루트포스
- 동적프로그래밍
- 운영체제
- 구글 킥스타트
- 파이썬
- nlp
- linux
- BFS
- 순열
- 코딩테스트
- AI
- kick start
- 프로그래밍
- 그래프
- 백준
- 코딩
- OS
- DFS
- 동적 프로그래밍
- 킥스타트
- Today
- Total
목록분류 전체보기 (312)
오뚝이개발자
Stack이란? LIFO(Last In First Out) order를 따르는 자료구조 예) 쌓여있는 책더미 Stack 구현의 두 가지 방법(item container로 어떤 것을 선택할지) Linked list로 구현(head에만 삽입하고 head만 지워 이를 stack의 top처럼 활용) Dynamic array로 구현(head를 포인터가 아닌 index 값으로 사용) Queue란? FIFO(First In First Out) order를 따르는 자료구조 예) 줄서기(waiting line) Queue 구현의 두 가지 방법 Linked list로 구현 Dynamic array로 구현 이 때, false-overflow 문제 발생 : 실제로는 빈 공간이 있는데 다 찬 것처럼 보이는 현상 그래서 나온 해..
Array란? 선형자료구조 + 모든 item 같은 자료형 + item들이 메모리 상의 countinuous하게 저장 Array의 문제점 특정 위치 insert, delete가 불편(모든 item 위치 재배치해야함) 만약 얼마나 많은 item을 저장해야 하는지 모르는 상황이면 최대한 많은 메모리를 할당해야 함(waste) Linked list란? data part + link part(다음 item의 주소 가리킴)로 구성 모든 item이 다음 item과 연결되어있는 item sequence array와 달리 메모리 상에 꼭 continuous하게 저장되지 않음(consecutive일수도 있고 아닐수도 있다) Linked list의 장단점 장점 삽입, 삭제가 array에 비해 쉽다 메모리 낭비 최소화(필요한..
평소 불면증이 심해서 수면 패턴이 규칙적이지 않았다. 이 책을 읽은 이유는 본질적으로 '잠'이라는 것이 무엇인지 알아보고 제목 그대로 우리가 '왜 잠을 자야 하는지'에 대한 이유를 알아보고 그 필요성을 느끼기 위해서이다. 소재 자체는 좋으나 실험의 결과를 설명하는 자료가 지나치게 간소화되어 있고(아마 '대중'을 대상으로 설명을 간단하게 하기 위해서일 수도 있지만) 결과 해석에 지나치게 비약적인 부분들도 다소 있었다. 그래도 잠에 대한 새로운 생각이나 관점들을 주는 부분들이 있으니 읽어보면 좋을 것 같다. 책을 읽으며 감명 깊었던 내용과 저자가 제시하는 수면유도 방법을 정리해보고자 한다. 도서는 아래 링크를 클릭하면 구매 가능하다. 잠의 중요성 동물의 진화 과정에서 '잠'이라는 요소가 사라지지 않은 이유 ..
클래스란? 데이터와 함수를 하나로 묶어둔 것 부연설명) C에서 구조체(struct)는 오로지 데이터만 가지고 있고 함수(기능)는 구조체의 외부에 정의된다. 하지만 C++ 같은 OOL에서는 이 둘을 한 데 묶어 class라는 것으로 정의한다. 더불어, class로 생성된 object의 자료형이 바로 해당 class이다. Object(=Instance)란? 클래스에 의해 정의된 variable 예컨대, stack S라 하면 S가 stack class의 object(instance)이다. Encapsulation(캡슐화)이란? data와 function을 class로 묶는 것 클래스에서 private member와 public member란? private member : class의 밖에서 access 불가..
가상 메모리 관리의 목적 page fault rate를 최소화해 시스템 성능 최적화 reference bit(=used bit)란? 캐시나 페이지에서 최근에 참조되었는지 여부를 나타내는 bit 참조되면 1로 설정 주기적으로 0으로 초기화 locality에 기반한 정보(최근 참조된 것들 확인 가능) update bit(=dirty bit=modified bit=write bit)이란? 캐시나 페이지에서 갱신되었는지 여부를 나타내는 bit 만약 page에서 update bit=1면 해당 page의 (main memory상 내용) != (swap device상 내용) 변경된 내용을 swap device에 write-back해주는 작업이 필요(for 데이터 무결성) update bit는 write-back 후 ..
본 글은 HPC Lab의 youtube 강의를 듣고 요약한 것입니다. 모든 이미지 출처 역시 HPC Lab의 pdf 수업자료입니다. Virtual storage(Non-continuous allocation) Non-continuous allocation Paging system Segmentation system Hybrid system 프로그램을 여러 개의 block으로 분할해 실행 시 필요한 block들만 메모리에 적재(나머지 block들은 swap device에 존재) Address mapping Continuous allocation의 address mapping Relative address(상대주소) : 프로그램의 시작주소를 0으로 가정한 주소 Relocation(재배치) : 메모리 할당 후..
본 글은 HPC Lab의 youtube 강의를 듣고 요약한 것입니다. 모든 이미지 출처 역시 HPC Lab의 pdf 수업자료입니다. 메모리의 종류 레지스터-캐시-메인메모리(주기억장치)-하드디스크(보조기억장치) Block과 Word Block : 주기억장치-보조기억장치 사이의 데이터 전송 단위 Word : 주기억장치-레지스터 사이의 데이터 전송 단위(일반적으로 32bit, 64bit 컴퓨터는 이 word를 말한다) Address binding이란? 프로그램의 논리 주소를 물리 주소로 매핑(mapping)하는 작업 Binding 시점에 따라 세 가지로 구분 Compile time binding Load time binding Run time binding Address binding을 프로그램 수행시간까지 ..
본 글은 HPC Lab의 youtube 강의를 듣고 요약한 것입니다. 모든 이미지 출처 역시 HPC Lab의 pdf 수업자료입니다. Deadlock 발생 필요조건 4가지 Mutual exclusion of resources : 자원은 한 번에 한 프로세스만 사용 가능 Non-preemption resources : 자원은 오로지 사용 중인 프로세스가 끝날 때만 반환 가능 Hold and wait(Partial allocation) : 자원을 이미 hold하고 다른 자원 요청 Circular wait : P0은 P1이 사용 중인 자원을 기다리고, P1은 P2가 사용 중인 자원을 기다리고...Pn은 P0이 사용 중인 자원을 기다리는 형태 1,2번은 자원의 특성이고 3,4번은 프로세스의 특성이다. 위의 조건 ..