All'alba vincerò

At dawn, I will win!

CS/운영체제 30

파일 시스템, 파일 저장하는 방식

파일과 디스크파일 시스템은 디스크 공간을 효율적으로 관리하기 위해 메모리의 페이징처럼 전제 디스크 공간을 일정한 크기로 나누고, 그 공간에 주소를 할당해서 관리함일정한 크기로 나눈 공간을 메모리에선 페이지(Page) 라고 부르고, 파일 시스템에선 블록(Block) 이라고 부름파일 시스템은 파일 정보를 파일 테이블로 관리하는데, 여기엔 파일이 시작하는 블록의 위치 정보도 담겨있음 파일과 블록의 관계블록(Block): 디스크를 일정한 크기로 나눈 단위페이징처럼 디스크 공간에 주소를 할당해 추적 가능하게 함 디스크는 일정한 크기의 블록으로 나뉘고, 블록의 크기는 1부터 8KB 정도임 디스크를 1KB로 나누면 → 낭비되는 공간을 줄지만⬇️, 관리해야 할 블록의 수도 많아짐⬆️8KB로 나누면 → 관리해야 할 ..

CS/운영체제 2025.06.11

디렉토리(Directory)

디렉토리 (Directory): 관련 있는 파일을 모아둘 수 있는 공간 한 개 이상의 파일을 가질 수 있으며, 하위 디렉토리도 포함할 수 있음디렉토리는 단순한 폴더가 아니라 파일 시스템에서 매우 중요한 계층 구조의 구성 요소운영체제에 따라 그 구조와 표기법이 다르게 표현됨 디렉토리와 파일의 차이점운영체제에서 디렉토리도 파일의 일종임운영체제는 파일과 디렉토리를 동일한 방식으로 관리디렉토리도 내부적으로는 파일처럼 취급되며, 특정한 메타데이터를 저장하는 구조임디렉토리는 데이터가 아닌 "데이터에 대한 정보"를 저장하는 파일일반 파일사용자의 데이터가 저장됨 (텍스트, 이미지, 실행 파일 등)디렉토리 파일해당 디렉토리 안에 있는 파일들의 정보(파일명, 위치 등)가 저장됨 루트 디렉토리 (Root Direct..

CS/운영체제 2025.06.11

파일 & 파일 시스템

파일과 파일 시스템운영체제에서 파일은 정보를 저장하는 기본 단위운영체제는 파일을 효율적이고 안전하게 관리하기 위해 파일 관리자를 두며, 이를 파일 시스템(File System)이라고 함사용자가 직접 저장하게 되면 중요한 정보를 훼손할 수 있기 때문에 사용자가 운영체제를 통해 요청하면, 운영체제가 안전하게 저장해줌파일 시스템은 하드디스크나 플래시 메모리 같은 저장장치에 저장되기 때문에 전송 단위가 블록(block)임주변장치는 캐릭터 디바이스와 블록 디바이스로 구분하는데, 하드디스크와 플래시 메모리는 블록 디바이스임저장장치의 전송 단위는 블록이지만, 사용자는 바이트 단위로 파일에 접근이 가능해야 함 → 파일 시스템이 중간에서 관리해줌가상 메모리에서 메모리 관리자가 페이지 테이블을 통해 주소를 변환하듯, 파일..

CS/운영체제 2025.06.10

하드디스크(HDD) / 플래시 메모리(Flash Memory)

하드디스크(HDD): 돌아가는 판에 자석처럼 데이터를 저장하는 장치 구조스핀들 (Spindle)플래터(platter)원판들을 고정해두는 막대 축플래터 (Platter)자기화된 원판여기에 실제 데이터가 저장됨여러 개의 트랙(track)으로 구성되어 있음표면에 자성이 있어서 표면이 N극을 띄면 0, S극을 띄면 1로 인식함보통 하드디스크의 플래터 수는 2개 이상임디스크 암 (Disk Arm)플래터 위를 움직이며 헤드를 원하는 위치로 이동시킴헤드(read/write head)로 플래터의 표면을 읽음헤드 (Read/Write Head)플래터 위의 데이터를 읽거나 씀디스크 암에 고정되어 있음모든 헤드는 항상 같이 움직임 데이터 구성 트랙(track): 플래터의 동심원섹터(sector): 트랙의 일부, ..

CS/운영체제 2025.06.08

주변장치(I/O 디바이스, 저장장치)

주변장치: 컴퓨터와 연결된 입출력 장치들그래픽 카드, 하드디스크, SSD, 키보드, 마우스 등 주변 장치들의 외부 구조주변장치들은 메인 보드에 있는 버스로 연결됨실제로 하나의 버스는 Address 버스 Data 버스, Control 버스로 이루어져 있음→ 그래서 I/O 디바이스는 이 3가지 버스를 각각 따로 받을 수 있음각 하드웨어에 맞게 외부 인터페이스가 존재함장치의 상태와 데이터를 저장할 수 있는 각종 레지스터들이 있음→ 입출력 작업을 할 때 데이터를 저장하고, CPU가 사용하기 위해 메모리로 이동되기도 함 캐릭터 디바이스, 블록 디바이스 데이터 전송 단위에 따라 두 종류로 나뉨 캐릭터 디바이스: 데이터를 글자 단위로 읽고 쓰는 장치 데이터 전송 단위: 캐릭터(글자)적은 양의 데이터를 전송..

CS/운영체제 2025.06.08

스레싱 & 워킹셋: 메모리 부족 문제와 해결책

스레싱과 워킹셋 개념의 배경CPU 사용률과 멀티 프로그래밍운영체제의 CPU 스케줄링 목표는 CPU 사용률을 최대화하는 것⇒ 이를 위해 멀티 프로그래밍 정도(동시에 메모리에 올리는 프로세스 수)를 늘림여러 프로세스가 있으면, 어떤 프로세스가 I/O 작업으로 CPU 사용을 할 수 없을 때 다른 프로세스로 컨텍스트 스위칭해서 CPU 사용률을 높일 수 있음 멀티프로그래밍을 늘리면 생기는 문제 CPU 사용률을 높이기 위해 멀티 프로그래밍 정도를 늘렸으면, 당연히 이 프로세스들이 필요로 하는 공간이 있기 때문에 물리 메모리의 프레임을 할당해야 함 하지만 물리 메모리는 한정적이기 때문에→ 모든 프로세스의 모든 페이지를 물리 메모리에 한 번에 올릴 수 없음→ 일부 페이지는 디스크의 스왑 영역에 저장됨 멀티프로그래밍 ..

CS/운영체제 2025.06.07

페이지 교체 정책: 페이지 폴트 발생 시 메모리가 꽉 찼을 때 어떤 페이지를 제거할지 결정하는 정책

페이지 교체 정책 (Page Replacement Policy) : 페이지 폴트 발생 시 메모리에 공간이 부족할 때, 어떤 페이지를 스왑 영역으로 옮길지 결정하는 정책 프로세스는 데이터 접근을 위해 메모리를 참조하는데, 해당 페이지가 메모리에 없으면 페이지 폴트(Page Fault)가 발생함 → 페이지 폴트가 발생하면 해당 페이지를 스왑 영역에서 메모리로 불러들여야 하는데, 메모리가 꽉 차서 공간이 없다면 메모리에 있는 페이지 중 하나를 선택해서 스왑 영역으로 옮겨야 함 → 이때 어떤 페이지를 스왑 영역으로 옮길지 결정하는 정책 ⇒ 페이지 교체 정책메모리 관리 전략 종류배치 정책: 세그멘테이션, 페이징, 페이지드 세그멘테이션가져오기 정책: 디맨드 페이징교체 정책: 페이지 교체 정책 페이지 교체 알고리..

CS/운영체제 2025.06.07

디맨드 페이징(Demand Paging): 필요한 데이터를 메모리로 가져오고, 안쓰는 데이터는 스왑 영역으로 옮기는 메모리 관리 기법

디맨드 페이징(Demand Paging) : 곧 필요할 것 같은 데이터를 메모리로 가져오고, 쓰이지 않을 데이터는 스왑 영역으로 옮겨서 메모리를 효율적으로 사용하는 기법 프로세스가 실행될 때는 프로세스를 이루는 모든 영역(코드 영역, 데이터 영역, 힙 영역, 스택 영역)이 메모리에 올라오는 것이 아니라 필요한 모듈만 올라와서 실행됨ex) 포토샵 실행 시 → 본 프로그램만 메모리에 올리고, 외부 필터들은 사용자가 클릭할 때만 메모리로 가져옴디맨드 페이징은 지역성 이론을 기반으로 함 지역성(Locality) 이론 : 물체가 바로 인접한 환경에 의해서 직접적인 영향을 받는다는 원칙 지역성 이론은 조만간 쓰일 데이터만 메모리에 올리고, 당분간 필요하지 않을 것 같은 데이터는 스왑 영역으로 보냄 ⇒ 성..

CS/운영체제 2025.06.05

페이지드 세그멘테이션(Paged Segmentation): 세그멘테이션으로 논리적 구역을 나누고, 세그먼트 내부를 페이징으로 나누는 메모리 관리 기법

페이지드 세그멘테이션 (Paged Segmentation): 세그멘테이션으로 논리적 구역을 나눈 뒤, 각 세그먼트 내부를 페이징으로 나누는 메모리 관리 기법 세그멘테이션(Segmentation)과 페이징(Paging)의 장점을 혼합한 방식운영체제의 메모리 관리 기법 중 하나 기법특징세그멘테이션가변 분할 방식기능 영역별로 메모리를 나누어 관리 가능(코드, 데이터, 스택 등)→ 다른 프로세스와 공유가 편리하고, 접근 보호가 쉬움페이징고정 분할 방식메모리를 동일한 크기의 페이지로 나눔→ 메모리 관리가 간단하고 외부 단편화 문제 해결페이지드 세그멘테이션혼합(가변 + 고정) 분할 방식페이지 단위로 물리 메모리 관리를 수행→ 세그멘트 단위로 접근 제어 및 보호 가능 페이지드 세그멘테이션 구조 각각의 역할은 이..

CS/운영체제 2025.06.05

페이징(Paging): 메모리를 같은 크기로 나눠 사용하는 메모리 관리 기법

페이징(Paging): 큰 가상 메모리를 같은 크기의 작은 블록(페이지)으로 나눠, 필요한 블록만 물리 메모리에 올려 사용하는 메모리 관리 기법 페이징은 고정 분할 방식을 이용한 메모리 관리 기법세그멘테이션(segmentation) 기법에서 발생하는 외부 단편화 문제를 해결하기 위해 고안된 방식 페이징의 특징페이징은 메모리를 할당할 때 메모리를 일정한 크기의 페이지(Page) 단위로 나누어 할당함모든 페이지는 동일한 크기를 갖기 때문에 관리가 용이함일정한 크기로 나눴기 때문에 외부 단편화는 발생하지 않음❌내부 단편화는 발생할 수 있음⭕세그멘테이션과 마찬가지로 컨텍스트 스위칭 시, 운영체제는 페이지 테이블을 바꾸기 위해 메모리 관리자 내의 페이지 테이블 베이스 레지스터(Page Table Base Re..

CS/운영체제 2025.06.04