🚦 CPU 스케줄링 알고리즘
·
Computer Science/Operating System
CPU 스케줄러는 CPU 스케줄링 알고리즘에 따라, 어떤 프로세스(의 스레드)에게 CPU를 할당할지 결정합니다. 프로그램이 실행될 때, CPU 스케줄링 알고리즘은 어떤 프로그램에 CPU 소유권을 줄 것인지 결정합니다. 이 알고리즘의 목표는 다음과 같습니다.CPU 이용률은 높게처리량 (주어진 시간에 많은 일을 처리)은 많게대기 시간 (준비 큐에서 기다리는 시간)은 짧게응답 시간 (작업 요청 후 첫 반응까지의 시간)은 짧게✋ 비선점형 방식(non-preemptive)프로세스가 스스로 CPU 소유권을 포기할 때까지 (예: I/O 작업 요청) 기다리는 방식입니다. 운영체제가 강제로 프로세스를 중지시키지 않습니다. 따라서 문맥 교환(Context Switching)으로 인한 부하가 적습니다.🚶➡️ FCFS(Fi..
🧵 프로세스와 스레드
·
Computer Science/Operating System
프로세스는 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케줄링의 대상이 되는 작업이라는 용어와 거의 같은 의미로 쓰입니다. 스레드는 프로세스 내 작업의 흐름을 지칭합니다. 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행합니다.⚙️ 프로세스와 컴파일 저장🔄 전처리소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환합니다.🔧 컴파일러오류 처리, 코드 최적화 작업을 하며 어셈블리어로 변환합니다.🔢 어셈블러어셈블리어는 목적 코드(object code)로 변환됩니다. 이때 확장자는 운영체제마다 다른데 리눅스에서는 .o입니다.🔗 링커프로그램 내에 있는 라이브러리 함수 또는 다른 파일들과 ..
🗂️ 메모리 관리
·
Computer Science/Operating System
운영체제의 가장 중요한 임무 중 하나가 바로 '메모리 관리'입니다. 컴퓨터의 한정된 '작업 공간'(메모리)을 최대한 쥐어짜서 알뜰하게 활용해야 하거든요.🪄 가상 메모리(virtual memory)메모리 관리 기술 중 하나예요. 컴퓨터에 실제 꽂혀있는 메모리(RAM) 크기와 상관없이, 마치 엄청나게 큰 메모리가 있는 것처럼 프로그램을 '속여서' 편하게 쓰게 해주는 기술입니다.이때 프로그램이 사용하는 '가짜 주소'를 가상 주소(logical address)라고 하고, 실제 메모리(RAM) 부품 위의 '진짜 주소'를 실제 주소(physical address)라고 불러요. 가상 주소는 MMU(메모리 관리 장치)라는 하드웨어가 진짜 주소로 '번역'해줍니다. 덕분에 프로그래머는 '실제 4GB 램의 1,234,56..