안녕하세요 Pingu입니다. 🐧 지난 글에서는 동시성을 구현하기 위해 사용했던 Lock과 condition variable(조건 변수) 역할을 한 번에 할 수 있는 semaphore(세마포어)에 대해 알아봤습니다. 세마포어를 활용하여 여러 가지 유명한 문제들을 해결해봤었는데요, 이렇게 동시성을 잘 구현할 수 있게 되었지만 동시성 프로그래밍에는 문제점이 존재합니다. 바로 Deadlock(교착 상태)라고 불리는 문제인데요, 이번 글에서는 교착 상태에 대해 알아보고 어떻게 예방하고 해결할 수 있는지에 대해 알아보도록 하겠습니다. 제가 공부할 때 참고하고 있는 책인 OSTEP에서는 Chapter 32 - Concurrecny Bug 부분입니다! Common Concurrency Problems 동시성은 여러개의..
안녕하세요 Pingu입니다! 지난 글에서는 동시성 프로그래밍에서 사용하는 스레드를 쉽게 사용할 수 있는 C언어 API들을 알아봤었는데요! 이번 글에서는 동시성 프로그래밍을 구현할 때 스레드를 사용하면 발생하는 문제점 중 하나인 공유 자원에 여러 스레드가 동시에 접근하려고 할 때 발생하는 문제를 해결하는 방법인 Lock에 대해 알아보려고 합니다. 제가 공부할 때 참고하는 책인 OSTEP에서는 Chapter 28 - Lock 부분 입니다! Locks 지난 글들에서 Concurrency(동시성)에 대해 알아봤을 때 문제점들이 몇 가지 존재했었습니다. 그중 하나는 명령을 원자적으로 (여기서 원자적이라는 말은 특정 작업을 수행할 때 시작을 했으면 끝나는 것을 보장하는 것을 말합니다.) 수행하고 싶지만 프로세서에는..
안녕하세요 Pingu입니다. 지난 글을 마지막으로 메모리 가상화를 끝내고! 드디어 OSTEP에서의 큰 2번째 단원인 Concurrency, 동시성에 대해 알아보려고 합니다. 이번 글에서는 동시성을 구현하기 위해 사용하는 Thread(스레드)라는 녀석에 대해 알아보려고 합니다. 스레드는 정말 자주 들어본 개념인 것 같은데 이번 글에서 한 번 구체적으로 무엇인지에 대해 알아보면 좋을 것 같아요. 제가 참고하고 있는 OSTEP 책에서는 Chapter 26 Concurrency and Threads 부분 입니다! Concurrency: An Introduction 지난 글까지는 OS가 수행하는 abstraction(추상화)에 대해 살펴봤습니다. CPU, 메모리를 각 프로세스마다 존재하는 것처럼 해주는 가상화에 ..
- Total
- Today
- Yesterday
- Publisher
- 프로그래밍
- 코테
- Combine
- mac
- BFS
- operator
- 앱개발
- OS
- 코딩테스트
- 스위프트
- document
- 동시성
- System
- 문법
- 알고리즘
- IOS
- Swift
- dfs
- operating
- DP
- Xcode
- design
- 테이블뷰
- 자료구조
- 백준
- pattern
- 아이폰
- Apple
- 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 |