OS 24

[쉽게 배우는 운영체제] 11-2. 파일 시스템: 파일 시스템

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다. 1. 물리 저장 계층구분정의크기관리 주체특징Disk데이터를 저장하는 물리 장치수 GB ~ 수 TB하드웨어HDD, SSD 같은 실제 저장 매체Sector디스크의 가장 작은 물리 저장 단위512B / 4KB디스크 컨트롤러LBA 주소 기반으로 접근Cluster여러 개의 섹터를 묶은 파일 시스템 할당 단위보통 4KB파일 시스템파일을 저장할 때 최소 할당 단위 표) 디스크 파일 할당더보기할당 방식세부 방식설명특징 / 예시연속 할당 데이터가 연속된 물리적 위치에 할당됩니다. 접근 속도가 빠르고 관리가 용이합니다.불연속 할당연결 할당데이터 블록들이 연결 리스트로 관리함FAT(File Allocation Table) 인덱스 할당파일에 대한 데이터 블록..

OS 2026.02.26

[실습과 그림으로 배우는 리눅스 구조] 2. 사용자 모드로 구현되는 기능

다케우치 사토루 님의 "실습과 그림으로 배우는 리눅스 구조" 책을 정리한 포스팅 입니다. 1. 시스템 콜사용자 프로그램이 커널의 기능을 사용하기 위해 요청하는 인터페이스하드웨어 관련 작업을 요청함 (프로세스 생성, 파일 열기, 네트워크 통신, 메모리 할당 등)⚠️ 사용자 프로그램은 직접 하드웨어를 접근할 수 없음 (커널 권한 필요) 종류기능시스템 콜프로세스 실행execve()프로세스 생성fork()파일 열기open()파일 쓰기write()메모리 할당brk(), mmap()네트워크socket() 발생 과정사용자 프로그램이 시스템 콜 호출 (write(), open() 등)내부에서 syscall 명령어 호출 (어셈블리어)소프트웨어 인터럽트 발생CPU 모드 전환 (사용자 → 커널)커널 작업 수행사용자 모드로 ..

OS/Linux 2026.02.26

[따배셸] 4. Bash Shell Script

이성미 님의 "[따배셸] 셸 프로그래밍 시리즈" 강의를 정리한 글입니다. 1. Shell ScriptLinux command들을 모아놓은 ASCII Text 파일스크립트 파일을 위에서 아래로 읽음 개념설명예시실행 퍼미션실행 권한을 부여해야 실행 가능chmod +x script.sh셔뱅(Shebang)스크립트를 실행할 서브 쉘 지정 (#!)#!/bin/bash (Bash 사용)서브 쉘 (Sub Shell)로그인 쉘이 아닌 특정 쉘에서 실행됨#!/bin/zsh (Zsh 사용)실행 (./)스크립트 파일을 쉘에서 실행하는 명령./script.sh    출처따배셸 - 셸 프로그래밍 시리즈

OS 2025.03.31

[따배셸] 3. Bash Shell과 Rules

이성미 님의 "[따배셸] 셸 프로그래밍 시리즈" 강의를 정리한 글입니다. 1. Quoting RuleMetacharactersShell에서 특별히 의미를 정해놓은 문자들 메타 문자설명예시*모든 문자에 해당 (와일드카드로 사용 가능)*.txt → 모든 .txt 파일?임의의 단일 문자에 해당file?.txt → file1.txt, fileA.txt{a..b}a부터 b까지의 문자 집합 정의{a..c} → a, b, c[]대괄호 안의 문자 중 하나와 일치file[123].txt → file1.txt, file2.txt, file3.txt!명령어 내에서 논리 부정 (이 명령어가 쓰인 위치에서 사용)!file → file이 아닌 모든 파일|파이프(pipe)명령어의 출력을 다른 명령어의 입력으로 전달cat /etc/..

OS 2025.03.31

[따배셸] 2. Bash Shell과 변수

이성미 님의 "[따배셸] 셸 프로그래밍 시리즈" 강의를 정리한 글입니다.1. Shell 변수명령어작업설명예제변수 선언변수에 값을 할당하여 선언별도의 타입 지정 없이 값 저장name=noahname = noah (blank X)변수 확인변수 이름 앞에 $를 붙여 사용echo $name변수 제거unset 명령어로 변수를 제거할 수 있음unset name 2. Shell 환경 변수프로세스에게 영향을 주는 변수 명령어작업설명예제변수 선언환경 변수를 설정하려면 export 명령어를 사용합니다. 이 명령어는 변수를 현재 셸뿐만 아니라 자식 프로세스에도 적용할 수 있도록 만듭니다.export VAR_NAME="value"변수 확인 시스템의 환경 변수를 확인하려면 env 명령어를 사용합니다. 이 명령어는 현재 환경 변..

OS 2025.03.31

[따배셸] 1. Linux Shell 이란?

이성미 님의 "[따배셸] 셸 프로그래밍 시리즈" 강의를 정리한 글입니다. 1. ShellOS Kernel과 사용자간의 인터페이스 역할을 하는 프로그램사용자의 명령어를 입력받고 처리하는 명령어 해석기 종류종류설명특징 및 기능개발자Bourne Shell (sh)원본 쉘- AT&T 벨 연구소에서 만든 최초의 유닉스 쉘기본적인 쉘스크립트 작성에 사용시스템 명령어 인터프리터 역할스티븐 본C Shell (csh)C 언어 문법 적용- C 언어와 유사한 문법을 가진 쉘history, aliases, job control, vi빌 조이Korn Shell (ksh)Bourne Shell + C Shell 기능- Bourne 쉘과 C 쉘의 장점 합친 쉘함수스크립트 편집배열 처리데이비드 콘Bash (Bourne-Again S..

OS 2025.03.31

[쉽게 배우는 운영체제] 11-1. 파일 시스템: 파일

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다. 1. 블록데이터를 읽고 쓰는 최소 단위 표) 계층별 블록 단위더보기계층단위특징MemoryByteCPU가 직접 다루는 최소 단위HDD 물리Sector (512B/4KB)디스크가 물리적으로 읽는 최소 단위File SystemBlock (보통 4KB)OS가 파일을 관리하는 최소 단위Windows 파일 시스템Cluster (보통 4KB)블록 묶음 단위 2. 파일논리적인 데이터 집합실제 저장 장치에서 여러 개의 블록으로 나뉘어 저장됨 헤더구성 요소설명특징/예시첫 블록 주소파일 데이터 시작 위치 name파일 이름 type파일 유형regular, directory, socketsize파일 크기바이트 단위time생성/수정/접근 시간 location디스크..

OS 2024.12.14

[쉽게 배우는 운영체제] 9. 가상 메모리 관리

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다 1. 가져오기 정책프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정하는 정책구분요구 페이징 (Demand Paging)미리 가져오기 (Pre-paging / Prefetching)정의페이지가 실제로 참조될 때 메모리로 로드앞으로 필요할 것으로 예상되는 페이지를 미리 로드로딩 시점접근 시점접근 이전페이지 폴트처음 접근 시 발생줄어들 수 있음성능 영향초기 접근 시 지연 발생적중 시 성능 향상 가능지역성 활용시간/공간 지역성에 의존지역성을 예측하여 선제적 로드 지역성프로그램이 특정 메모리 영역에 집중적으로 접근하는 성질지역성 유형설명공간 지역성현재 위치에서 가까운 데이터에 접근할 확률이 높음시간 지역성최근 접근한 데이터에 다시 접근할 ..

OS 2024.12.13

[쉽게 배우는 운영체제] 8. 가상 메모리의 기초

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다1. 개요메모리의 크기는 컴퓨터마다 다름OS가 물리 메모리 크기에 의존한다면, 메모리 크기가 다른 환경에서는 프로그램이 정상적으로 동작하지 않을 수 있음이를 해결하기 위해 가상 메모리 개념이 등장함 가상 메모리물리 메모리의 실제 크기와 상관없이 프로세스에게 충분히 큰 메모리 공간을 제공하는 기술➡️ 물리 메모리 크기, 실제 메모리 위치, 다른 프로세스 존재 등을 고려하지 않고 메모리를 사용할 수 있습니다 메모리 관리자메모리 자원을 효율적으로 관리하고 프로세스들이 요구하는 메모리를 적절히 제어하는 역할기능설명스왑물리 메모리가 부족하면 스왑 영역으로 일부 데이터를 보냄.동적 주소 변환가상 주소를 물리 주소로 변환하여 실제 메모리 위치를 참조.매핑..

OS 2024.12.12

[쉽게 배우는 운영체제] 7. 물리 메모리 관리

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다1. 개요메모리 관리의 복잡성시분할 시스템에서는 여러 응용 프로세스가 동시에 메모리에 올라와 실행됨➡️ 한정된 메모리를 여러 프로세스가 공유해야 하므로 메모리 관리가 복잡해짐 메모리 관리의 이중성프로세스: 메모리를 독점적으로 사용하고 싶어함메모리 관리자: 제한된 메모리를 최대한 효율적으로 분배하고 싶어함 2. 메모리 관리자이러한 복잡한 메모리 관리를 메모리 관리 시스템(MMS)에서 담당함 정책구분관리 방식placement- paging: 메모리를 같은 크기로 나누어 할당- segmentation: 프로세스의 크기에 맞게 나누어 할당replacementreplacement algorithm: 메모리가 꽉 찼을 때, 어떤 프로세스를 내보낼지 결정..

OS 2024.12.12