🚦 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..
💾 메모리 계층
·
Computer Science/Operating System
컴퓨터의 '저장 공간'은 한 가지 종류가 아니라, 성능과 용도에 따라 여러 단계(계층)로 이루어져 있습니다. 이 계층 구조는 레지스터, 캐시, 메모리, 저장장치로 구성됩니다.레지스터 : CPU 칩 내부에 있는 아주 작은 '초고속 임시 보관함'입니다. 휘발성이고 속도가 가장 빠르지만, 용량은 가장 적습니다.캐시 : L1, L2 캐시 등을 말하며, CPU와 메모리 사이의 속도를 중재합니다. 휘발성이고 속도는 매우 빠르지만, 용량은 여전히 적습니다. (L3 캐시도 있습니다.)주기억장치 : 우리가 흔히 말하는 RAM(램)입니다. 휘발성이며 속도와 용량은 중간 정도입니다.보조기억장치 : HDD(하드디스크)나 SSD 같은 '저장 장치'입니다. 비휘발성(전원이 꺼져도 안 지워짐)이고 속도는 느리지만, 용량은 아주 큽..
🧱 컴퓨터의 요소
·
Computer Science/Operating System
컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등 여러 중요한 부품들로 조립되어 있습니다.🧠 CPU (Central Processing Unit)컴퓨터의 '두뇌'입니다. 산술논리연산장치(ALU), 제어장치(CU), 레지스터로 이루어져 있습니다. 하는 일은 메모리에 저장된 명령어를 가져와 해석하고 실행하는 것입니다. 관리자 역할을 하는 운영체제(커널)가 프로그램을 메모리에 올려 '작업(프로세스)'으로 만들어주면, CPU가 이 작업을 실제로 처리합니다. 중간중간 '인터럽트'라는 신호에 따라 하던 일을 잠시 멈추고 다른 일을 하기도 합니다.🛂 제어장치 (CU, Control Unit)CPU 안에서 '지휘자'나 '교통경찰' 역할을 하는 부품입니다. 컴퓨터의 다른 부품들(입출력장치 등..
🧑‍⚖️ 운영체제의 역할과 구조
·
Computer Science/Operating System
운영체제(OS, Operating System)는 우리가 컴퓨터를 편리하게 쓸 수 있게 도와주는 프로그램입니다. 컴퓨터의 한정된 부품(메모리, CPU 등)을 여러 프로그램이 싸우지 않고 효율적으로 나눠 쓸 수 있게 관리해줍니다. 운영체제와 비슷하지만, 나중에 다른 프로그램을 추가로 설치할 수 없는 내장형 소프트웨어를 펌웨어(firmware)라고 부릅니다. (예: TV, 냉장고 안의 프로그램)⚙️ 운영체제의 역할CPU 스케줄링과 프로세스 관리: 컴퓨터의 '뇌'인 CPU를 어떤 프로그램(프로세스)이 먼저 쓸지 순서를 정해주고, 프로그램이 시작하고 끝나는 것을 관리하며 필요한 자원을 나눠주고 회수합니다.메모리 관리: '작업대'인 메모리를 어떤 프로그램에 얼마나 나눠줄지 관리합니다.디스크 파일 관리: '서랍장'..