1. 프로세스 관리 (Process Management)
ㅇ 프로세스 (Process)
- 실행 중인 프로그램으로, 코드,데이터,스택,힙 등의 메모리 영역을 가짐
ㅇ 스레드 (Thread)
- 프로세스 내에서 실행되는 독립적인 실행 흐름으로, 같은 메모리 공간을 공유함
ㅇ 멀티스레딩 (Multithreading)
- 하나의 프로세스가 여러 개의 스레드를 실행하는 방식
ㅇ 멀티태스킹 (Multitasking)
- 여러 개의 프로세스를 동시에 실행하는 것처럼 보이게 하는 기법
ㅇ 문맥 교환 (Context Switching)
- 실행 중인 프로세스의 상태 저장 후 다른 프로세스로의 전환 작업
ㅇ 시분할 시스템 (Time-sharing System)
- 여러 프로세스가 CPU 시간을 분할, 번갈아 실행되는 시스템
ㅇ 교착 상태 (Deadlock)
- 2 이상의 프로세스가 서로 자원을 점유하고 있어 영원히 멈추는 상태
ㅇ 상호 배제 (Mutual Exclusion, Mutex)
- 여러 프로세스가 공유 자원에 동시 접근을 못하게 하는 기법 ☞ 경쟁 조건 참조
ㅇ 세마포어 (Semaphore)
- 프로세스 간의 동기화 및 공유 자원 접근 제어를 위한 기법
2. CPU 스케줄링 (CPU Scheduling)
ㅇ 스케줄러 (Scheduler)
- 프로세스의 실행 순서를 결정하는 운영체제의 모듈
. 장기 스케줄러 (Long-term Scheduler) : 어떤 프로세스를 실행시킬지 결정
. 중기 스케줄러 (Medium-term Scheduler) : 프로세스를 일시 중단하거나 다시 실행
. 단기 스케줄러 (Short-term Scheduler) : CPU에 어떤 프로세스를 실행할지 결정
ㅇ 선점형 스케줄링 (Preemptive Scheduling)
- 실행 중인 프로세스가 강제로 CPU를 빼앗길 수 있는 스케줄링 방식
ㅇ 비선점형 스케줄링 (Non-preemptive Scheduling)
- 실행 중인 프로세스가 스스로 종료해야 CPU가 다른 프로세스로 이동
ㅇ 라운드 로빈 (Round Robin, RR)
- 프로세스에 정해진 시간(Time Quantum)만큼 CPU를 할당하는 스케줄링 방식
- 각 프로세스에 일정 시간 만큼 할당하고, 이 시간이 지나면 CPU를 다른 프로세스에게 할당
ㅇ 우선순위 스케줄링 (Priority Scheduling)
- 각 프로세스에 우선순위를 부여하여 높은 우선순위의 프로세스를 먼저 실행
ㅇ 최단 작업 우선 (Shortest Job Next, SJN)
- 실행 시간이 가장 짧은 프로세스를 먼저 실행하는 방식
ㅇ 다단계 큐 스케줄링 (Multilevel Queue Scheduling)
- 프로세스를 여러 개의 큐로 분리하여 우선순위에 따라 실행
ㅇ 다단계 피드백 큐 (Multilevel Feedback Queue, MLFQ)
- 프로세스가 다른 우선순위 큐로 이동할 수 있도록 하는 스케줄링 방식
3. 메모리 관리 (Memory Management)
ㅇ 페이징 (Paging)
- 가상 메모리를 일정한 크기(페이지)로 나누어 관리하는 기법
ㅇ 세그멘테이션 (Segmentation)
- 프로그램을 논리적인 단위(세그먼트)로 나누어 메모리에 배치하는 기법
ㅇ 페이지 폴트 (Page Fault)
- 실행 중인 프로세스가 요구한 페이지가 메모리에 없을 때 발생하는 예외 상황
ㅇ 스와핑 (Swapping)
- 프로세스를 메모리에서 디스크로 이동시켰다가 다시 불러오는 기법
ㅇ 가상 메모리 (Virtual Memory)
- 실제 물리 메모리보다 큰 메모리 공간을 제공하는 운영체제 기법
ㅇ 메모리 단편화 (Memory Fragmentation)
- 메모리가 잘게 쪼개져 사용 가능한 공간이 있음에도 불구하고 할당할 수 없는 문제
4. 파일 시스템 (File System)
ㅇ 파일 시스템 (File System)
- 데이터를 저장하는 구조와 규칙을 정의한 시스템 (NTFS, FAT32, ext4 등)
ㅇ 디렉토리 (Directory)
- 파일을 그룹화하여 정리하는 구조
ㅇ 저널링 파일 시스템 (Journaling File System)
- 파일 시스템의 변경 사항을 로그로 기록하여 장애 발생 시 복구할 수 있도록 하는 기법
5. 입출력 시스템 (I/O System)
ㅇ 인터럽트 (Interrupt)
- CPU가 실행 중일 때, 입출력 장치나 소프트웨어가 CPU의 주의를 요구하는 신호
ㅇ 디바이스 드라이버 (Device Driver)
- 운영체제가 하드웨어 장치를 제어할 수 있도록 하는 소프트웨어
ㅇ 버퍼링 (Buffering)
- 데이터를 일시적으로 저장하여 입출력 장치의 속도 차이를 줄이는 기법
ㅇ 스풀링 (Spooling)
- 데이터를 임시 저장공간에 저장하여 입출력 장치 동작의 효율적 관리 기법 (프린터 대기열 등)
6. 기타 용어
ㅇ 커널 (Kernel)
- 운영체제의 핵심 부분으로, 프로세스 관리, 메모리 관리, 입출력 관리 등을 담당
ㅇ 시스템 콜 (System Call)
- 운영체제의 기능을 사용자 프로그램이 사용할 수 있도록 제공하는 인터페이스
ㅇ 부팅 (Booting)
- 운영체제가 컴퓨터를 시작하면서 필요한 커널과 시스템 파일을 로드하는 과정