안녕하세요 Pingu입니다.🐧 저난 글에서는 파일 시스템 중 Log-Structed File System(LFS)에 대해 알아봤었는데요, 이번 글에서는 요즘 많이 사용하는 Flash 기반 SSD에 대해 알아보려고 합니다! Flash 기반 SSD에는 LFS의 아이디어를 사용한다고 하는데요, 요즘 많이 사용하니까 좀 더 궁금하기도 하고 빨리 알아보도록 하겠습니다. 제가 공부할 때 참고하고 있는 책인 OSTEP에서는 Chapter 44 - Flash-based SSDs 부분 입니다! Flash-based SSDs 하드 디스크 드라이브만을 사용하다가 최근 새로운 형태의 저장 장치가 생겨났죠? 바로 Solid States Storage device(SSD)라고 하는 장치인데요, 하드 드라이브와는 다르게 데이터를 ..
안녕하세요 Pingu입니다. 지난 글에 이어 이번 글에서는 메모리를 사용할 때 고정크기로 할당하는 paging 기법의 문제점 중 하나인 page table로 인한 메모리 낭비를 줄이는 방법에 대해 알아봤습니다. 이번 글에서는 page table을 아예 Disk에 저장하여 메모리 낭비를 줄이는 방법을 알아보려고 합니다. 제가 공부할 때 참고하고 있는 책인 OSTEP에서는 Chapter 21 Swapping: Mechanisms 입니다! Beyond Physical Memory: Mechanisms 지금까지 알아본 모든 메모리 관리 방법들은 모두 메모리의 크기보다 작은 프로세스의 경우만 알아봤었습니다. 그렇다면 만약 메모리의 크기보다 큰 프로세스를 실행하려면 어떻게 해야 할까요? 이를 위해서는 컴퓨터 구조에..
안녕하세요 Pingu입니다~ 지난 글에서는 가변 크기로 메모리를 할당하여 사용할 때 발생하는 external fragmentation(외부 단편화)와 이를 최소화하기 위한 방법들, 여유 공간을 관리하는 방법에 대해 알아봤습니다. 이번 글에서는 가변 크기로 메모리를 사용하는 것이 아닌 고정 크기로 메모리를 사용하는 방법인 paging 방법에 대해 알아보려고 합니다. 제가 공부할 때 참고하고 있는 OSTEP 책에서는 Chapter 18 - Paging: Introduction 부분입니다! Paging: Introduction 메모리 공간을 관리하는 방법은 두 가지가 있습니다. 하나는 지금까지 알아본 segmentation을 사용한 가변 크기를 사용하는 방법이었습니다. 하지만 메모리 할당을 가변 크기로 할당 ..
안녕하세요 Pingu입니다! 지난 글에서 메모리를 사용하기 위한 Memory API들과 사용 시 주의점에 대해 알아보았는데요, 이번 글에서는 이제 본격적으로 메모리 가상화를 위한 메커니즘을 알아보려고 합니다. 이번 글에서 알아볼 메커니즘은 Address Translation(주소 변환)입니다. 제가 공부할 때 참고하고 있는 OSTEP 책에서는 Chapter 15 - Address Translation 입니다! Mechanism: Address Translation CPU 가상화를 공부할 때 배운 Limited Direct Execution에 대해 기억하시나요? 간단히 짚고 넘어가자면 프로그램을 하드웨어에서 직접 실행하도록 하는데 특정 시점(프로세스가 system call 발생 시, 타이머 인터럽트 발생 ..
안녕하세요 Pingu입니다. 지난 글에서 간단하게 메모리 가상화에 대해 알아보았는데요, 이번 글에서는 메모리를 사용하기 위한 Memory API들을 살펴보려고 합니다. 제가 공부할 때 참고하고 있는 OSTEP 책에서는 Chapter 14 - Memory API부분 입니다. Interlude: Memory API 이번 글에서는 UNIX 시스템에서 메모리 할당 인터페이스에 대해 알아보겠습니다! 제공되는 인터페이스는 몇 개 없기 때문에 빠르게 알아보겠습니다. 우선 이번 글에서 알아볼 인터페이스로 처리할 문제는 메모리 할당 및 관리 방법입니다. 또한 이러한 인터페이스를 사용할 때 실수할 수 있는 부분에 대해서도 알아보겠습니다. Types of Memory 실행할 때 메모리의 상태에 대해 기억하시나요? 기억이 나..
안녕하세요 Pingu입니다! 지난 글까지는 CPU 가상화에 대해 알아봤고 이번 글부터는 메모리 가상화에 대해 알아보려고 합니다! 이번 글에서는 메모리 가상화의 목적과 메모리 가상화를 위한 메모리 사용의 변화 과정, 주소 공간을 추상화하는 개념에 대해 알아보려고 합니다. 제가 공부할 때 참고하고 있는 OSTEP 책에선 Chapter 13 - Address Space부분입니다. The Abstraction: Address Spaces 그럼 초기의 컴퓨터에서 지금의 컴퓨터로 발전하는 과정을 메모리 사용 관점에서 살펴보도록 하겠습니다. Early Systems 메모리의 관점에서 보면 초기의 컴퓨터는 사용자에게 추상화를 지금처럼 많이 제공하지 않았습니다. 이게 초기 컴퓨터의 메모리 구성입니다. 위와 같이 OS와 ..
이번 글에서는 Swift 공식 문서의 25번째 단원인 Memory Safety을 읽고 정리한 글을 쓰려고 한다. Apple Swift Document 25단원 - Memory Safety Memory Safety Swift는 코드가 안전하게 동작할 수 있도록 노력한다. 예를 들어 Swift는 변수가 사용되기 전에 초기화되고 메모리가 할당 해제된 후엔 접근되지 않으며 Array의 인덱스에서 벗어나면 오류를 발생시킨다. Swift는 메모리의 위치를 수정하는 코드가 해당 메모리에 대한 독점 접근 권한을 갖도록 요구하여 동일한 메모리 영역의 접근들의 충돌을 방지한다. Swift는 메모리를 자동으로 관리해주기 때문에 메모리 접근에 대해 크게 생각할 필요는 없지만, 충돌이 발생할 수 있는 위치를 이해해야 코드를 잘..
- Total
- Today
- Yesterday
- 스위프트
- Xcode
- 동시성
- System
- DP
- 코테
- Swift
- 백준
- 프로그래밍
- IOS
- Publisher
- document
- Combine
- BFS
- 코딩테스트
- 알고리즘
- mac
- design
- 앱개발
- operating
- Apple
- dfs
- 테이블뷰
- 문법
- 자료구조
- operator
- pattern
- 아이폰
- OS
- OSTEP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |