파일 시스템과 디스크 관리
파일 시스템(File System) : 디스크의 추상화 디스크 드라이브(HDD/SSD)는 본질적으로 ‘블록(Block)’ 이라고 불리는 고정된 크기(512B, 4KB 등)의 데이터를 저장할 수 있는 거대한 1차원 배열(LBA, Logical Block Addressing)에 불과합니다. 사용자가 “내 리포트.docx 파일이 1,234,567번 블록부터...
파일 시스템(File System) : 디스크의 추상화 디스크 드라이브(HDD/SSD)는 본질적으로 ‘블록(Block)’ 이라고 불리는 고정된 크기(512B, 4KB 등)의 데이터를 저장할 수 있는 거대한 1차원 배열(LBA, Logical Block Addressing)에 불과합니다. 사용자가 “내 리포트.docx 파일이 1,234,567번 블록부터...
가상 메모리(Virtual Memory) 메모리 관리는 한정된 물리 메모리(RAM) 자원을 여러 프로세스가 효율적이고 안전하게 나눠 쓰도록 관리하는 기술입니다. 가상 메모리(Virtual Memory) 는 이 메모리 관리 기법의 정점으로, 현대 운영체제가 페이징(Paging) 및 세그먼테이션 기법을 기반으로 구현한 핵심 개념입니다. 가상 메모리의 핵...
메모리 관리의 기초 : 주소와 바인딩 모든 메모리 관리 기법의 근본적인 목표는, 한정된 물리 메모리(RAM) 를 여러 프로세스가 안전하고 효율적으로 나누어 쓰도록 하는 것입니다. 논리 주소 vs 물리 주소 논리 주소 (Logical Address) : 프로세스(프로그램)의 관점에서 바라보는 주소입니다. 각 프로세스는 자신만의 0번지부터 시작하는...
프로세스 동기화와 교착 상태 현대 운영체제는 선점형 스케줄링이나 멀티코어 환경에서 여러 실행 흐름(프로세스/스레드)을 ‘동시에(Concurrently)’ 혹은 ‘병렬로(Parallel)’ 실행시킵니다. 만약 이 실행 흐름들이 서로 독립적인 자원만 사용한다면 아무런 문제가 없겠지만, 이들이 공유 자원(Shared Resource)(전역 변수, 공유 파...
CPU 스케줄링 CPU 스케줄링은 단기 스케줄러(Short-term Scheduler) 가 Ready 큐에 있는 프로세스(혹은 커널 수준 스레드) 중에서 CPU를 할당받을 프로세스를 선택하는 정책(Policy) 및 알고리즘을 의미합니다. 현대 시분할(Time-Sharing) OS에서 스케줄링은 CPU가 쉴 틈 없이 일하게(Utilization 극대화...
프로세스 (Process) “실행 중인 프로그램(A program in execution)” 하드 디스크에 저장된 ‘my_program.exe’ 파일은 코드와 데이터의 묶음, 즉 정적인(Static) 존재인 ‘프로그램’ 입니다. 사용자가 이 프로그램을 더블 클릭하면, 운영체제는 이 파일을 메모리로 가져와 CPU를 할당해줍니다. 이 순간, 프로그램은 ...
운영체제(Operating Sytstem, OS) 컴퓨터 하드웨어와 사용자(또는 응용 프로그램) 사이의 인터페이스 역할을 하는 핵심 시스템 소프트웨어입니다. OS의 가장 근본적이 두 가지 목적은 자원 관리자(Resource Manager) 로서 CPU, 메모리, 저장 장치 같은 하드웨어 자원을 효율적이고 공정하게 배분 및 관리하고, 추상화 계층(Abs...
입출력 장치와 I/O 모듈 입출력 장치(I/O Device) 는 컴퓨터가 외부와 상호작용하기 위한 모든 하드웨어를 의미합니다. 키보드, 마우스처럼 데이터를 입력받는 장치와 모니터, 프린터처럼 데이터를 출력하는 장치, 그리고 네트워크 카드처럼 입출력을 모두 수행하는 장치로 나뉩니다. 이러한 장치들은 종류가 너무 다양하고, CPU에 비해 처리 속도가 매...
보조기억장치(Secondary Storage) 는 운영체제, 응용 프로그램, 사용자 파일 등 모든 데이터를 영구적으로 저장하는 공간입니다. 주기억장치보다 속도는 느리지만, 용량이 훨씬 크고 가격이 저렴하며 비휘발성(Non-volatile) 이라는 핵심적인 특징을 가집니다. 대표적으로 하드 디스크 드라이브(HDD) 와 솔리드 스테이트 드라이브(SSD) ...
주기억 장치(Main Memory) CPU와 가장 가까운 메모리 계층으로, CPU가 직접 접근하여 명령어와 데이터를 읽고 쓸 수 있는 작업공간입니다. 보조 기억 장치(SSD, HDD)에 저장된 프로그램과 데이터는 실행되는 순간 주기억 장치에 적재(Load)되어야 합니다. 주기억 장치의 역할 프로그램 명령어 저장 : 실행 중인 프로그램의 명령어가...