cache4 File System - 출처: Operating System - Three Easy Pieces 개요만약 우리가 File system 을 구현해야 한다면 크게 2가지 측면을 고려해야 한다.Data strcutures: data와 metadata를 구성하기 위해 어떤 유형의 구조로 설계할것인가?Access methods: open(), read(), write() 등과 같은 process에 의한 호출을 어떻게 구조에 맵핑할것인가?전체 구조vsfs 파일 시스템의 데이터 구조를 설계한다고 가정해보자. 가장 먼저 해야할것은 무엇인가? 가장 먼저 해야하는것은 disk를 "block" 단위로 나누는것이다. 이 "block"을 4 KB 로 사용한다고 가정하자.위처럼 block에는 0 ~ N-1 주소가 부여되며 각 block의 크기는 4.. 2024. 11. 3. Docker - Mounts - 출처: https://docs.docker.com/build/guide/mounts/ - Mounts Cache mounts는 build 동안 사용될 영속 package cache를 지정할 수 있도록 해준다. 영속 cache는 특히 package manager를 사용해서 package들을 설치하는 경우 유용하다. Package를 위한 영속 cache를 갖고 있으면 layer를 다시 build 하더라도 신규 혹은 변경된 package 들만 download 하면 된다. Cache mounts는 Dockerfile의 RUN 지시어와 함께 --mount flag를 사용하면 생성된다. Cache mount를 사용하기 위해서는 --mount=type=cache,target= 형식으로 사용하면 되는데, 에 con.. 2023. 6. 21. Docker image and layer - 출처: https://docs.docker.com/build/guide/intro/ Docker image에 대한 전반적인 이해를 위해서 docker 공식 guide document 중 Build with docker 의 내용이 좋아보여 차근차근 따라해보려고 한다. - Introduction Guide 문서 에서는 Go project와 Dockerfile을 통해서 설명하고 있다. (Go에 대한 지식은 필요 없다고 말하고 있다.) Docker desktop이나 Docker engine은 설치되어 있다고 가정한다. 예제 환경 구성을 위해 Github example repository(https://github.com/dockersamples/buildme.git)를 clone 한다. clone후 폴더 구.. 2023. 6. 18. 이펙티브 자바 - 유효기간이 지난 객체 참조 - 이 글은 Effective Java 를 기반으로 작성되었습니다. - Java 의 GC C, C++ 처럼 메모리 관리를 손수 하다가 Java 를 처음 사용해보면 편리함을 느끼게 된다. 메모리 관리를 손수하지 않아도 GC 가 알아서 해주기 때문이다. 그렇다며 메모리 관리는 전혀 신경쓰지 않아도 되는거 아닌가 라고 착각하게 될 수 있는데 이는 잘못된 생각이다. - 유효기간이 지난 객체 참조 자료구조를 젤 처음 접할 때 보통은 Queue 나 Stack 을 구현하게 된다. Stack 의 경우 배열을 선언해놓고 push, pop 연산시 index 를 증감시킨다. public class SimpleStack { private Object[] elements; private static final int DEFAU.. 2021. 9. 19. 이전 1 다음