suminworld

concept 14

Google Dev Challenge: C 언어 타입 변환의 함정

Google for Developers에서 제시한 C 언어 Dev Challenge 문제입니다. "코드는 단순하지만 동작은 그렇지 않다"는 주제로, signed와 unsigned int 비교 시 발생하는 예상치 못한 동작을 다룹니다.문제 소개Google for Developers의 Dev Challenge는 일상적인 버그의 원인을 탐구하는 시리즈입니다. 이번 문제는 얼핏 보기에 -1이 명백히 1보다 작아 보이지만, C 언어의 타입 변환 규칙이 개입하면서 예상과 다른 결과가 나오는 상황을 보여줍니다.코드 분석#include int main() { int a = -1; unsigned int b = 1; if (a C 표준의 타입 변환 규칙C 언어 표준에서는 usual arithmetic c..

concept 2025.11.25

[OS] 뮤텍스 + Block() 방식의 문제점 (Producer-Consumer Problem)

2025-2 운영체제론 강의안 Synchronization II : Semaphore and Condition Variable 일부 정리한 내용입니다 ʕ/·ᴥ·ʔ/1. 문제 상황 개요Producer-Consumer 문제는 생산자 스레드와 소비자 스레드가 하나의 공유 버퍼를 사용하는 상황을 말한다.뮤텍스(lock)는 공유 자원에 대한 상호 배제는 보장하지만, 버퍼가 비어 있거나 꽉 찬 상황에서의 "기다림"이나 "순서 제어"는 제공하지 못한다.이를 해결하기 위해 Block()/Unblock()으로 기다림을 구현하려 시도한 버전이 바로 6페이지의 코드이다.2. 사용된 코드 구조# insert (생산자):if (count == N) Block();buf[++rear % N] = item;Acquire(&l..

concept 2025.11.17

[운영체제론] Constant Time Coalescing (Case 1-4) 정리

2025-2 운영체제론 dynamic memory allocation 일부 Case 1: 양쪽 블록 모두 할당됨Constant Time Coalescing (Case 1)m1 1m1 1n 1n 1m2 1m2 1상수 시간 병합 – 경우 1 (Case 1)표기m1이전 블록의 크기 (size of previous block)n현재 해제되는 블록의 크기 (size of block being freed)m2다음 블록의 크기 (size of next block)1할당 상태 (allocated bit = 1)0free 상태 (free bit = 0)즉, "m1 1"은 "크기 = m1, 할당됨(1)"이란 뜻입니다. 각 블록은 [크기 / 할당여부] 구조의 헤더(혹은 푸터)로 표현됩니다.Case 1의 의미양 옆 블록(이전..

concept 2025.11.08

tmux (수정 예정)

운영체제론 syscall lab 과제 하는데 생각보다 환경설정부터 자잘한 이슈가 너무 많아서ㅜ결국 새 가상머신에서 커널 빌드 하는데 새벽 내내 돌리고 이런저런 자잘한 이슈가 많은데 이동할 일이 있을때 유용하게 사용하였던 tmux 까먹을까봐 명령어 정리해두려고 합니당 과제 기한은 열흘 남았지만 그래도 오류 나는거 후딱 헤치우는게 우선일 것 같아서 휘갈기고 다음에 깔끔하게 정리해두겠습니당 ʕ •ᴥ•ʔゝ tmux 터미널 멀티플렉서(terminal multiplexer): 한 물리적인 터미널 안에서 여러 개의 가상 터미널 세션을 만들어 주는 도구 구조┌─────────────────────┐│ macOS 터미널 (VSCode SSH 등) │ ← 내 창 (Client)└────────┬────────────┘..

concept 2025.11.03

[운영체제론] 가상 메모리

2025-2 운영체제론 수업 중간고사 대비하면서 강의안 기준으로 정리한 내용입니당 φʕ•ᴥ•oʔ시험은 끝났지만 요새 오전 5시에도 잠이 안와서 수면패턴 똥망한김에 정리해보았습니다🫠주의사항> 이 글의 비트 분해 및 주소 계산은 강의 예제(12-bit VA, 9-bit PA, 32B 페이지, 16-line 2-way 캐시)를 기준으로 작성되었습니다.실제 시스템에서는 운영체제(OS) 와 하드웨어 아키텍처, 페이지 크기, 캐시 구성, 메모리 관리 정책 등에 따라 주소 비트의 분할(tag/index/offset) 및 계산 결과가 달라질 수 있습니다!1. Virtual Memory 기본 개념Virtual Memory프로세스마다 독립된 주소 공간을 제공하여, 실제 RAM보다 큰 메모리를 쓸 수 있게 하는 논리적 메..

concept 2025.10.31