안녕하세요 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입니다!🐧 지난 글에서는 FFS(Fast File System)에 대해 알아보며 파일 시스템의 성능을 어떻게 좋게 만들지에 대해 알아봤었는데요, 이번 글에서는 파일 시스템의 신뢰성을 위한 FSCK(File System ChecK)와 journaling에 대해 알아보려고 합니다. 제가 공부할 때 참고하고 있는 책인 OSTEP에서는 Chapter 42 - FSCK And Journaling 부분입니다! Crash Consistency: FSCK and Journaling 지금까지 알아본 파일 시스템은 추상화를 지원하기 위해 파일, 디렉터리, 이들의 정보를 담은 메타 데이터로 구성된다고 배웠습니다. 메모리와는 다르게 디스크나 SSD와 같은 저장 장치는 전원이 차단된 상태에서도 데이터를 유지..
안녕하세요 Pingu입니다! 🐧 저번 글에서는 VSFS(Very Simple File System)으로 알려진 파일 시스템을 구현하는 방법을 알아봤습니다. 그로 인해 아무런 정책 없이 파일 시스템을 구현하면 디스크 I/O가 너무 많이 발생하여 성능을 저하시킨다는 것을 알게 되었습니다. 이번 글에서는 이러한 성능 저하를 줄이는 정책들을 적용한 Fast File System에 대해 알아보려고 합니다. 이름에서부터 Fast라고 하니 얼마나 빠른지 기대가 됩니다.😆 제가 공부할 때 참고하고 있는 책인 OSTEP에서는 Chapter 41 - Fast File System 부분 입니다! Locality and The Fast File System UNIX 운영 체제가 처음 도입되었을 때 첫 번째 파일 시스템은 아래..
안녕하세요 Pingu입니다!🐧 지난 글에 이어 OS에서의 Persistence(영속성)에 대해 알아볼 예정이에요. 지난 글에서는 I/O Device에 대한 일반적인 개념에 대해 알아봤었는데요, 이번 글에서는 그러한 I/O Device 중 하나인 Hard Disk Drive에 대해 알아보도록 하겠습니다. 이름에서 알 수 있듯 하드웨어를 다루는 장치일 것 같죠? 제가 공부할 때 참고하고 있는 책인 OSTEP에서는 Chapter 37 - Hard Disk Drives 부분입니다. Hard Disk Drives 지난 글에서는 I/O Device에 대한 일반적인 개념을 알아보고 OS와 상호작용하는 방법을 알아봤었습니다. 이번글에서는 I/O Device들 중에서도 hard disk device에 대해 알아보려고 합..
안녕하세요! Pingu입니다. 오늘도 열심히 OS에 대해 알아보겠습니다! 지난 글에서는 일반적인 자료구조에 Lock을 상호 배제 구현하여 thread safety 하게 만드는 방법에 대해 알아봤었습니다. 여러 가지 자료구조에 대해 lock으로 상호 배제를 구현하고 발생하는 문제점들을 해결했었죠! 이번 글에서는 Condition Variable(상태 변수)라는 것을 추가하여 lock을 사용할 때 상호 배제만 고려하는 것이 아닌 synchronization(동기화) 즉 스레드들의 실행 순서 관계를 관리하는 방법을 알아보려고 합니다. 제가 공부할 때 참고하고 있는 OSTEP 책에서는 Chapter 30 - Condition Variables 부분 입니다! Conditional Variables 지난 글까지는 ..
안녕하세요 Pingu입니다. 지난 글에서는 Concurrency(동시성)을 구현할 때 필요한 mutual exclusion(상호 배제)을 구현하기 위한 lock이라는 개념에 대해 알아봤습니다. 이번 글에서는 지난번에 알아본 lock을 사용하여 queue, linked list, hash table 등의 자료구조에서 여러 개의 스레드가 동시에 접근하더라도 문제가 없도록 하는 방법에 대해 알아볼 예정입니다. 제가 공부할 때 참고하고 있는 OSTEP 책에서는 Chapter 29 - Locked Data Structure 입니다! Lock-based Concurrent Data Structures 자료구조에 여러개의여러 개의 스레드가 동시에 접근한다면 어떻게 될까요? 예를 들어 배열의 경우 특정 인덱스에 여러 ..
안녕하세요 Pingu입니다. 지난 글에 이어 이번 글에서는 메모리에 할당된 page들 중 어떤 page를 swap 공간으로 교체할 것인가에 대한 방법들과 여러 방법 중 어떤 방법으로 page를 교체하는 것이 효율적으로 paging 기법을 구현할 수 있을지에 대해 알아보려고 합니다! 제가 공부할 때 참고하고 있는 OSTEP 책에서는 Chapter 22 Swapping: Policies 부분입니다! Beyond Physical Memory: Policies 만약 메모리의 크기가 너무 커서 이번 글에서 알아볼 page 교체를 하지 않아도 모든 프로세스를 수행할 수 있다면 지금부터 알아볼 것들이 모두 필요가 없겠지만... 안타깝게도 실제로는 메모리가 부족한 상황이 자주 발생하기 때문에 page 교체 정책이 필요..
안녕하세요 Pingu입니다. 지난 글에 이어 이번 글에서는 메모리를 사용할 때 고정크기로 할당하는 paging 기법의 문제점 중 하나인 page table로 인한 메모리 낭비를 줄이는 방법에 대해 알아봤습니다. 이번 글에서는 page table을 아예 Disk에 저장하여 메모리 낭비를 줄이는 방법을 알아보려고 합니다. 제가 공부할 때 참고하고 있는 책인 OSTEP에서는 Chapter 21 Swapping: Mechanisms 입니다! Beyond Physical Memory: Mechanisms 지금까지 알아본 모든 메모리 관리 방법들은 모두 메모리의 크기보다 작은 프로세스의 경우만 알아봤었습니다. 그렇다면 만약 메모리의 크기보다 큰 프로세스를 실행하려면 어떻게 해야 할까요? 이를 위해서는 컴퓨터 구조에..
- Total
- Today
- Yesterday
- OS
- document
- dfs
- mac
- 백준
- 알고리즘
- 스위프트
- Combine
- Swift
- 동시성
- operating
- Apple
- Publisher
- DP
- BFS
- operator
- 아이폰
- 테이블뷰
- 프로그래밍
- design
- 코딩테스트
- 앱개발
- pattern
- 문법
- Xcode
- OSTEP
- 자료구조
- System
- IOS
- 코테
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |