OS (7) 썸네일형 리스트형 [혼공컴운] Chapter 13. 교착상태 Deadlock ⚠️ 교착상태 DeadlockDining philosophers problem 식사하는 철학자 문제'식사하는 철학자 문제'는 교착 상태가 어떤 상황에서 왜 발생하는지, 나아가 교착 상태를 어떻게 해결할 수 있는지를 엿볼 수 있는 가상의 문제 시나리오이다. 동그란 원탁에 다섯 명의 철학자가 앉아 있다고 가정. 이 철학자들 앞에는 맛있는 식사가 있고, 철학자들 사이사이에 식사에 필요한 포크가 있다. 그리고 철학자들 앞에 있는 식사는 두 개의 포크로 먹을 수 있는 음식이라 가정한다. 그리고 철학자들은 아래와 같은 순서로 식사를 한다: 1. 계속 생각을 하다가 왼쪽 포크가 사용 가능하면 집어든다. 2. 계속 생각을 하다가 오른쪽 포크가 사용 가능하면 집어든다. 3. 왼쪽과 오른쪽 포크를 모두 집어들면 정.. 2026. 4. 24. 21:14 [혼공컴운] Chapter 12. 프로세스 동기화 / Mutex Lock, Semaphore, Monitor 🍀 동기화 SynchornizationSynchornization? 프로세스들의 수행 시기를 맞추는 것 동시에 접근해서는 안되는 자원에 동시에 접근하지 않도록 하거나, 프로세스를 올바른 순서대로 실행하게 하는 것. 협력하여 실행되는 프로세스들의 실행 순서와 자원의 일관성을 보장하기 위해 사용. *thread 즉 실행의 흐름을 갖는 모든 것은 동기화의 대상이다. 즉, 동기화에 관련된 내용은 thread에도 동일하게 적용되는 내용이다. ① 실행 순서 제어를 위한 동기화 Book.txt 파일에 값을 저장하는 "Writer 프로세스"와 Book.txt 파일에 저장된 값을 읽는 "Reader 프로세스"가 있다고 가정.두 프로세스는 아무 순서대로 실행되어서는 안된다. Reader 프로세스는 Writer 프로세스.. 2026. 4. 17. 20:40 [혼공컴운] Chapter 11. CPU 스케줄링 / CPU Scheduling Algorithm 11. CPU Scheduling🦝 CPU Scheduling 개요CPU Scheduling? 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것CPU를 제대로 배분하지 못하면 프로세스들 간에 무질서한 상태가 발생할 수도 있다. Process state가 Ready(당장이라도 실행할 수 있는)인 프로세스들은 다른 우선순위를 갖는다. 즉, 우선순위가 높은 프로세스란 빨리 처리해야 하는 프로세스들이며, 예시로는 입출력 작업이 많은 프로세스가 있다. 왜? 입출력 작업이 많은 프로세스를 먼저 실행하는 것이 왜 더 효율적일까?이유를 알기 위해서는 일단 프로세스 종류에 대해 알아보자.프로세스 종류마다 입출력장치를 이용하는 시간과 CPU를 이용하는 시간의 양에는 차이가 있다. 입출력 집중 프로세.. 2026. 4. 12. 01:16 [노트] CPU Scheduling 2026. 4. 12. 00:33 [혼공컴운] Chapter 09-10. 운영체제, Process와 Thread 09. 운영체제 시작하기운영체제는 컴퓨터 하드웨어(CPU, 메모리, 저장장치 등)를 효율적으로 관리하고, 응용 프로그램이 동작할 수 있는 기반 환경을 제공하는 가장 핵심적인 시스템 소프트웨어. 운영체제 또한 프로그램이기 때문에 메모리에 저장되지만, 메모리 내 kernel space에 따로 저장되서 실행되고 나머지 사용자가 이용하는 응용 프로그램이 저장되는 영역을 user space라고 한다. 운영체제는 kernel 영역에 저장되어 실행할 프로그램을 메모리에 적재하고, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리 자원을 관리한다. 또, 어느 한 프로그램이 CPU를 독점하지 않도록 최대한 공정하게 여러 프로그램에 CPU 자원을 할당한다. 그리고 운영체제는 동시에 두 개의 프로그.. 2026. 3. 25. 20:42 [탐구] Interrupt란? 개념부터 운영체제에서의 역할까지 Interrupt란 뭘까? 그냥 중단? 컴퓨터공학적 시선으로 Interrupt?뭘 어떻게 중단? 왜?? 자세히 알아보자.🫧 InterruptCPU의 흐름을 잠시 멈추고, 긴급하거나 필요한 작업을 먼저 처리하게 만드는 신호. Synchronous Interrupt현재 실행 중인 명령어 때문에 발생, 예측 가능Asynchronous InterruptCPU 실행과 무관하게 외부에서 갑자기 발생, 예측 불가능 InterruptHardware InterruptExceptiontrapfaultabort Hardware Interrupt하드웨어 인터럽트를 보통 interrupt라고 부른다. 하드웨어 인터럽트는 보통 키보드나 마우스와 같은 외부 I/O 장치가 발생시킨다. 하드웨어 디바이스로부터 어떤 이벤트가 발생해서.. 2026. 3. 23. 17:01 [탐구] Linker and Loader + Static and Dynamic Linking Source Program이 어떻게 실행되는지 보여주는 다이어그램이다. 소스 프로그램(.c)은 컴파일러에 의해 오브젝트 파일(.o)로 변환된다. 컴파일된 오브젝트 파일(.o)은 다른 오브젝트 파일 (.o)들과 링커에 의해 하나의 실행가능한 파일(.exe)을 만든다. 링커에 의해 만들어진 하나의 실행가능한 파일은 로더에 의해 파일을 메모리에 올려 프로그램을 실행시킨다. 이 과정 중 Linker와 Loader에 집중하여 살펴볼 예정이다. 추가적으로 정적과 동적 Linking에 대해서도 공부해보자. 📘 LinkerLinker combines compiled object files and libraries into a single executable. 컴파일된 오브젝트 파일과 다른 오브젝트 파일 및 라이브러.. 2026. 3. 23. 00:33 이전 1 다음