CS/OS 4

[OS 공룡책] 6. Synchronization Tools, 7. Examples

동시 접근이 일어나면 항상 발생하는 문제가data inconsistency - 일관성 문제이다 JVM에서 공부했던 내용이라 간략하게만 언급하면스레드는 메모리를 공유하기 때문에 - 정확하게는 힙 영역을 공유하기 때문에 발생한다 c언어 예시이긴 하지만sum++이 결국 sum (현재 값을 읽고->증가된 값 쓰기) 로직이니까동시에 접근하는 값이 최신 값이 아니게 되면서 정합성이 깨지기 시작한다 자바 고급1에서 너무 많이했으니 패스 Race Condition한국어로 교착상태여러개의 프로세스가 하나의 값 수정을 할때 발생하는 문제 교착상태가 발생하는 코드 구역을 ciritical section이라고 부르는데세부적으로 코드 영역을 4가지로 구분한다 여기서는 아직 락을 배우지 않았지만 언급하겠다 - entry..

CS/OS 2026.01.09

[OS 공룡책] 5. CPU Scheduling

하나의 cpu를 왜 sharing 해야하는지는 처음에 알아봤다복습해보면전제는 cpu는 굉장히 빠르기 때문에 처리량에 비해 놀고 있는 상황이고,cpu utilization 즉 사용량을 극대화 하기 위해 여러가지 프로세스를 번갈아 가며 처리하기 위함 이는 기본적으로 IO bound가 cpu bound보다 훨씬 길기 때문에 발생한다 이제 cpu를 어떤 프로세스에게 어떻게 분배할것인가? 가 스케줄링이다좀더 구체적으로 ready queue에 들어가있는 프로세스들에게 어떻게 할당할것인가? 크게 두가지가 있는데- FIFO Queue- Priority Queue 그리고 구체적인 방법론을 이해하기 위해- Preemptive 선점형- Non-preemptive 비선점형개념이 나온다 이게 말이 좀 헷갈리는데주체는 cpu ..

CS/OS 2026.01.09

[OS 공룡책] 4. Thread & Concurrency

하나의 프로그램에서도 여러가지 동작을 동시에 수행할 수 있다는 점에서 스레드가 필요하다 spring을 배우면서 그렇게 했던 스레드풀, 스택영역 등..이 이제 여기와 관련된 내용 멀티스레딩을 하면 좋은점은- Responsiveness 연속적인 응답을 가능하게 한다- Resource Sharing 스레드는 프로세스와 달리 메모리 공간을 공유하기 때문에 shared-memory나 message passing 방식보다 훨씬 쉽다 좀더 정확히는 JVM 구조 공부했을 때처럼 힙영역, 메서드 영역을 공유한다고 보면 될 것 같다. (Thread Local같은 예외도 있다)- Economy 프로세스 생성보다 훨씬 저렴하다 context swithching보다 thread switching이 o..

CS/OS 2026.01.08

[OS 공룡책] 3. Process

OS를 다 까먹어서 복습해보기로.1, 2챕터는 인트로여서 정리하지는 않겠다 프로세스 너무 많이 했다.프로세스 : 실행중인 프로그램 이제 OS가 프로세스를 관리해주야 하는데 어떻게 관리할것인가? 가 관건이다 이를 이해하기 위해 프로세스의 생명주기를 이해해야 한다 프로세스 생명주기 - NEW 프로세스가 생성된 상태- RUNNING 프로세스가 CPU를 점유해서 해당 명령어를 CPU가 처리하고 있는 상태- WAITING CPU가 다른 처리를 하고 있어서 기다리고 있는 상태 EX) 프로세스1이 running 상태일때 프로세스2가 기다리고 있는 상황 EX2) IO를 일으켜서 점유를 반납하는 상황- READY 레디큐에서 CPU 점유를 대기하고 있는 상황 EX) IO를 일으키고 ..

CS/OS 2026.01.07