728x90 프로그래밍공부(Programming Study)/운영체제(OS)17 시스템 콜 약어 및 의미 정리 📌 시스템 콜 약어 및 의미 정리시스템 콜 약어 의미 설명fork()-새로운 프로세스를 생성 (부모 프로세스를 복제)execve()execute (exec) + variable environment (ve)새로운 프로그램을 실행하며 환경 변수 전달exit()-현재 프로세스를 종료waitpid()wait + process ID (pid)특정 자식 프로세스가 종료될 때까지 대기getpid()get + process ID (pid)현재 프로세스의 ID를 반환getppid()get + parent process ID (ppid)부모 프로세스의 ID를 반환getuid()get + user ID (uid)현재 프로세스의 사용자 ID를 반환setuid()set + user ID (uid)사용자 ID 변경getgid.. 프로그래밍공부(Programming Study)/운영체제(OS) 2025. 3. 5. 벨라디의 이상현상 (Belady's Anomaly) 벨라디의 이상현상 (Belady's Anomaly)벨라디의 이상현상(Belady's Anomaly)은 페이지 교체 알고리즘에서 발생하는 비정상적인 현상으로, 페이지 프레임 수를 늘렸음에도 불구하고 페이지 부재(page fault)가 오히려 증가하는 현상을 의미합니다. 이는 운영체제 메모리 관리에서 대표적인 비정상적인 현상으로 알려져 있습니다.1. 벨라디의 이상현상 개념보통 페이지 교체 알고리즘에서는 페이지 프레임 수가 많아지면 페이지 부재가 줄어들 것으로 기대합니다. 하지만 특정 조건에서 FIFO(First In First Out)와 같은 몇몇 알고리즘에서는 페이지 프레임 수가 증가해도 페이지 부재가 줄어들지 않고 오히려 늘어나는 현상이 발생할 수 있습니다. 이를 Belady's Anomaly라고 합니다.. 프로그래밍공부(Programming Study)/운영체제(OS) 2024. 12. 8. 페이지 교체 알고리즘 정리 운영체제에서 페이지 교체 알고리즘은 메모리 관리에서 중요한 역할을 합니다. 프로세스 실행 중 페이지 부재(Page Fault)가 발생할 때, 기존 페이지 중 하나를 교체해야 하는 상황에서 어떤 페이지를 제거할지를 결정하는 다양한 알고리즘이 있습니다.이 글에서는 LRU, FIFO, LFU, Optimal 등 주요 페이지 교체 알고리즘의 개념, 특징, 장단점, 실제 사용 사례를 자세히 살펴보겠습니다.1. 주요 페이지 교체 알고리즘 개념과 특징알고리즘개념특징FIFO (First In First Out)가장 먼저 들어온 페이지를 제거단순하지만 효율이 낮음LRU (Least Recently Used)가장 오랫동안 사용되지 않은 페이지 제거시간 지역성 고려, 구현 복잡LFU (Least Frequently Used.. 프로그래밍공부(Programming Study)/운영체제(OS) 2024. 12. 8. 메모리 구조와 관리의 모든 것: 힙, 스택, 세그먼트와 할당자 및 가상 메모리까지 1. 메모리 구조 개요컴퓨터의 메모리는 프로그램의 실행과 데이터 관리를 위해 다양한 영역으로 나뉘어 운영됩니다. 각 영역은 특정 역할을 담당하며, 다음과 같은 주요 구성 요소로 나뉩니다:코드(Code) 세그먼트데이터(Data) 세그먼트힙(Heap)스택(Stack)이러한 구조는 프로세스와 운영체제가 효율적으로 협력해 시스템 리소스를 관리하는 데 필수적입니다.2. 힙(Heap)과 스택(Stack)의 차이특징스택(Stack)힙(Heap)메모리 위치고정된 크기, 선형적으로 증가/감소유동적 크기, 할당/해제에 따라 확장할당 방식LIFO (Last-In-First-Out)동적 할당 (Dynamic Allocation)속도빠름느림사용 목적함수 호출 시 변수 저장객체 및 데이터 저장오류 발생 가능성스택 오버플로우메모리.. 프로그래밍공부(Programming Study)/운영체제(OS) 2024. 12. 7. CPU 핵심 개념 총정리: 커널 함수, 시스템 콜, 인터럽트와 CPU 이벤트 이해하기 1. CPU와 관련된 주요 개념 이해하기CPU는 컴퓨터의 중추적인 처리 장치로, 다양한 작업을 수행합니다. 이를 이해하기 위해 커널 함수, 사용자 레벨 함수, 시스템 콜, 인터럽트, CPU 이벤트 등을 살펴보겠습니다.2. 커널 함수와 사용자 레벨 함수커널 함수커널 함수는 운영 체제 커널에서 실행되는 함수로, 하드웨어와 직접 상호작용하거나 시스템 자원을 관리합니다.역할: 프로세스 관리, 메모리 관리, 파일 시스템 관리 등예시: schedule() 함수는 프로세스 스케줄링을 담당합니다.사용자 레벨 함수사용자 레벨 함수는 응용 프로그램에서 실행되는 함수로, 커널 함수를 직접 호출하지 않고 시스템 콜을 통해 간접적으로 접근합니다.예시: printf(), malloc()와 같은 C 라이브러리 함수가 이에 해당됩니.. 프로그래밍공부(Programming Study)/운영체제(OS) 2024. 12. 6. 커널의 내부 동작 완전 정복: 시스템 콜, 모드 전환, 태스크/스레드, 가상 메모리, VFS의 이해 1. 커널이란 무엇인가?커널은 운영체제의 핵심으로, 하드웨어 제어와 리소스 관리를 담당합니다. 주요 역할은 다음과 같습니다:프로세스 관리: 실행 중인 프로그램 제어.메모리 관리: 메모리 할당 및 해제.장치 관리: 하드웨어와의 상호작용.파일 시스템 관리: 데이터 저장 및 접근.2. 시스템 콜: 커널과 사용자 프로그램의 다리시스템 콜은 사용자 모드에서 실행 중인 프로그램이 커널 기능을 요청하는 메커니즘입니다.작동 원리사용자 프로그램이 특정 작업(예: 파일 읽기)을 요청.시스템 콜 인터럽트를 통해 커널로 진입.커널이 작업 수행 후 결과 반환.예시: 파일 읽기파이썬으로 파일을 읽는 예:with open("example.txt", "r") as file: data = file.read() print(d.. 프로그래밍공부(Programming Study)/운영체제(OS) 2024. 12. 6. Linux `free` 명령어와 Dentry Cache, Slab 메모리 개념 완벽 정리 1. free 명령어란?Linux free 명령어는 시스템 메모리 상태를 확인하기 위한 기본 도구입니다. 이 명령은 물리적 메모리와 스왑 메모리 상태뿐만 아니라 버퍼/캐시 메모리의 사용량도 보여줍니다. 이는 시스템의 성능 및 메모리 사용 최적화를 이해하는 데 유용합니다.2. Memory 종류와 개념free 명령어에서 확인할 수 있는 주요 메모리 항목:Mem(Total/Used/Free): 물리적 RAMShared: 여러 프로세스 간 공유 메모리Buffers: 디스크 메타데이터(예: 디렉터리 구조) 캐시Cached: 파일 I/O 데이터를 캐싱하여 성능 최적화Available: 버퍼 및 캐시를 포함하여 프로세스가 사용할 수 있는 메모리Swap: 디스크 기반 가상 메모리3. Dentry Cache와 Slab .. 프로그래밍공부(Programming Study)/운영체제(OS) 2024. 11. 25. CPU와 메모리 기본 개념 CPU와 메모리는 컴퓨터 시스템에서 매우 밀접하게 연결되어 있지만, 각각의 역할은 다릅니다. 프로그램이 실행되는 동안 CPU와 메모리는 서로 협력하여 작업을 처리합니다. CPU는 연산을 담당하는 장치이며, 메모리는 데이터와 명령어를 저장하고 관리하는 장치입니다. 각 상황에서 언제 CPU를 사용하고 언제 메모리를 사용하는지 명확히 설명해드리겠습니다.1. CPU는 언제 사용되는가?CPU는 프로그램이 실행될 때 연산과 명령어 처리를 담당합니다. 즉, 프로세서가 실제로 일을 하는 순간에는 CPU가 사용됩니다. CPU는 프로그램의 논리적 흐름을 처리하고, 다양한 명령을 빠르게 수행합니다.CPU 사용 시점:연산을 수행할 때: 덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술 연산과 비교, 조건문 처리 등의 논리 연산을 처리할.. 프로그래밍공부(Programming Study)/운영체제(OS) 2024. 9. 23. CPU, Dispatcher, Scheduler, Run Queue, Task: 개념과 동작 원리 1. CPU 개념CPU(중앙처리장치, Central Processing Unit)는 컴퓨터 시스템의 핵심 구성 요소로, 모든 연산 작업을 처리하는 장치입니다. CPU는 주로 명령어 처리, 데이터 연산, 제어 신호 생성의 역할을 합니다.명령어 처리: 메모리에서 프로그램 명령어를 가져와 이를 해석하고 실행.데이터 연산: 산술 및 논리 연산을 수행.제어 신호: 시스템의 각 부품과 장치를 제어.2. Dispatcher의 역할Dispatcher는 운영체제에서 중요한 모듈 중 하나로, CPU 스케줄러가 선택한 작업(프로세스나 스레드)을 실제로 CPU에서 실행할 수 있도록 합니다. Dispatcher는 문맥 교환(Context Switching), 모드 변경(User Mode ↔ Kernel Mode), 프로세스 실.. 프로그래밍공부(Programming Study)/운영체제(OS) 2024. 9. 22. macOS에서 `smartctl`, `lspci`, `ethtool` 명령어 사용하기: 대체 방법과 설치 가이드 1. macOS에서 smartctl이란?smartctl은 하드 드라이브(HDD)나 SSD의 S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) 데이터를 확인하여 디스크의 상태를 모니터링하고, 잠재적인 오류를 감지하는 도구입니다. 리눅스에서 기본적으로 사용되는 도구로, macOS에서도 설치할 수 있습니다.2. macOS에서 smartctl 설치 및 사용법macOS에서는 smartctl이 기본적으로 포함되어 있지 않지만, Homebrew를 통해 설치할 수 있습니다.설치 방법:Homebrew 설치:macOS에 Homebrew가 설치되어 있지 않다면, 터미널에서 다음 명령어를 입력해 설치하세요:/bin/bash -c "$(curl -fsSL htt.. 프로그래밍공부(Programming Study)/운영체제(OS) 2024. 9. 20. macOS에서 `free` 명령어를 대신하는 방법: 메모리 사용량 확인하기 1. macOS에서 free 명령어란?free 명령어는 리눅스에서 시스템의 메모리 사용량을 확인하는 데 사용되는 명령어입니다. 이 명령어를 통해 사용 중인 메모리, 캐시된 메모리, 스왑 메모리 등의 정보를 쉽게 확인할 수 있습니다. 하지만 macOS에서는 리눅스에서 제공하는 free 명령어가 기본적으로 제공되지 않습니다.대신, macOS에서는 메모리 사용량을 확인하기 위해 몇 가지 다른 명령어 및 도구들을 사용할 수 있습니다.2. macOS에서 free 명령어 대체 방법macOS에서 메모리 사용량을 확인하는 데 자주 사용되는 방법은 vm_stat와 top 명령어입니다. 이 두 명령어는 터미널을 통해 메모리 관련 정보를 제공하며, 각각 다른 방식으로 시스템 메모리 상태를 보여줍니다.3. vm_stat 명령.. 프로그래밍공부(Programming Study)/운영체제(OS) 2024. 9. 19. 멜트다운(Meltdown)과 스펙터(Spectre): CPU 보안 취약점의 이해 1. 멜트다운(Meltdown)과 스펙터(Spectre)란?멜트다운(Meltdown)과 스펙터(Spectre)는 2018년에 발견된 심각한 CPU 보안 취약점으로, 컴퓨터 프로세서의 설계 결함을 악용하여 민감한 데이터를 탈취할 수 있는 공격입니다. 이 취약점들은 주로 인텔, AMD, ARM 등 여러 제조사의 프로세서에서 발견되었으며, 전 세계적으로 많은 시스템에 영향을 미쳤습니다.이 두 공격은 컴퓨터가 메모리와 데이터를 처리하는 방식을 악용하며, 공격자는 정상적인 권한을 우회하여 보호된 메모리 영역에 접근할 수 있습니다. 이를 통해 비밀번호, 암호화 키, 개인 정보 등 중요한 데이터를 탈취할 수 있게 됩니다.2. 멜트다운의 특징 및 작동 원리특징:영향 받는 시스템: 주로 인텔 프로세서에서 발견되며, 다양.. 프로그래밍공부(Programming Study)/운영체제(OS) 2024. 9. 19. 이전 1 2 다음 728x90