GoWoong의 개발 블로그
close
프로필 배경
프로필 로고

GoWoong의 개발 블로그

  • 분류 전체보기 (219) N
    • 크래프톤 정글 (83)
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (51) N
      • CS (15)
      • OS (33) N
      • 아키텍처 (2)
    • 백엔드 개발 (1)
      • 파이썬 (0)
      • 자바 스프링 (1)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 앱 개발 (5)
      • Flutter (5)
    • AI & LLM (1)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
    • 사이드프로젝트 (7)
  • 홈
  • 자소서
  • 포트폴리오
  • 이력서

[OSTEP] 스터디 13주차 - 병행성 3 Part.2

앞선 학습에서 락(Lock), 컨디션 변수(Condition Variable), 세마포어(Semaphore) 같은 도구를 배웠다. 하지만 도구를 안다고 해서 결함 없는 프로그램을 짤 수 있는 것은 아니다. 이번 포스팅에서는 실제 상용 소프트웨어에서 빈번하게 발생하는 동시성 버그의 유형과, 쓰레드(Thread)의 대안으로 제시된 이벤트(Event) 기반 동시성 모델이 가진 현실적인 어려움에 대해 OSTEP 책 내용을 바탕으로 깊이 있게 파고든다.1. 흔한 동시성 문제들 (Common Concurrency Problems)Lu 등의 연구진이 MySQL, Apache, Mozilla, OpenOffice와 같은 대형 오픈소스 소프트웨어의 버그를 분석한 결과, 동시성 버그는 크게 비교착 상태(Non-Deadlo..

  • format_list_bulleted Deep Dive/OS
  • · 2025. 11. 25.
  • textsms

[OSTEP] 스터디 12주차 - 병행성 3 Part.1

운영체제에서 쓰레드를 다룰 때 우리가 해결해야 할 문제는 크게 두 가지다.상호 배제(Mutual Exclusion): 한 번에 하나의 쓰레드만 임계 영역(Critical Section)에 들어가게 하는 것. (주로 Lock으로 해결)순서 정렬(Ordering): 쓰레드 A가 작업을 마친 후에 쓰레드 B가 실행되어야 하는 것처럼, 작업의 순서를 조율하는 것.Lock만으로는 두 번째 문제인 '순서 정렬'을 효율적으로 해결하기 어렵다. 부모 쓰레드가 자식 쓰레드가 끝날 때까지 기다려야 하는 경우를 생각해보자. 공유 변수를 계속 확인하며 무한 루프를 도는 방식(Spinning)은 CPU 자원을 심각하게 낭비한다. 이때 필요한 것이 컨디션 변수와 세마포어다.1. 컨디션 변수 (Condition Variables)..

  • format_list_bulleted Deep Dive/OS
  • · 2025. 11. 25.
  • textsms

[OSTEP] 스터디 11주차 - 병행성 2 Part.2

락 기반의 병행 자료 구조병행 자료 구조(Concurrent Data Structures)란 다수의 스레드가 동시에 접근할 수 있는 자료 구조를 말한다. 이러한 자료 구조는 병행성(Concurrency) 문제를 해결하기 위해 락(Lock)을 사용하여 데이터의 일관성(Consistency)을 유지한다. 락 기반의 병행 자료 구조는 스레드 간의 데이터 접근 충돌을 방지하고, 데이터의 정확성을 보장하는 데 매우 중요한 역할을 한다.병행성이란 여러 작업이 동시에 진행되는 것을 말하며, 멀티스레드 환경에서 흔히 발생한다. 이때 공유 자원에 대한 접근을 적절히 제어하지 않으면 데이터 불일치, 데이터 손상 등의 문제가 발생할 수 있다. 락은 이러한 문제를 해결하기 위해 사용되는 동기화 메커니즘으로, 한 번에 하나의 ..

  • format_list_bulleted Deep Dive/OS
  • · 2025. 11. 11.
  • textsms

[OSTEP] 스터디 11주차 - 병행성 2 Part.1

락(Lock)은 코드의 특정 영역을 감싸서 한 순간에 오로지 한 스레드만 이 영역에 접근할 수 있도록 해주는 동기화 메커니즘이다. 즉, 락은 여러 스레드가 공유 자원에 동시에 접근하는 것을 제어하여 상호 배제(Mutual Exclusion)를 보장한다. 이 락이 없으면 멀티 스레드 프로그램에서 경쟁 조건(Race Condition)이 발생하여 예상치 못한 결과를 초래할 수 있다.락의 기본 개념예를 들어, 다음과 같은 공유 자원에 대한 연산이 있다고 가정해본다.balance = balance + 1;이 코드를 임계 영역(Critical Section)이라고 하며, 락을 사용하여 다음과 같이 보호할 수 있다.lock_t mutex; // 전역 변수로 선언된 락...lock(&mutex);balance = b..

  • format_list_bulleted Deep Dive/OS
  • · 2025. 11. 11.
  • textsms
[OSTEP] 스터디 10주차 - 병행성 1

[OSTEP] 스터디 10주차 - 병행성 1

운영체제는 하나의 물리적 CPU를 다수의 가상 CPU로 확장하여 마치 여러 개의 프로그램이 동시에 실행되는 것처럼 보이게 만든다. 이를 통해 사용자는 컴퓨터가 동시에 여러 작업을 수행하는 것처럼 느끼게 된다.운영체제는 또한 각 프로세스가 독립적으로 많은 가상 메모리를 가지고 있는 것처럼 보이게 만든다. 이는 주소공간이라는 개념을 통해 구현된다. 주소공간은 각 프로그램이 메모리의 어느 부분을 사용할 수 있는지를 나타내는 가상의 메모리 공간이다. 운영체제는 물리 메모리를 여러 개의 주소 공간이 번갈아 가며 사용할 수 있도록 관리한다. 이를 통해 각 프로그램은 마치 자신만의 메모리를 가지고 있는 것 같은 독립성을 가진다.병행성: 개요쓰레드의 개념전통적인 프로그램은 한순간에 하나의 명령만을 실행한다. 이를 단일..

  • format_list_bulleted Deep Dive/OS
  • · 2025. 11. 6.
  • textsms
[OSTEP] 스터디 9주차 - 메모리 가상화 4

[OSTEP] 스터디 9주차 - 메모리 가상화 4

이 전 시간에는 세그멘테이션에 대해 알아봤다. 이 방법은 공간 관리 문제를 해결하는 방법 중 하나이지만 공간 자체가 단편화될 수 있고, 할당이 점점 더 어려워진다는 문제를 가지고 있다.그래서 이번에 배울 것은 공간을 동일한 크기의 조각으로 분할하는 페이징에 대해 알아보겠다. 이 방식에서는 프로세스의 주소 공간을 고정 크기의 단위인 페이지로 나눈고 이에 상응하여 물리 메모리도 페이지 프레임이라고 불리는 고정 크기의 슬롯 배열로 간주한다. 각 페이지 프레임은 하나의 가상 메모리 페이지를 저장할 수 있다.간단한 예제 및 개요위 그림은 총 64바이트이며 4개의 16바이트 페이지로 구성된 주소 공간의 예를 보여준다. 물리 메모리는 고정 크기의 슬롯들로 구성된다.이 예시는 8개의 페이지 프레임으로 이루어진 128바..

  • format_list_bulleted Deep Dive/OS
  • · 2025. 10. 27.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • ···
  • 37
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (219) N
    • 크래프톤 정글 (83)
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (51) N
      • CS (15)
      • OS (33) N
      • 아키텍처 (2)
    • 백엔드 개발 (1)
      • 파이썬 (0)
      • 자바 스프링 (1)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 앱 개발 (5)
      • Flutter (5)
    • AI & LLM (1)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
    • 사이드프로젝트 (7)
최근 글
인기 글
최근 댓글
태그
  • #saa-c03
  • #AWS
  • #AWSKRUG
  • #CLF-C01
  • #Cloud Practitioner
  • #aws #iot
  • #AWS Community Day
  • #AWS 자격증
  • #IOT
  • #serverless
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바