안녕하세요 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입니다.🐧 지난 글에서는 파일 시스템에서 가장 중요한 두 요소인 File, Directory에 대해 알아봤었습니다. 이번 글에서는 파일 시스템 자체를 구현하는 방법에 대해 알아볼 예정인데요, 이전 글까지도 계속 등장한 inode부터 시작해서 다양한 파일 시스템의 개념에 대해 알아보도록 하겠습니다. 제가 공부할 때 참고하고 있는 책인 OSTEP에서는 Chapter 40 - File System Implemention 부분입니다! File System Implementation 이번 글에서는 VSFS(the Very Simple File System)으로 알려진 간단한 파일 시스템을 구현하는 방법을 알아볼 예정입니다. VSFS는 UNIX의 여러 가지 파일 시스템을 단순화한 것으로 이를 공..
안녕하세요 Pingu입니다!🐧 지난 글에서는 하드 디스크를 잘 동작하도록 관리하는 Hard Disk Drive에 대해 알아봤었습니다. 이번 글에서는 비교적 느린 디스크를 더 빠르게, 크기도 더 크게, 데이터의 신뢰성도 유지할 수 있도록 만들어주는 Redundant Arrays of Inexpensive Disks(RAID)에 대해 알아보려고 합니다. 제가 공부할 때 참고하고 있는 책인 OSTEP책 에선 Chapter 38 - Redundant Arrays of Inexpensive Disks(RAID) 부분 입니다! Redundant Arrays of Inexpensice Disks (RAID) 더 빠른 디스크, 더 큰 용량을 가진 디스크, 데이터 신뢰도가 높은 디스크가 있다면 그 디스크를 사용하지 않을..
안녕하세요 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입니다! 🐧 지난 글인 Concurrency의 문제점을 알아보는 글을 마지막으로 Concurrency(동시성)에 대해 알아봤고 이번 글부터는 Persistence(영속성)에 대해 알아보려고 합니다. 영속성이라는 것은 데이터를 영구적으로 저장할 수 있는 것을 말하며 이를 위한 방법들을 알아볼 예정입니다. 영속성 단원에서는 I/O Device, 파일 시스템, Disk와 같은 데이터를 저장하기 위해 OS가 하는 일에 대해 알아볼 거예요! 이번 글에서는 그중에서도 파일 입출력 장치 (I/O Device)에 대해 알아보려고 합니다. 제가 공부할 때 참고하고 있는 OSTEP 책에서는 Chapter 36 - I/O Devices 부분 입니다! I/O Devices 이번 글에서는 I/O Device..
안녕하세요 Pingu입니다. 🐧 지난 글에서는 동시성을 구현하기 위해 사용했던 Lock과 condition variable(조건 변수) 역할을 한 번에 할 수 있는 semaphore(세마포어)에 대해 알아봤습니다. 세마포어를 활용하여 여러 가지 유명한 문제들을 해결해봤었는데요, 이렇게 동시성을 잘 구현할 수 있게 되었지만 동시성 프로그래밍에는 문제점이 존재합니다. 바로 Deadlock(교착 상태)라고 불리는 문제인데요, 이번 글에서는 교착 상태에 대해 알아보고 어떻게 예방하고 해결할 수 있는지에 대해 알아보도록 하겠습니다. 제가 공부할 때 참고하고 있는 책인 OSTEP에서는 Chapter 32 - Concurrecny Bug 부분입니다! Common Concurrency Problems 동시성은 여러개의..
안녕하세요 Pingu입니다. 지난 글에서는 Concurrency(동시성)에서 Synchronization(동기화)를 구현하기 위한 condition variable(조건 변수)에 대해 알아봤었습니다. 동기화란 스레드 간에 실행 순서를 정해 줄 수 있도록 하는 것으로 유명한 producer/consumer 문제로 적용해서 알아봤었습니다. 이번 글에서는 그 유명한 semaphore에 대해 알아보고 이를 producer/consumer, reader/writer, dining Philosophers(식사하는 철학자 문제)와 같은 유명한 문제들에 적용해보며 실제로 좋은지에 대해 알아보려고 합니다. Semaphore는 간단하게 말하면 지금까지 알아본 Lock, condition variable의 역할을 모두 할 ..
안녕하세요! Pingu입니다. 오늘도 열심히 OS에 대해 알아보겠습니다! 지난 글에서는 일반적인 자료구조에 Lock을 상호 배제 구현하여 thread safety 하게 만드는 방법에 대해 알아봤었습니다. 여러 가지 자료구조에 대해 lock으로 상호 배제를 구현하고 발생하는 문제점들을 해결했었죠! 이번 글에서는 Condition Variable(상태 변수)라는 것을 추가하여 lock을 사용할 때 상호 배제만 고려하는 것이 아닌 synchronization(동기화) 즉 스레드들의 실행 순서 관계를 관리하는 방법을 알아보려고 합니다. 제가 공부할 때 참고하고 있는 OSTEP 책에서는 Chapter 30 - Condition Variables 부분 입니다! Conditional Variables 지난 글까지는 ..
- Total
- Today
- Yesterday
- 자료구조
- BFS
- Combine
- 스위프트
- 백준
- 아이폰
- 테이블뷰
- 코테
- 동시성
- dfs
- 문법
- operator
- 코딩테스트
- 알고리즘
- OS
- System
- Publisher
- operating
- 앱개발
- document
- mac
- Swift
- pattern
- IOS
- design
- OSTEP
- DP
- Xcode
- Apple
- 프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |