OS 25

[운영체제] 보조 기억 장치란?

1. 하드디스크(HDD) 구조1) 기본 개념보조 기억장치로 가장 널리 사용됨회전하는 자기 디스크에 데이터를 저장기계적 동작 → 성능 병목의 원인이 되기도 함2) 역사1950년대 IBM에서 개발1960년대부터 범용 컴퓨터에 보조 저장장치로 사용3) 내부 구성여러 개의 디스크 플래터가 **축(spindle)**에 수직으로 쌓여 있음각 플래터 면마다 헤드가 존재플래터 면은 동심원 구조의 **트랙(track)**으로 구성**섹터(sector)**는 트랙을 나눈 데이터 단위 (예: 512B)**실린더(cylinder)**는 같은 위치의 트랙들을 수직으로 연결한 개념2. 디스크 접근 시간 구성탐색시간(Seek Time): 헤드가 목적 실린더로 이동하는 시간회전지연(Rotational Latency): 원하는 섹터가..

OS 2025.06.04

[운영체제] 파일 시스템이란??

1. 파일 시스템이란?1) 파일이란?관련된 정보의 논리적 집합사용자는 파일을 논리적으로 다루지만, 운영체제는 물리적으로 저장 장치에 맵핑함2) 파일 시스템이란?운영체제의 구성요소로서 두 가지 주요 기능을 담당함파일 관리 기능 제공생성, 삭제, 읽기, 쓰기, 공유, 보호 등저장 장치에 파일 저장ex) FAT, NTFS, ext2/3, NFS 등 다양한 파일 시스템 존재2. 파일의 구성 요소1) 파일의 종류프로그램 파일: 소스 코드, 오브젝트 파일 등데이터 파일: 텍스트, 이미지, 음성 등 바이너리 데이터2) 파일의 구조바이트 나열 (비구조적)고정/가변 크기 레코드 (간단 구조)포맷화된 문서 (복잡 구조) 💡 운영체제는 대부분 파일을 바이트 나열로 처리 3) 파일의 속성 (Attributes)이름, 확장자..

OS 2025.06.02

[운영체제] 스레싱과 지역성이란??

1. 프레임 할당 방식메모리는 일정 크기의 프레임(Frame) 단위로 나뉘며, 운영체제는 각 프로세스에 이 프레임을 할당 1) 균등 할당(Equal Allocation)모든 프로세스에 동일한 수의 프레임을 할당.예: 총 100개의 프레임, 5개의 프로세스 → 각 프로세스에 20개씩 할당.2) 비례 할당(Proportional Allocation)프로세스의 크기에 비례하여 프레임을 나눔.큰 프로세스는 더 많은 프레임을 받음.3) 작업집합 기반 할당(Working Set Model)프로세스가 **최근에 참조한 페이지 집합(= 작업집합)**을 기준으로 프레임을 할당.스레싱을 방지하고 다중 프로그래밍 수준을 높일 수 있음.2. 스레싱(Thrashing)이란?1) 스레싱이란? 프로세스가 실행보다 페이지 교체에 더..

OS 2025.05.28

[운영체제] 페이지 교체 알고리즘이란?

운영체제에서 프로세스가 사용하는 **가상 메모리(Virtual Memory)**는 실제 물리 메모리보다 큰 주소 공간을 가짐.하지만 실제 물리 메모리는 한정되어 있기 때문에, 페이지 부재(Page Fault)가 발생할 때마다 메모리에서 어떤 페이지를 교체할지 결정하는 페이지 교체 알고리즘이 필요함.페이지 교체 알고리즘은 **페이지 부재율(Page Fault Rate)**을 최소화하는 것이 핵심 목표!!메모리 참조열(reference string)을 사용하여 페이지 부재 횟수를 측정하는 방법으로 알고리즘들을 평가1. FIFO (First-In First-Out)1) 개념가장 먼저 메모리에 들어온 페이지를 가장 먼저 내보내는 방식큐(Queue) 형태로 페이지를 관리2) 작동 방식메모리에 공간이 있을 때는 그..

OS 2025.05.26

[운영체제] 가상 기억장치란??

1. 가상 기억장치란?1) 왜 필요한가?프로그램 전체가 메모리에 한꺼번에 올라오지 않아도 되는 경우가 많습니다.예외 처리 코드: 실행되지 않을 수도 있음과도하게 할당된 배열/리스트: 전부 사용하지 않음2) 정의**가상 기억장치(Virtual Memory)**는 프로세스의 전체 내용을 메모리에 올리지 않고도 실행할 수 있게 해주는 메모리 관리 기법입니다.즉, 물리 메모리보다 큰 프로그램도 실행 가능필요한 부분만 메모리에 적재하여 실행3) 구현 방법요구 페이징 (Demand Paging)요구 세그먼테이션 (Demand Segmentation)2. 요구 페이징 (Demand Paging)1) 개념요구 페이징은 필요한 페이지가 실제 참조될 때 메모리에 로딩하는 방식int number[10000];main() {..

OS 2025.05.21

[운영체제] 페이지 테이블 구조 란??

1. 페이징(Paging) 기본 개념현대 컴퓨터는 32비트~64비트의 매우 큰 논리 주소 공간을 사용이 때 메모리를 효율적으로 관리하기 위해 페이징 기법을 사용예시:논리 주소 공간: 2³² (4GB)페이지 크기: 4KB (2¹²)페이지 수: 2²⁰ = 약 100만 개각 항목 크기: 4바이트 → 전체 페이지 테이블 크기 = 4MB문제점페이지 수가 많아질수록 페이지 테이블의 크기가 매우 커짐 → 메모리 공간 낭비2. 계층적 페이징(Hierarchical Paging)1) 개념전체 페이지 테이블을 메인 메모리에 연속으로 할당하는 대신, 페이지 테이블 자체를 페이지화하여 여러 단계로 나눔.페이지 테이블 자체의 페이지화 내용이 들어 있는 페이지 테이블(outer-page table)도 필요함. 2) 예시: 2단계..

OS 2025.05.19

[운영체제] 기억장치의 관리란??

프로세스는 기억장치에 할당 되어 저장된다. 그러면 프로세스는 어떤한 방식으로 기억장치에 할당되는걸까?? 1. 배경: 컴퓨터 시스템에서 기억장치의 역할● 기억장치(DRAM)주소를 가진 워드 또는 바이트 단위로 구성됨프로그램이 실행되기 위해선 반드시 기억장치에 적재되어야 함적재된 프로그램은 **프로세스(process)**가 됨● 프로세스의 실행 흐름**PC(프로그램 카운터)**가 명령어 주소 지정CPU가 명령어를 가져와(fetch) 해독하고(decode) 실행(execute)결과를 다시 기억장치에 저장(store)2. 주소 바인딩(Address Binding)● 개념프로그램의 명령어와 데이터를 기억장치에 적재할 때, 어떤 주소를 가질지 결정하는 과정소스코드에서 사용한 변수나 함수는 실제 실행 시 주소를 알아..

OS 2025.05.12

[운영체제] 교착상태 란??

1. 교착상태란? 교착상태란 여러 프로세스가 서로가 점유하고 있는 자원을 기다리며 무한히 대기하는 상태를 말함. 📌 예시두 차량이 다리에서 마주 보고 멈춘 채, 서로가 후진하길 기다리는 상황시스템에 2개의 테이프 장치가 있고, P1과 P2가 각각 하나씩 점유한 상태에서 서로의 장치를 기다리는 상황2. 교착상태 발생의 4가지 조건조건명설명1. 상호 배제 (Mutual Exclusion)자원은 한 번에 하나의 프로세스만 사용 가능2. 점유와 대기 (Hold and Wait)자원을 점유한 프로세스가 추가 자원을 요청하며 대기3. 비선점 (No Preemption)자원을 강제로 회수할 수 없음4. 순환 대기 (Circular Wait)프로세스들이 원형 구조로 자원을 기다리는 상황 이 네 가지 조건이 모두 동시..

OS 2025.05.05

[운영체제] 임계 구역 문제 란??

1. 임계 구역(Critical Section) 이란?임계 구역: 여러 프로세스가 공유 데이터를 접근하는 코드 영역각 프로세스는 자신만의 임계 구역을 가지고 있으며, 동시에 여러 프로세스가 이 구역을 실행하면 안 됨반드시 **시간적으로 상호 배타적(Mutual Exclusive)**으로 실행되어야 함🔁 프로세스 Pi의 구조repeat entry section // 진입: 임계 구역에 들어가기 위한 요청 critical section // 임계 구역 exit section // 종료: 임계 구역을 벗어났음을 알림 remainder section // 나머지 코드until false2. 임계 구역 문제의 세 가지 요구 조건임계 구역 문제를 해결하기 위해서는 아래 세 ..

OS 2025.04.30

[운영체제] 프로세스의 동기화( 생산자 - 소비자 )란?

1. 프로세스 동기화란?동기화(Synchronization)는 병행(Concurrent) 프로세스들이 공유 자원을 사용할 때, **데이터의 일관성(Data Consistency)**을 유지하도록 접근을 순서화하는 기술 왜 필요할까?두 개 이상의 프로세스가 동시에 실행되며 같은 데이터를 공유할 때,적절한 제어 없이 데이터를 동시에 변경하면, 오류나 충돌이 발생!!2. 대표 예시: 생산자-소비자 문제1) 개요두 개의 프로세스: **생산자(Producer)**와 **소비자(Consumer)**가 존재**공유 버퍼(Buffer)**를 통해 데이터를 주고받음역할설명생산자데이터를 생성해서 버퍼에 저장소비자버퍼에서 데이터를 꺼내서 소비2) 버퍼 상태에 따른 동기화 필요버퍼가 가득 차면, 생산자는 기다려야 함버퍼가 비..

OS 2025.04.23