컴퓨팅의 이해 – 운영체제, 프로세스, CPU, 메모리 개념 정리
운영체제의 역할과 구조, 프로세스와 스레드, CPU와 메모리의 개념과 동작 원리를 한눈에 정리한 글입니다.
컴퓨팅의 이해 – 운영체제, 프로세스, CPU, 메모리 개념 정리
1️. 운영체제(OS)의 역할
운영체제 (Operating System)
- 정의: 컴퓨터 하드웨어와 사용자 간 인터페이스를 제공하는 시스템 소프트웨어
- 주요 역할:
- 자원 관리
- 작업 스케줄링
- 사용자 인터페이스 제공
- 예시: Windows, macOS, Linux, Android, iOS
주요 기능
- 프로세스 관리: 생성/종료, 스케줄링, 동기화, 교착 상태 처리
- 메모리 관리: 할당/해제, 가상 메모리, 페이징, 세그멘테이션
- 파일 시스템 관리: 파일 생성/삭제, 디렉토리 구조, 권한 관리
- 입출력(I/O) 관리: 장치 제어, 버퍼링, 캐싱, 스풀링
- 보안 및 보호: 사용자 인증, 접근 제어
운영체제 구조
커널(Kernel)이란?
- OS의 핵심, 하드웨어와 응용 프로그램 사이를 중개
- “OS의 심장” 또는 “브레인” 역할
커널의 유형
- 모놀리식 커널: 모든 기능이 하나의 공간에서 수행 (예: Linux)
- 마이크로커널: 최소 기능만 포함 (예: QNX)
- 계층형 구조: 기능을 계층으로 분리 (예: THE OS)
- 모듈형 구조: 기능별 모듈을 동적으로 로드/언로드 (예: 현대 Linux)
프로세스와 스레드
- 프로세스: 독립 실행 단위 (예: 음악 재생 프로그램)
- 독립적 메모리 공간 보유
- 스레드: 프로세스 내 작업 단위 (예: 음악 검색, 앨범 표출)
- 메모리 공유
- 컨텍스트 스위칭 빠름
- 멀티태스킹/멀티스레딩: CPU 활용 극대화
메모리 관리 방식
- 연속 할당: 단일 블록, 외부 단편화 문제
- 페이징: 고정 크기 페이지 단위, 페이지 테이블
- 세그멘테이션: 가변 크기 세그먼트
- 가상 메모리: 물리 메모리보다 큰 공간 제공, 스왑 공간 사용
파일 시스템
- 역할: 데이터 저장, 접근, 보안, 공유
- 구성 요소:
- 파일
- 디렉토리
- 메타데이터
- 할당 방식:
- 연속 할당
- 연결 할당
- 인덱스 할당
입출력 시스템
- 입출력 장치 관리: CPU-I/O 데이터 전달, 인터럽트 기반
- 버퍼링: 일시 저장으로 속도 차이 보완
- 캐싱/스풀링:
- 캐싱: 자주 사용하는 데이터 임시 저장
- 스풀링: 출력 큐에 저장 후 순차 처리
2️. 프로세스
프로세스 개요
- 실행 중인 프로그램의 인스턴스
- CPU, 메모리, 파일 등 자원 점유
- 프로그램(정적 코드)과 구분
프로세스 구성 요소
- 코드 섹션
- 데이터 섹션
- 힙(동적 메모리)
- 스택(함수 호출/지역 변수)
- PCB(프로세스 제어 블록)
프로세스 상태
- New
- Ready
- Running
- Waiting
- Terminated
컨텍스트 스위칭
- CPU가 다른 프로세스로 전환
- PCB 저장/복원
- 오버헤드 발생
프로세스와 스레드 비교
구분 | 프로세스 | 스레드 |
---|---|---|
메모리 공간 | 독립적 | 공유 |
자원 | 별도 | 공유 |
생성 비용 | 높음 | 낮음 |
통신 | IPC 필요 | 메모리 공유로 빠름 |
프로세스 간 통신(IPC)
- 공유 메모리
- 메시지 큐
- 파이프
- 소켓
프로세스 스케줄링
- CPU 자원 효율적 배분
- 비선점형: FCFS, SJF
- 선점형: Round Robin, Priority
프로세스 동기화
- 자원 공유 시 데이터 무결성
- 세마포어, 뮤텍스, 모니터
스레드(Thread)란?
- 프로세스 내 가장 작은 실행 단위
- “프로세스=집, 스레드=작업자”
멀티쓰레드(Multithreading)
- 여러 스레드를 동시에 실행
- CPU 코어 효율 활용
사용 목적
- 여러 작업 동시 수행
- UI 응답성 향상
예시
- 웹 서버: 여러 클라이언트 요청 처리
- 게임: 물리 엔진, 렌더링 분리 처리
멀티쓰레드 장단점
장점
- 자원 효율적 사용
- 처리 속도 개선
- 응답성 향상
단점
- 공유 자원 충돌
- 동기화 필요
- 디버깅 어려움
동기화와 문제점
- 필요성: 공유 데이터 무결성 유지
- 기법: Mutex, Semaphore, Monitor
- 문제: 교착 상태, 라이브락, 기아 상태
3️. CPU
CPU 개요
- 컴퓨터의 두뇌
- 명령어 해석/실행
- 발전: 단일 코어 → 멀티코어
CPU의 기본 구성
- ALU: 산술/논리 연산
- CU: 명령어 해석/제어
- 레지스터: 고속 임시 저장소
- 캐시 메모리: CPU-RAM 속도 차이 보완
CPU의 동작 원리
- 명령어 사이클
- Fetch
- Decode
- Execute
- Store
- 파이프라이닝: 명령어 겹쳐서 처리
CPU 클럭 속도와 성능
- 클럭 속도(GHz)
- IPC
- 멀티코어와 병렬 처리
- 하이퍼스레딩
CPU 캐시 구조
- L1: 작고 빠름, 코어별
- L2: 코어별/공유
- L3: 여러 코어 공유
- 캐시 미스 시 성능 저하
CPU와 메모리 계층
- CPU → 캐시 → RAM → 저장장치
- 계층적 구조로 속도 최적화
CPU 명령어 집합(ISA)
- ISA: CPU가 이해하는 명령어
- x86, ARM, RISC-V
- CISC vs RISC
CPU 최신 기술
- 멀티코어
- 하이퍼스레딩
- AI/ML 가속화
- 저전력 설계
- 칩렛 아키텍처
4️. 메모리
메모리 개요
- 데이터를 저장/처리 속도 향상
- 휘발성 vs 비휘발성
메모리의 역할
- 데이터 임시 저장/캐싱
- CPU와 빠른 데이터 교환
메모리 종류
주기억장치
- RAM: 휘발성
- ROM: 비휘발성
보조기억장치
- HDD, SSD
캐시 메모리
- CPU-RAM 간 속도 차이 극복
가상 메모리
- 디스크 공간 일부를 임시 메모리처럼 사용
메모리 계층 구조
- 레지스터 > 캐시 > RAM > SSD > HDD
- 속도와 용량의 트레이드오프
DRAM vs SRAM
- DRAM: 저렴, 재충전 필요
- SRAM: 빠름, 재충전 불필요
가상 메모리와 페이지 관리
- 물리 메모리 초과 시 디스크 활용
- 페이지 폴트 발생 가능
This post is licensed under CC BY 4.0 by the author.