운영체제

    [운영체제] Contiguous Allocation과 MMU(Memory Management Unit)

    목차 🤔 MMU(Memory Management Unit)란? 💙 연속 할당(Contiguous allocation) 💜 Memory protection fault 🤔 MMU(Memory Management Unit)란? MMU(Memory Management Unit)는 CPU 내부에 탑재되어 논리 주소(Logical Address)를 실제 메모리의 물리 주소(Physical Address)로 변환해주는 하드웨어입니다. 이전 포스팅에 공부했듯이, Execution time binding은 실제로 명령어를 실행하는 시점에 주소 변환을 하는 Address binding 기법입니다. 위 그림에서는 0x198000번지에 저장되어 있는 data에 10을 저장하기 위해 store #98000, 10 명령어를 사용..

    [운영체제] Address Binding - Compile, Load, Execution time binding

    목차 🤔 Address binding이란? 🧡 Compile time binding 💛 Load time binding 💚 Execution time binding 🤔 Address binding이란? 우리가 프로그램을 실행시키면 프로세스가 되어 Main Memory라고 불리는 RAM에 올라갑니다. 이때 메모리 주소는 우리가 프로그래밍을 할 때 사용하던 주소 그대로일 수도 있고, 그렇지 않을 수도 있습니다. 그 이유는 CPU가 만들어내는 가상의 주소인 Logical address(논리 주소)와 실제 메모리 상의 특정 번지를 나타내는 Physical address(물리 주소)를 어떻게 관련지을 것인지에 대한 다양한 방법이 있기 때문입니다. 즉, 프로세스를 메모리에 할당시킬 때, 물리 주소를 언제(When)..

    [운영체제] CPU 스케쥴러 (Short-Term, Long-Term, Midium-Term 스케쥴러)

    목차 🤔 CPU 스케쥴러(Scheduler)란? 🖥 스케쥴러의 종류 🕛 단기 스케쥴러 (Short-Term Scheduler) 🕑 장기 스케쥴러 (Long-Term Scheduler) 🕗 중기 스케쥴러 (Midium-Term Scheduler) ⭐ 최신 OS의 스케쥴러 🤔 CPU 스케쥴러(Scheduler)란? CPU는 한 번에 하나의 프로세스만 실행할 수 있습니다. 멀티 프로세서라는 개념이 도입되기도 하였지만, 우리가 실행하고자 하는 프로그램의 개수에 비하면 턱없이 부족한 숫자입니다. 그렇기 때문에 운영체제는 Time Sharing을 통해 하나의 CPU에 대해 여러 프로세스를 비동기적(Concurrent)으로 실행시킵니다. 또한, CPU를 어떻게 하면 가장 효율적으로 사용할 수 있을지 매 순간 고민합니..