ㅈㄱㅈ/ㅈㅊㄱ

운영체제(OS) 핵심 용어 정리

SBP 2025. 4. 17. 14:39
운영체제(OS) 핵심 용어 정리

🖥️ 운영체제(OS) 핵심 용어 정리

운영체제는 사용자가 컴퓨터를 쉽게 다룰 수 있도록 돕는 동시에, 컴퓨터 하드웨어 자원을 효율적으로 관리하는 핵심 소프트웨어입니다.
본 문서는 운영체제의 주요 개념과 용어를 체계적으로 정리합니다.


1. 프로세스와 스레드 (Process & Thread) ⚙️

프로세스 (Process)
실행 중인 프로그램을 의미하는 단위입니다. 자신만의 고유한 메모리 공간(Code, Data, Stack, Heap)을 할당받습니다.
스레드 (Thread)
프로세스 내에서 실행되는 흐름의 단위입니다. 하나의 프로세스는 여러 개의 스레드를 가질 수 있으며, 스레드들은 프로세스의 자원(Code, Data, Heap)을 공유합니다. Stack은 각 스레드마다 별도로 할당됩니다.
PCB (Process Control Block)
운영체제가 각 프로세스를 관리하기 위해 필요한 정보를 담고 있는 자료구조입니다. 프로세스 상태, 프로세스 ID(PID), 프로그램 카운터(PC), 레지스터 값, 메모리 제한 등의 정보를 포함합니다.
문맥 교환 (Context Switching)
CPU가 현재 실행 중인 프로세스(또는 스레드)의 상태(문맥)를 PCB에 저장하고, 다음 실행할 프로세스의 상태를 불러와 CPU를 할당하는 과정입니다. 이 과정에서 오버헤드가 발생합니다.
스케줄링 (Scheduling)
어떤 프로세스에게 CPU를 할당할지 결정하는 정책입니다. CPU 이용률, 처리량, 응답 시간 등을 고려하여 효율적으로 자원을 배분하는 것을 목표로 합니다.
프로세스 상태 (Process States)
프로세스가 생성되어 소멸하기까지 거치는 여러 상태를 말합니다.
  • 생성 (New): 프로세스가 생성 중인 상태
  • 준비 (Ready): CPU를 할당받기를 기다리는 상태
  • 실행 (Running): CPU를 할당받아 명령을 수행 중인 상태
  • 대기 (Waiting/Blocked): 입출력(I/O) 완료 등 특정 이벤트를 기다리는 상태
  • 종료 (Terminated): 프로세스 실행이 완료된 상태

2. 메모리 관리 (Memory Management) 🧠

가상 메모리 (Virtual Memory)
실제 물리 메모리(RAM)보다 더 큰 메모리 공간을 프로세스에게 제공하는 기술입니다. 이를 통해 각 프로세스는 자신만의 독립적인 메모리 공간을 가진 것처럼 동작하며, 메모리 관리의 효율성을 높입니다.
페이징 (Paging)
가상 메모리를 페이지(Page)라는 고정된 크기의 블록으로 나누고, 물리 메모리를 프레임(Frame)이라는 페이지와 동일한 크기의 블록으로 나누어 관리하는 기법입니다. 외부 단편화를 해결할 수 있습니다.
세그먼테이션 (Segmentation)
가상 메모리를 코드, 데이터, 스택 등 의미 있는 논리적 단위인 세그먼트(Segment)로 나누어 관리하는 기법입니다. 내부 단편화가 발생할 수 있습니다.
페이지 부재 (Page Fault)
프로세스가 참조하려는 페이지가 현재 물리 메모리에 없을 때 발생하는 인터럽트입니다. 운영체제는 디스크에서 해당 페이지를 찾아 빈 프레임에 적재한 후, 프로세스를 다시 실행시킵니다.
스와핑 (Swapping)
메모리가 부족할 경우, 현재 사용되지 않는 프로세스를 일시적으로 보조기억장치(디스크)로 옮겨 메모리 공간을 확보하고, 필요할 때 다시 메모리로 불러오는 기법입니다.

3. 동기화 및 교착 상태 (Synchronization & Deadlock) 🚦

임계 구역 (Critical Section)
여러 프로세스(또는 스레드)가 동시에 접근해서는 안 되는 공유 자원에 접근하는 코드 영역입니다.
상호 배제 (Mutual Exclusion)
한 프로세스가 임계 구역에 들어가 있다면, 다른 프로세스는 들어갈 수 없도록 막는 것을 의미합니다. 이를 구현하기 위해 뮤텍스, 세마포어 등의 기법이 사용됩니다.
뮤텍스 (Mutex)
임계 구역에 하나의 스레드만 들어갈 수 있도록 하는 동기화 도구입니다. 락(Lock)을 획득한 스레드만이 임계 구역에 접근할 수 있습니다.
세마포어 (Semaphore)
지정된 개수만큼의 스레드가 공유 자원에 동시에 접근할 수 있도록 하는 동기화 도구입니다. 허용 가능한 자원의 수를 카운팅하며, 카운트가 0이 되면 다른 스레드는 대기해야 합니다.
교착 상태 (Deadlock)
두 개 이상의 프로세스들이 서로가 가진 자원을 기다리며 무한정 대기하는 상태입니다. 상호 배제, 점유와 대기, 비선점, 환형 대기라는 4가지 조건이 모두 충족될 때 발생할 수 있습니다.

4. 파일 시스템 및 입출력 (File System & I/O) 💾

파일 시스템 (File System)
보조기억장치에 저장되는 파일들을 체계적으로 관리하고 쉽게 접근할 수 있도록 하는 시스템입니다. (예: FAT32, NTFS, ext4, APFS)
인터럽트 (Interrupt)
CPU가 프로그램을 실행하고 있을 때, 입출력 장치 등 외부에서 예외 상황이 발생하여 처리가 필요함을 알리는 신호입니다. CPU는 하던 일을 멈추고 해당 인터럽트를 처리합니다.
DMA (Direct Memory Access)
CPU의 개입 없이 입출력 장치가 직접 메모리에 접근하여 데이터를 전송하는 방식입니다. 이를 통해 CPU는 다른 작업을 계속할 수 있어 시스템 효율성이 향상됩니다.
커널 (Kernel)과 시스템 콜 (System Call)
커널은 운영체제의 가장 핵심적인 부분으로, 자원 관리를 책임집니다. 일반 응용 프로그램이 하드웨어 자원에 직접 접근하는 것은 금지되어 있으며, 시스템 콜이라는 인터페이스를 통해 커널에게 서비스를 요청해야 합니다.